{"version":3,"mappings":"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EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,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","names":["lastBtn","e","target","canditates","i","candidate","prototype","submitter","validateSubmitter","form","raise","errorConstructor","message","name","element","event","prototypeOfSubmitEvent","_FrameElement","__publicField","value","_b","_a","style","createdScriptElement","cspNonce","destinationElement","sourceElement","html","template","eventName","cancelable","detail","resolve","strings","values","lines","interpolate","match","indent","line","result","string","_","attributeName","elements","timeoutInMilliseconds","onComplete","action","nonce","content","selector","elementOrDocumentFragment","callback","reader","before","after","link","debounce","fn","delay","timeoutId","args","config","__privateAdd","_submitter","__privateGet","__privateSet","Config","locatable","url","anchorMatch","baseURL","prefix","location","rootLocation","anchor","left","right","response","maxSize","oldestValue","options","modifiedHeaders","requestUID","method","encoding","delegate","requestBody","enctype","_FetchRequest_instances","_resolveRequestPromise","_value","body","fetchBody","fetchMethod","fetchOptions","__privateMethod","allowRequestToBeIntercepted_fn","error","willDelegateErrorHandling_fn","fetchResponse","mimeType","requestInterception","resource","searchParams","entries","lastEntry","fragment","streamElement","inertScriptElement","_prefetchTimeout","_prefetched","request","ttl","formElement","mustRedirect","initialized","requesting","confirmationMessage","stopping","stopped","token","_request","input","formData","cookieName","cookie","formElementAction","formAction","id","snapshot","permanentElementMap","currentPermanentElement","newPermanentElement","node","eventTarget","_resolveRenderPromise","_resolveInterceptionPromise","x","y","renderer","isPreview","shouldRender","willRender","shouldInvalidate","renderInterception","reason","direction","_event","originalEvent","type","turboFrame","turboAction","turboConfirm","bardo","permanentElement","placeholder","clone","currentSnapshot","newSnapshot","_activeElement","reject","currentElement","newElement","destinationRange","frameElement","sourceRange","renderElement","block","behavior","activatedScriptElement","defaultValue","noOp","defaults","elt","morph","oldNode","newContent","normalizeElement","newNode","normalizeParent","ctx","createMorphContext","morphedNodes","saveAndRestoreFocus","withHeadBlocking","morphChildren","morphOuterHTML","oldParent","childNodes","index","rightMargin","activeElement","activeElementId","selectionStart","selectionEnd","results","newParent","insertionPoint","endPoint","newChild","bestMatch","findBestMatch","removeNodesBetween","morphNode","movedChild","moveBeforeById","insertedNode","createNode","tempNode","removeNode","newEmptyChild","newClonedChild","startPoint","softMatch","nextSibling","siblingSoftMatchCount","cursor","isSoftMatch","isIdSetMatch","oldSet","newSet","oldElt","newElt","moveBefore","startInclusive","endExclusive","parentNode","removeElementFromAncestorsIdMaps","idSet","handleHeadElement","morphAttributes","ignoreValueOfActiveElement","oldAttributes","newAttributes","newAttribute","ignoreAttribute","oldAttribute","syncInputValue","oldElement","newValue","oldValue","syncBooleanAttribute","newLiveValue","oldLiveValue","ignoreUpdate","attr","updateType","possibleActiveElement","oldHead","newHead","promises","newCtx","added","removed","preserved","nodesToAppend","srcToNewHeadNodes","newHeadChild","currentHeadElt","inNewContent","isReAppended","isPreserved","promise","_resolve","removedElement","persistentIds","idMap","createIdMaps","mergedConfig","mergeDefaults","morphStyle","createPantry","finalConfig","pantry","findIdElements","root","populateIdMapWithTree","current","oldContent","oldIdElements","newIdElements","createPersistentIds","newRoot","duplicateIds","oldIdTagNameMap","tagName","generatedByIdiomorph","parseContent","createDuckTypedParent","dummyParent","s","n","r","parser","contentWithSvgsRemoved","htmlElement","callbacks","beforeNodeMorphed","_beforeNodeMorphed","mutationType","_ProgressBar","outerHTML","details","matchedType","tracked","documentElement","head","headSnapshot","clonedElement","selectElements","clonedSelectElements","source","option","clonedPasswordInput","_viewTransitionStarted","_lastOperation","useViewTransition","render","defaultOptions","restorationIdentifier","historyChanged","referrer","snapshotHTML","visitCachedSnapshot","updateHistory","shouldCacheSnapshot","acceptsStreamResponse","actionForHistory","statusCode","responseHTML","_response","redirected","_error","scrollPosition","metric","session","visit","_visit","_formSubmission","_FrameRedirector_instances","_location","shouldRedirect_fn","frame","findFrameElement_fn","shouldSubmit_fn","meta","turbo","restorationIndex","state","additionalData","restorationData","_LinkPrefetchObserver_instances","_prefetchedLink","_enable","_tryToPrefetchRequest","_cancelRequestIfObsolete","_tryToUsePrefetchedRequest","isPrefetchable_fn","fetchRequest","cacheTtl_get","_cancelPrefetchRequest","cached","turboFrameTarget","turboPrefetchParent","turboMethod","_Navigator_instances","formSubmission","visitOptions","getActionForFormSubmission_fn","currentAnchor","isRestorationToTop","oldURL","newURL","getDefaultAction_fn","readyState","position","permanentElementsInDocument","permanentElementInDocument","elementInStream","generatedID","turboStreams","elementWithAutofocus","willAutofocusId","elementToAutofocus","activeElementBeforeRender","activeElementAfterRender","restoreFocusTo","elementToFocus","nodeListOfStreamElements","_started","replaceableElement","_PageRenderer_instances","setLanguage_fn","mergedHeadElements","newStylesheetElements","loadingElements","newHeadElements","elementList","lang","size","key","rendererClass","cachedSnapshot","snapshotCache","_preloadAll","_Cache_instances","setCacheControl_fn","recentRequests","_pageRefreshDebouncePeriod","adapter","requestId","isRecentRequest","isCurrentUrl","isUnsafe","isStream","frameTarget","defaultPrevented","_snapshot","_isPreview","renderMethod","ev","newBody","timing","submitterIsNavigatable","container","withinFrame","start","confirmMethod","mode","Turbo","_FrameController_instances","_fetchResponse","_currentFetchRequest","_resolveVisitPromise","_connected","_hasBeenLoaded","_ignoredAttributes","_shouldMorphFrame","loadSourceURL_fn","isIgnoringChangesTo_fn","refresh","src","document","loadFrameResponse_fn","handleUnvisitableFrameResponse_fn","shouldInterceptNavigation_fn","navigateFrame_fn","newFrame","_renderMethod","_newElement","pageSnapshot","sourceURL","ignoringChangesToAttribute_fn","visit_fn","newFrameElement","willHandleFrameMissingFromResponse_fn","handleFrameMissingFromResponse_fn","withCurrentNavigationElement_fn","visitResponse_fn","throwFrameMissingError_fn","wrapped","formActionIsVisitable_fn","currentURL","targetElement","_StreamElement","_StreamElement_instances","c","existingChildren","newChildrenIds","actionFunction","raise_fn","newConsumer","createConsumer","channel","mixin","subscriptions","obj","acc","camel","m","data","signed_stream_name","snakeize","formMethod","overrideMethod","module","exports","factory","undefined$1","hex_chr","md5cycle","k","a","b","d","md5blk","md5blks","md5blk_array","md51","length","tail","tmp","lo","hi","md51_array","rhex","j","hex","clamp","val","from","to","begin","end","num","targetArray","sourceArray","toUtf8","str","utf8Str2ArrayBuffer","returnUInt8Array","buff","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","hexToBinaryString","bytes","SparkMD5","contents","raw","ret","hash","file","binaryDigest","base64digest","dispatchEvent","eventInit","disabled","bubbles","checksum","customHeaders","headerKey","csrfToken","responseType","direct_upload","blob","headers","status","upload","object","methodName","messages","hiddenInput","attributes","progress","xhr","controllers","startNextController","controller","button","inputs","t","this","o","u","l","p","h","f","g","v","w","__webpack_modules__","it","__unused_webpack_exports","__webpack_require__","isObject","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","charAt","S","unicode","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","has","classof","createNonEnumerableProperty","redefine","defineProperty","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQIRED","NAME","TypedArrayConstructorsList","BigIntArrayConstructorsList","isView","klass","isTypedArray","aTypedArray","aTypedArrayConstructor","C","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","property","forced","exportTypedArrayStaticMethod","redefineAll","fails","anInstance","toInteger","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","setToStringTag","InternalStateModule","getInternalState","setInternalState","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","unpackIEEE754","packInt8","number","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","get","view","count","isLittleEndian","intIndex","store","pack","set","conversion","byteLength","byteOffset","bufferLength","offset","ArrayBufferPrototype","keys","testView","nativeSetInt8","toObject","toAbsoluteIndex","min","O","len","inc","argumentsLength","endPos","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","bind","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","mapfn","mapping","iteratorMethod","step","iterator","next","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","that","specificCreate","self","boundFunction","nativeLastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","argument","aFunction","IS_RIGHT","memo","isArray","originalArray","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","toString","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyDescriptor","F","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","bitmap","toPrimitive","propertyKey","$","createIteratorConstructor","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","EXISTS","getBuiltIn","userAgent","process","versions","v8","version","setGlobal","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","targetProperty","sourceProperty","descriptor","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","sham","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","arg","path","variable","namespace","floor","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","hasOwnProperty","createElement","abs","pow","log","LN2","mantissaLength","exponentLength","eMax","eBias","rt","sign","exponent","mantissa","unpack","nBits","split","dummy","Wrapper","NewTarget","NewTargetPrototype","functionToString","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","WeakMap","enforce","getterFor","wmget","wmhas","wmset","metadata","STATE","feature","detection","normalize","POLYFILL","NATIVE","MATCH","isRegExp","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","test","inspectSource","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","A","B","symbol","alphabet","chr","T","getOwnPropertySymbols","propertyIsEnumerable","defineProperties","enumBugKeys","documentCreateElement","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","Properties","__unused_webpack_module","IE8_DOM_DEFINE","nativeDefineProperty","P","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","indexOf","names","nativePropertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","CORRECT_SETTER","setter","proto","getOwnPropertyNamesModule","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","R","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","NPCG_INCLUDED","PATCH","lastIndex","reCopy","sticky","flags","charsAdded","strCopy","RE","CONSTRUCTOR_NAME","TAG","SHARED","defaultConstructor","requireObjectCoercible","CONVERT_TO_STRING","pos","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","ucs2decode","output","counter","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","inputLength","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","encoded","labels","label","whitespaces","non","whitespace","ltrim","rtrim","max","integer","ceil","toPositiveInteger","BYTES","PREFERRED_STRING","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","toOffset","typedArrayFrom","forEach","setSpecies","inheritIfRequired","round","ArrayBuffer","DataView","BYTES_PER_ELEMENT","fromList","list","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","getter","addElement","typedArrayOffset","$length","$len","checkCorrectnessOfIteration","iterable","speciesConstructor","instance","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","arrayBufferModule","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$filter","HAS_SPECIES_SUPPORT","$indexOf","nativeIndexOf","addToUnscopables","defineIterator","ARRAY_ITERATOR","iterated","kind","$map","nativeSlice","fin","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","actualStart","insertCount","actualDeleteCount","FunctionPrototype","FunctionPrototypeToString","nameRE","nativeGetPrototypeOf","FAILS_ON_PRIMITIVES","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","getSubstitution","maybeToString","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","accumulatedResult","nextSourcePosition","replacerArgs","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","separator","limit","lim","lastLastIndex","separatorCopy","lastLength","splitter","unicodeMatching","z","$trim","forcedStringTrimMethod","$copyWithin","$every","$fill","fromSpeciesAndList","$findIndex","predicate","$find","$includes","ArrayIterators","Uint8Array","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$reduceRight","$reduce","middle","$slice","$some","$sort","comparefn","beginIndex","$toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","createTypedArrayConstructor","init","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","USE_NATIVE_URL","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","percentDecode","sequence","deserialize","find","serialize","parseSearchParams","query","attribute","entry","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","found","slice","entriesIndex","sliceIndex","assign","arrayFrom","codeAt","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getInternalURLState","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","parts","partsLength","numbers","part","radix","ipv4","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","host","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","includesCredentials","cannotHaveUsernamePasswordPort","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","codePoint","encodedCodePoints","port","URLConstructor","urlString","baseState","searchParamsState","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","scheme","username","password","accessorDescriptor","href","protocol","hostname","pathname","search","nativeCreateObjectURL","nativeRevokeObjectURL","__webpack_module_cache__","moduleId","definition","prop","__webpack_exports__","Dropzone","dropzone_dist","_createForOfIteratorHelper","allowArrayLike","_unsupportedIterableToArray","_e","normalCompletion","didErr","err","_e2","minLen","_arrayLikeToArray","arr2","_classCallCheck","_defineProperties","props","_createClass","protoProps","staticProps","Emitter","_len","_key","_iterator","_step","evt","preview_template","options_createForOfIteratorHelper","options_unsupportedIterableToArray","options_arrayLikeToArray","files","chunk","done","messageElement","child","span","width","height","resizeMethod","info","srcRatio","trgRatio","_this","_iterator2","_step2","_iterator3","_step3","removeFileEvent","_iterator4","_step4","removeLink","dataUrl","_iterator5","_step5","thumbnailElement","_iterator6","_step6","bytesSent","_iterator7","_step7","src_options","_typeof","dropzone_createForOfIteratorHelper","dropzone_unsupportedIterableToArray","dropzone_arrayLikeToArray","dropzone_classCallCheck","dropzone_defineProperties","dropzone_createClass","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","_possibleConstructorReturn","call","_assertThisInitialized","_Emitter","_super","fallback","elementOptions","_this2","setupHiddenFileInput","containsFiles","noPropagation","efct","clickableElement","totalUploadProgress","totalBytesSent","totalBytes","activeFiles","existingFallback","fieldsString","fields","getFallback","_i","_arr","elementListeners","listener","_this3","selectedSize","selectedUnit","units","unit","cutoff","items","__guard__","_this4","item","directory","_this5","dirReader","errorHandler","__guardMethod__","readEntries","_this6","_iterator8","_step8","_this7","_this8","_this9","without","cancelIfNecessary","_iterator9","_step9","_this10","canvas","resizeMimeType","resizedDataURL","ExifRestore","fixOrientation","_this11","fileReader","mockFile","imageUrl","crossOrigin","_this12","resizeThumbnail","onDone","thumbnail","_this13","img","loadExif","orientation","resizeInfo","drawImageIOSFix","parallelUploads","processingLength","queuedFiles","_iterator10","_step10","groupedFiles","_iterator11","_step11","groupedFile","_iterator12","_step12","_groupedFile","_this14","transformedFiles","transformedFile","_transformedFile","handleNextChunk","chunkIndex","dataBlock","allFinished","dataBlocks","_i2","_this15","_iterator13","_step13","timeout","progressObj","headerName","headerValue","additionalParams","_iterator14","_step14","_file","_i3","_this16","doneCounter","_loop","_iterator15","_step15","inputName","inputType","_iterator16","_step16","_file2","_iterator17","_step17","responseText","_iterator18","_step18","_iterator19","_step19","_len2","objects","_key2","_i4","_objects","camelize","dropzones","checkElements","_iterator20","_step20","_iterator21","_step21","dropzone","capableBrowser","_iterator22","_step22","regex","dataURI","byteString","mimeString","ab","ia","asc","rejectedItem","div","els","_iterator23","_step23","_iterator24","_step24","question","accepted","rejected","acceptedFiles","baseMimeType","_iterator25","_step25","validType","detectVerticalSquash","ih","_ctx$getImageData","sy","ey","py","alpha","ratio","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","segments","image","exifArray","newImageArray","aBuffer","seg","imageData","buf","separatePoint","mae","ato","rawImageArray","base64test","contentLoaded","win","top","doc","add","rem","pre","poll","transform","collapsable","buttonIcon","accElem","detailElem","existingMessages","forms","previousText","modelName","errors","modalSelector","currentModalSelector","nonFoundElements","notFoundElements","item_name","baseName","foundElem","elemList","elem","parentElem","textareaSelector","textareaList","select2Container","errorList","existingAlertBox","beforeElem","alertBox","placement","formInputElem","repo","selected","parameters","handler","delegatedEvent","term","sortable","orderInput","resetInput","$currentTarget","alerts","clampedProp","clampedMaxHeight","alert","mobileClamp","collapseAlert","mobileUnclamp","tooltipTriggerEl","Tooltip","popoverTriggerEl","$doc","$form","$button","editId","formHTML","editHashId","cancelButton","lineHtml","newLine","total","buttonRow","buttonWrapper","deleteButton","mutationsList","observer","paymentList","mutation","tooltipItem","axis","vue","teardown","Vue","map","isFunction","isPlainObject","cache","capitalize","fns","writable","cssText","isRef","val2","detached","currentEffectScope","fromParent","last","failSilently","prevEffect","prevShouldTrack","sub","isComputed","prev","computed","dep","prevSub","soft","nextSub","prevDep","nextDep","cleanup","debugInfo","currentTail","depsMap","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","depMap","thisArg","comparer","wrapValue","iter","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","isOldValueReadonly","hadKey","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","readonly","shallow","instrumentations","rawKey","observed","hadItems","rawType","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","rawValue","useDirectValue","ref2","objectWithRefs","_object","_defaultValue","newVal","isSSR","getterOrOptions","debugOptions","cleanupFn","owner","cleanups","watch","cb","immediate","deep","once","scheduler","augmentJob","reactiveGetter","source2","effect","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","msg","appWarnHandler","trace","vnode","warnArgs","currentVNode","normalizedStack","parentInstance","logs","recurseCount","isRoot","open","close","throwInDev","contextVNode","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","throwInProd","middleJob","middleJobId","jobId","lastJob","deduped","isNonScopedSlot","renderFnWithContext","prevInstance","directives","bindings","dir","modifiers","prevVNode","oldBindings","binding","hook","enterCbKey","subTree","slots","children","rawProps","innerChild","enterHooks","hooks","oldInnerChild","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","cancelled","remove","vnode2","hooks2","shapeFlag","keepComment","parentKey","keyedFragmentCount","extraOptions","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","ref","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","wrappedHook","keepAliveRoot","injected","prepend","reset","lifecycle","maybeSelfReference","warnMissing","Component","selfName","registry","renderItem","sourceIsArray","sourceIsReactiveArray","noSlotted","slot","validSlotContent","slotKey","rendered","vnodes","accessCache","appContext","normalizedProps","publicGetter","cssModule","globalProperties","propsOptions","publicThis","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","methodHandler","opt","provides","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","strats","asMixin","strat","merged","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","plugin","component","directive","rootContainer","isHydrate","lastApp","parentProvides","treatDefaultAsFactory","isStateful","attrs","rawPrevProps","optimized","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","comp","hasExtends","extendProps","raw2","normalizedKey","propType","shouldCast","shouldCastTrue","typeName","rawSlot","rawSlots","needDeletionCheck","deletionComparisonTarget","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","parentComponent","slotScopeIds","getNextHostNode","unmount","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","setScopeId","needCallTransitionHooks","scopeId","parentVNode","dynamicChildren","oldProps","newProps","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","parent","nonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","arrI","subComponent","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","rawArgs","isModelListener","handlerName","onceHandler","extendEmits","normalizedFromExtend","withProxy","emit","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","prevChildren","nextProps","nextChildren","emits","dynamicProps","emitsOptions","nextKeys","suspense","disableTracking","inVOnce","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","cloned","extraProps","mergeRef","cloneTransition","mergedProps","text","flag","asBlock","slotFlag","toMerge","incoming","registerGlobalSetter","setters","setupResult","setup","setupContext","isAsyncSetup","resolvedResult","skipOptions","includeInferred","inferFromRegistry","propsOrChildren","tt","is","h2","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","finishLeave","makeEnterHook","nextFrame","cls","_vtc","expectedType","explicitTimeout","resolveIfNotStale","propCount","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","isSVG","transitionClasses","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","prefixed","rawName","isBoolean","attrName","needRemove","addEventListener","removeEventListener","prevValue","nextValue","invokers","existingInvoker","invoker","initialValue","originalStop","moveClass","movedChildren","cssTransitionProps","oldPos","newPos","cacheKey","guard","mount","containerOrSelector","_objectSpread2","_defineProperty","excluded","sourceSymbolKeys","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","_isNumerical","pascalize","camelized","decamelize","_processor","humps","pair","idx","classes","className","abstractElement","_attrs$style","aStyle","otherAttrs","_console","_classes","icon","parse","validator","_ref","icon$1","mask","renderedIcon","familyPrefix","amount","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_7","_resolveComponent","_openBlock","titleId","_ctx","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_hoisted_5","_renderSlot","_createElementBlock","_createVNode","_component_font_awesome_icon","_hoisted_8","_createCommentVNode","date","_date","dayOfMonth","endOfDesiredMonth","daysInMonth","getDefaultOptions","weekStartsOn","_d","_c","day","diff","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","utcDate","dates","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","fourthOfJanuary","date_","dateLeft_","dateRight_","month","formatDistanceLocale","formatDistance","tokenValue","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","matchPattern","matchResult","matchedString","parsePatterns","pattern","rest","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","firstWeek","targetLength","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","timezoneOffset","timestamp","absOffset","minutes","datePattern","timePattern","dateTimeFormat","format","_message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","_f","_h","_g","originalDate","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","formatter","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","hour","minute","time","getInternalDefaultOptions","dateToCompare","leftDate","rightDate","_utcDate","validateValue","setValue","priority","subPriority","reference","dateString","Parser","parseFnResult","mapFn","seconds","dayPeriod","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","valueCallback","normalizedTwoDigitYear","_flags","firstWeekOfYear","isLeapYear","currentDay","dayIndex","wholeWeekDays","isPM","dateStr","referenceDate","invalidDate","subFnOptions","tokens","usedTokens","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setterArray","interval","startTime","endTime","dateStrings","parseYearResult","tmpDate","timeString","additionalDigits","century","isWeekDate","timezoneString","fourthOfJanuaryDay","_year","_hours","pinia","MutationType","_p","toBeInstalled","noop","onCleanup","removeSubscription","patchToApply","subPatch","targetValue","hot","actions","getters","initialState","localState","computedGetters","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrappedAction","afterCallbackList","onErrorCallbackList","onError","partialStore","stopWatcher","setupStore","actionValue","extender","setupOptions","isSetupStore","useStore","hasContext","keysOrMapper","reduced","storeKey","bankReconciliation","bankTransactions","postings","posting","bankTransaction","reconciled","postingOn","amountCents","bankReconciliationLineItemId","accountId","companyId","bankTransactionId","cardElem","bankStatementItem","payload","newPosting","feeOrInterestPosting","reversedPosting","postingsLength","bankTransactionsLength","sum","sumInner","suggestions","suggestion","_sfc_main","level","_hoisted_1","_component_font_awesome_layers","_withCtx","summary","sortedSummary","_component_suggestion_list_item","_Fragment","suggestionList","_renderList","suggestionSummary","localeStr","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_createBlock","_component_b_modal","i18n","description","transaction","_component_amount","_cache","noMatches","_withModifiers","showUnpaid","newCustomerInvoice","unpaidCustomerInvoices","_hoisted_16","allCustomerInvoices","_hoisted_15","roles","allowed_roles","_sfc_render","$props","$setup","$data","$options","suggestionLevel","fingerDirection","header","urlSearchParams","cleanUrl","Turbo.navigator","transactionId","_component_ItemCard","_mergeProps","toggleSelectClick","disabledAttributes","_component_TableMoreDropdown","manualJournalUrl","_component_DropdownItem","addFeeOrInterestAndMatchItem","$event","transactionUrl","_component_MatchInvoiceWithoutPayment","_component_BankTransactionItemCard","_TransitionGroup","bankTransactionSuggestedMatch","postingSuggestedMatch","matchedItems","_component_PostingItemCard","togglePosting","offsetX","offsetY","rect","elems","resultRect","bottom","transactions","statements","boundingRectTransactions","transMid","boundingRectStatements","statementMid","parentTop","midDiff","_normalizeStyle","sumEqual","showMatchButton","boundingRect","matchRect","boundingRight","topAndHeight","matchRight","matchCardButton","bounds","maxY","minY","_withDirectives","now","canBeReconciled","monthNotFinished","showDataInProgressAlert","_component_ReadyForReconciliation","_component_OpenItems","_component_Reconciled","unMatch","reconciledState","_component_UnMatchCard","_Transition","matchedKey","matching","_component_MatchedRow","headerIcon","ingoingSumsMatch","outgoingSumsMatch","outgoingCents","bankIncomingCents","_component_StatementSummaryCard","bankOutgoingAmountCents","accountingIncomingAmountCents","accountingOutgoingAmountCents","backUrl","excelExportUrl","swithToManualUrl","bankAccountName","showReconnectIntegrationNotification","_vShow","_component_TransactionDataNotFinalizedModal","matchItemsPresent","_component_StatementSummaryRow","_component_BankStatementList","_component_MatchCard","_component_PostingList","showSwitch","hint","account","accountClick","_component_Item","group","_component_GroupedAccounts","accountSelected","accountHover","descriptionHeader","descriptionBody","favorite","abortSignal","purchaseType","purchase_type_selector","evaluate","param","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","oppositePlacement","side","isStart","lr","rl","tb","bt","flipAlignment","padding","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","mainAxisMulti","crossAxisMulti","mainAxis","crossAxis","_middlewareData$offse","diffCoords","_node$ownerDocument","overflowX","overflowY","display","getComputedStyle","elementOrCss","webkit","css","currentNode","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","hasOffset","offsetWidth","offsetHeight","shouldFallback","domElement","isFixed","floatingOffsetParent","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","topLayer","scroll","offsets","isOffsetParentAnElement","offsetRect","leftScroll","visualViewport","visualViewportBased","clippingAncestor","stopNode","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","clippingAncestors","firstClippingAncestor","clippingRect","accRect","htmlX","htmlY","htmlRect","polyfill","rawOffsetParent","svgOffsetParent","getOffsetParentFn","getDimensionsFn","floatingDimensions","onMove","io","_io","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","mergedOptions","platformWithCache","accountIndex","selectElement","mutations","inputField","dropdownContent","eventTargetElement","freeSpaceForDropdownContent","selectedAccount","showBody","favoriteSet","groupedAccounts","hits","_component_List","listStyleObject","hoverAccount","cursorEnabled","dropdownContentWidth","descriptionStyleObject","fromDecimalSeparator","beforeDecimalSeparator","english","nth","fp","Norwegian","no","givenDate","week1","bool","wait","arrayify","condition","inputClassName","opts","numInput","arrowUp","arrowDown","monthNumber","shorthand","dateObj","monthName","amPM","shortMonth","unixSeconds","weekNum","weekNumber","ISODate","unixMillSeconds","l10n","isMobile","frmt","overrideLocale","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","ops","matchIndex","regexStr","isBackSlash","escaped","date1","date2","ts","ts1","ts2","secondsSinceMidnight","minHour","minMinutes","minSeconds","maxHr","maxMinutes","_loop_1","args_1","il","jl","instanceConfig","English","setHoursFromDate","positionCalendar","changeMonth","changeYear","clear","onMouseOver","createDay","destroy","isEnabled","jumpToDate","updateValue","redraw","setDate","toggle","setupHelperFunctions","yr","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","setCalendarWidth","isSafari","triggerEvent","getClosestActiveElement","bindToInstance","daysWidth","updateTime","defaultDate","timeWrapper","setHoursFromInputs","ampm2military","military2ampm","limitMinHours","limitMaxHours","minBound","maxBound","currentTime","maxTime","minTime","setHours","onYearInput","triggerChange","setupMobile","debouncedResize","onResize","onKeyDown","documentClick","onMonthNavClick","selectDate","selText","timeIncrement","onBlur","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","incrementNumInput","inputElem","createEvent","buildMonthNav","buildWeeks","weekWrapper","weekNumbers","buildWeekdays","buildDays","buildTime","customAppend","_dayNumber","dateIsEnabled","dayElement","isDateSelected","isDateInRange","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","givenMonth","loopDelta","numMonthDays","focusOnDay","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","days","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayNum","dayContainer","frag","shouldBuildMonth","buildMonth","monthNavFragment","monthElement","selectedMonth","yearInput","yearElement","currentMonth","buildMonths","updateNavigationCurrentMonth","hourInput","minuteInput","secondInput","updateWeekdays","firstDayOfWeek","weekdays","isOffset","triggerChangeEvent","toInitial","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","parsed","valueChanged","getDateStr","allowInput","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","delta_1","cellClass","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","outOfRange","positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","formats","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","minMaxTimeSetter","pluginConf","getInputElem","customPositionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","isCenter","isRight","rightMost","centerMost","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","centerStyle","editableSheet","sheet","createStyleSheet","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","single","range","CALLBACKS","updatePositionElement","setSelectedDate","inputDate","rule","preloadedDate","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","isHourElem","isMinuteElem","nodeList","nodes","instances","safeConfig","globalCallbacks","localCallback","onCloseCb","selectedDates","newConfig","flatPickr","newDate","oldDate","_component_flat_pickr","signatory","full_name","_component_FormInput","nameLabel","phone_number","submitForm","post_address_street_one","post_address_zip","showRemove","PI","Ctor","xdL","ydL","xd","yd","xs","ys","pr","rm","rep","sd","t3","t3plusx","one","cosh2_x","d8","sinh2_x","d5","d16","d20","wpr","xsd","halfPi","px","x2","isBase10","denominator","inf","xe","xLTy","carry","rL","dp","maxD","d0","d1","d2","n0","yn","ws","indexOfLastWord","repeating","di","rd","baseIn","baseOut","arrL","strL","cos2x","multiplyInteger","compare","aL","bL","subtract","cmp","logBase","more","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","out","isExp","zs","c0","numerator","x1","parseDecimal","divisor","isFloat","sin2_x","isHyperbolic","isNeg","pi","useDefaults","ps","Decimal","ln","log10","error_value","parseTree","peek","isNumber","tokenRegExp","expr","rhs","responce","ans","total_amount_cents","owner_count","title","_component_SignatoryForm","updateSignatory","$element","dropdownParent","vm","selectedCompanyId","_component_Select2","setSelectedCompany","ownerTemplate","_component_PercentInput","updatePercentShare","totalShareCapital","setTotalShareCapital","_component_OwnerCard","validTotalAmount","App","TurbolinksAdapter","rgb","p1","p2","deg","unpacked","tkeys","ok","nk","rgb1","rgb2","color","weight","w2","w1","dimension","loopable","reverse","a0","a1","ilen","v0","v1","klen","tval","sval","sources","merger","epsilon","roundedRange","niceRange","fraction","sqrt","rounded","degrees","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","pt1","pt2","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","table","mid","ti","stub","listeners","argsToUse","ticking","align","points","animationsDisabled","pointCount","iScale","vScale","_parsed","spanGaps","minDefined","maxDefined","distanceToDefinedLo","distanceToDefinedHi","xScale","yScale","_scaleRanges","newRanges","changed","tickValue","ticks","notation","maxTick","logDelta","numDecimal","_descriptors","_appliers","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","apply","font","gc","longest","textWidth","chart","pixel","devicePixelRatio","halfWidth","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","rotation","radius","rad","area","margin","previous","midpoint","metrics","yDecoration","oldColor","stroke","matches","objProps","read","minmax","grace","beginAtZero","change","keepZero","parentContext","scopes","prefixes","rootScopes","getTarget","finalRootScopes","storage","subProxy","descriptorDefaults","_scriptable","_indexable","_allKeys","_proxy","_context","_subProxy","descriptors","getValue","_stack","isIndexable","resolver","parentScopes","parentFallback","allScopes","indexAxis","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","valueAxis","pointBefore","iPixel","vPixel","slopeDelta","pt","inArea","inAreaPrev","inAreaNext","loop","controlPoints","domNode","styleValue","parentProperty","valueInPixels","suffix","touches","box","currentDevicePixelRatio","borderBox","paddings","borders","maxWidth","maxHeight","containerStyle","containerBorder","containerPadding","bbWidth","bbHeight","aspectRatio","margins","containerSize","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","passiveSupported","cp1","cp2","rectX","itemWidth","_itemWidth","original","startBound","endBound","between","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","segmentOptions","completeLoop","chartContext","baseStyle","datasetIndex","addStyle","st","anims","numSteps","remaining","draw","charts","factor","cfg","elapsed","remain","rej","animationOptions","animatedProps","newOptions","animations","running","animation","properties","anim","allowedOverflow","filterVisible","metasets","stack","dsIndex","singleMode","otherValue","iAxisKey","vAxisKey","adata","stacked","indexScale","valueScale","stacks","stackKey","indexValue","subStack","positive","iAxis","vAxis","itemStacks","visualValues","scales","canStack","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","active","drawActiveElementsOnTop","elementType","sharing","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","numMeta","numData","newCount","visibleMetas","curr","updateMinAndPrev","ruler","stackCount","thickness","pixels","percent","startValue","endValue","barStart","barEnd","custom","actualBase","edge","orig","v2","inflateAmount","bars","horizontal","vpixels","ipixels","dataIndex","currentParsed","iScaleValue","skipNull","barThickness","baseValue","minBarLength","startPixel","endPixel","halfGrid","maxBarThickness","center","stackIndex","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","members","metaset","intersect","_sorted","lookupMethod","useX","useY","deltaX","deltaY","useFinalPosition","includeInvisible","evaluationFunc","startAngle","endAngle","distanceMetric","minDistance","inRange","distance","rangeMethod","intersectsItem","boxes","layoutBoxes","stackWeight","layouts","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","centerHorizontal","centerVertical","maxPadding","chartArea","boxPadding","newWidth","newHeight","widthChanged","heightChanged","updatePos","marginForPositions","positions","refitBoxes","refit","same","other","userPadding","layoutItem","minPadding","availableWidth","availableHeight","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","renderHeight","renderWidth","displayWidth","displayHeight","trigger","dpr","resize","initial","proxies","final","tickOpts","determinedMaxTicks","ticksLimit","majorIndices","numMajorIndices","newTicks","spacing","avgMajorSpacing","tickLength","maxScale","maxChart","evenMajorSpacing","factors","majorStart","majorEnd","ticksLength","maxTicksLimit","numItems","increment","offsetGridLines","validIndex","lineValue","caches","gcLen","tick","titleX","titleY","positionAxisID","Element","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","minSize","titleOpts","gridOpts","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","lineHeight","nestedLabel","valueAt","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","y1","y2","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","textAlign","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","tz","gz","bz","axisID","fontSize","override","parentScope","itemDefaults","routes","propertyParts","sourceName","sourceScope","typedRegistry","reg","itemReg","camelMethod","filter","all","plugins","previousDescriptors","localIds","datasetDefaults","scaleOptions","boundDs","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","generate","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","subResolver","resolverCache","isScriptable","scriptable","indexable","l1","intKey","lastEvent","inChartArea","isClick","field","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","clip","useClip","visible","_add","_remove","attached","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","eventFilter","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","lineMethod","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","segmentMethod","_interpolate","interpolated","mouseX","mouseY","borderWidth","bar","half","maxW","maxH","enableBorderRadius","maxR","enableBorder","skipX","skipY","refRect","borderColor","inner","outer","addRectPath","labelOpts","boxHeight","boxWidth","legendItems","labelFont","itemHeight","hitboxes","lineWidths","totalHeight","row","legendItem","_itemHeight","columnSizes","heightLimit","totalWidth","currentColWidth","currentColHeight","col","rtlHelper","hitbox","defaultColor","halfFontSize","drawLegendBox","drawOptions","centerX","centerY","yBoxTop","xBoxLeft","borderRadius","fillText","realX","fontLineHeight","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","hoveredItem","sameItem","legendItemText","_args","legend","ci","usePointStyle","pointStyle","useBorderRadius","textSize","fontOpts","titleBlock","xSet","eventPosition","nearestElement","tp","toPush","tooltip","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","xAlign","caret","yAlign","chartWidth","paddingAndSize","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","tooltipItems","labelCount","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","outerX","innerX","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","addedLabels","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","isoWeekday","minUnit","capacity","timestamps","majorUnit","major","_applyBounds","timeOpts","minor","weekday","hasWeekday","fmt","minorFormat","majorFormat","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","L","D","N","I","M","W","U","H","J","K","G","Y","X","Z","Q","et","nt","ot","at","lt","ct","ut","ht","dt","gt","mt","ft","vt","At","yt","xt","Ct","Et","St","Rt","kt","Tt","wt","Lt","Dt","Nt","It","Ot","Ft","Pt","Mt","Bt","_t","jt","Wt","Vt","Ut","zt","qt","sparkMd5","fileSlice","FileChecksum","getMetaValue","findElement","findElements","toArray","BlobRecord","BlobUpload","DirectUpload","notify","DirectUploadController","inputSelector","DirectUploadsController","processingAttribute","submitButtonsByForm","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","autostart","AttachmentUpload","attachment","signedId","filename","Controller","_altinn_modal_controller","Turbo.visit","urlParams","checkbox","main","isWorker","workerSize","canUseWorker","canUsePaths","canDrawBitmap","func","ModulePromise","Prom","bitmapMapper","skipTransform","raf","TIME","cancel","frames","lastFrameTime","onFrame","timer","getWorker","worker","prom","resolves","decorate","execute","offscreen","workerDone","isOk","onlyPositiveInt","randomInt","toDecimal","colorsToRgb","colors","hexToRgb","origin","setCanvasWindowSize","setCanvasRectSize","getCanvas","zIndex","ellipse","radiusX","radiusY","antiClockwise","randomPhysics","radAngle","radSpread","updateFetti","fetti","transformPath2D","scaleX","scaleY","matrix","innerRadius","outerRadius","spikes","animate","fettis","resizer","animatingFettis","confettiCannon","globalOpts","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","shouldUseWorker","preferLessMotion","animationObj","fireLocal","particleCount","spread","startVelocity","decay","gravity","drift","shapes","scalar","flat","startX","startY","fire","disableForReducedMotion","defaultFire","getDefaultFire","pathString","pathMatrix","path2d","t1","t2","shapeFromPath","pathData","tempCanvas","tempCtx","minX","maxX","maxDesiredSize","shapeFromText","textData","fontFamily","_badge_to_input_controller","flatpickrController","_badge_to_partner_controller","_new_modal_controller$2","bankCard","bankKey","bankBic","card","bankParam","foundTarget","debugDiv","$select2","bank","_debug_connect_controller","clientID","email","redirectURI","culture","bankAccountNumbers","providerId","_payments_limit_controller","minimumPaymentsNumber","bankAccountNumber","currentPaymentsLimit","actionsSelector","checkedRows","accountNumberElem","inputNumberValue","_bank_account_controller","bankAccountNumberController","debugHint","_edit_controller$7","user","bankAccount","_bank_account_selector_controller","_closing_balance_controller","amountString","parsedAmount","valuesToSubmit","companyHashId","reconciliationId","parsedAccountingOutgoingAmount","difference","submitButton","_entry_match_controller","rows","openedSelectedRows","closedSelectedRowsNumber","accountIds","accountInputElem","selectedRows","totalAmount","subTotal","totalAmountText","canRoundCents","accountTable","_repeating_row_controller","optionKey","rowsAdded","_CrudTableController","pluralName","pluralize","camelCaseName","controllerName","modal_id","modal","hideModal","hashid","$1","spinner","outerSpinner","_year_end_posting_controller","taxes","dividends","profits","_CheckboxSelectAll","checkboxesCount","checkboxesCheckedCount","_bulk_action_table_controller","actionName","controllerInstance","Legend","Title","_chart_controller","_checkbox_content_flipper_controller","elementsArray","_clampable_controller","existingFormText","sibling","_click_to_swap_visibility_controller","swappable","_clipboard_controller","_collapsible_controller","_collapsible_table_controller","collapseGroup","toggleRows","staticRows","_accounting_from_controller","modalId","newAccountingStartDate","firstBankAccountOpenedOnDate","anyFinalizedReconciliations","formattedDate","bankAccountStartDateElement","bankAccountStartDate","_edit_controller$6","model","_select_controller$1","_company_update_controller","rejectBtn","popoverContent","_content_switcher_controller","pushState","tab","_copy_on_blur_controller","_edit_controller$5","parsedResponse","_date_controller","invoiceDate","ElementObserver","mutations_1","tree","processor","AttributeObserver","StringMapObserver","fetch","Multimap","sets","extendStatics","__","IndexedMultimap","TokenListObserver","unmatchedTokens","matchedTokens","previousTokens","currentTokens","firstDifferingIndex","previousToken","currentToken","tokenString","ValueListObserver","valuesByToken","_EditController","hide","sendAndUpdate","partner","sendMethodField","domestic","vatSelect","selectedOption","activeTab","_project_select_controller","selectedValue","_send_email_controller","itemTarget","$div","attribute_name","send_method","fileFormData","attachedFile","script","existingEmailAttachments","_send_letter_controller","_send_vipps_controller","$input","newSettledCard","_dashboard_controller","_data_binding_controller","_delete_company_controller","_disable_element_controller","_dismissible_controller","linkElement","_ease_pick_daterange_controller","picker","easepick","RangePlugin","PresetPlugin","lastYear","lastMonth","companyCreatedAt","endDate","ranges","formInput","_enable_input_controller","_file_select_controller","fileName","enumerableOnly","sym","propertyName","pairs","extendWithReflect","extended","testReflectExtension","classDefinition","targetDefinition","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","write","typeDefinition","constant","typeObject","typeFromObject","defaultValueType","typeFromDefaultValue","typeFromConstant","_Controller","StimulusFlatpickr","optionType","optionKebab","dateFormat","pickerButton","originalParseDate","separatorCount","toFullYear","validateDates","currentDate","diff1","diff2","day1","month1","year1","day2","month2","year2","__assign","monthToStr","clearNode","getEventTarget","defaultConfig","monthSelectPlugin","pluginConfig","clearUnnecessaryDOMElements","selectMonth","selectYear","setCurrentlySelected","currentlySelected","targetMonth","months","setMonth","shifts","___","shouldMove","closeHook","stubCurrentMonth","unstubCurrentMonth","destroyPluginInstance","_form_submit_enable_controller","_form_switcher_controller","templateKey","newSelectedTemplateKey","_formatted_amount_controller","feedback","oldFeedback","_card_select_controller","_edit_controller$4","bankCards","targetCard","bankName","descTarget","section","_gdpr_consent_controller","undefinedType","isIE","logMethods","bindMethod","traceForIE","realMethod","replaceLoggingMethods","loggerName","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","defaultLevel","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","getPersistedLevel","storedLevel","clearPersistedLevel","persist","initialLevel","defaultLogger","_loggersByName","logger","_log","__extends","TypesenseError_1","TypesenseError","_newTarget","__importDefault","mod","HTTPError_1","require$$0","HTTPError","MissingConfigurationError_1","MissingConfigurationError","ObjectAlreadyExists_1","ObjectAlreadyExists","ObjectNotFound_1","ObjectNotFound","ObjectUnprocessable_1","ObjectUnprocessable","RequestMalformed_1","RequestMalformed","RequestUnauthorized_1","RequestUnauthorized","ServerError_1","ServerError","ImportError_1","ImportError","importResults","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","__createBinding","k2","desc","__setModuleDefault","__importStar","Configuration_1","Errors_1","Configuration","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBufferView","isString","isDate","isFile","isBlob","isFileList","isFormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","extend","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","forEachEntry","matchAll","regExp","isHTMLForm","toCamelCase","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","utils$1","AxiosError","prototype$1","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","encode$1","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","utils","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","$internals","normalizeHeader","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","mapped","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","parseProtocol","speedometer","samplesCount","firstSampleTS","chunkLength","startedAt","bytesCount","throttle","freq","lastArgs","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","progressBytes","rate","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","isAbsoluteURL","combineURLs","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","xhrAdapter","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","composeSignals$1","signals","aborted","onabort","unsubscribe","signal","streamChunk","chunkSize","readBytes","readStream","stream","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isFetchSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","fetchAdapter","cancelToken","withCredentials","composedSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","knownAdapters","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","formatMessage","correctSpelling","assertOptions","schema","allowUnknown","validators","Axios","configOrUrl","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","abort","CancelToken$1","isAxiosError","HttpStatusCode","HttpStatusCode$1","createInstance","axios","__awaiter","_arguments","generator","adopt","__generator","verb","op","ApiCall_1","axios_1","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","ApiCall","configuration","endpoint","queryParameters","bodyParameters","additionalHeaders","requestType","_j","_k","skipConnectionTimeout","requestNumber","lastException","this_1","numTries","state_1","_l","abortListener","requestOptions","source_1","error_1","_m","transformedData","candidateNode","isDueForHealthcheck","isHealthy","defaultHeaders","messageFromServer","errorMessage","Collections_1","RESOURCEPATH","Collections","apiCall","__spreadArray","ar","RequestWithCache_1","defaultCacheResponseForSeconds","defaultMaxSize","RequestWithCache","requestContext","requestFunction","requestFunctionArguments","cacheOptions","cacheResponseForSeconds","isCacheDisabled","requestFunctionArgumentsJSON","cacheEntry","isEntryValid","cachePromiseEntry","responsePromise","isCacheOverMaxSize","oldestEntry","isResponsePromiseCacheOverMaxSize","SearchOnlyDocuments_1","SearchOnlyDocuments","collectionName","searchParameters","cacheSearchResultsForSeconds","additionalQueryParams","queryParams","operation","Documents_1","Documents","documents","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","Overrides_1","Overrides","overrideId","Override_1","Override","Synonyms_1","Synonyms","synonymId","Synonym_1","Synonym","Document_1","Document","documentId","partialDocument","Collection_1","e_1","Aliases_1","Aliases","aliasName","Alias_1","Alias","Keys_1","crypto_1","Keys","searchKey","paramsJSON","digest","keyPrefix","rawScopedKey","Key_1","Key","Debug_1","Debug","Metrics_1","Metrics","Health_1","Health","Operations_1","Operations","operationName","MultiSearch_1","MultiSearch","useTextContentType","searchRequests","commonParams","Presets_1","Presets","presetId","Preset_1","Preset","AnalyticsRules_1","AnalyticsRules","AnalyticsRule_1","AnalyticsRule","Analytics_1","Analytics","Stopwords_1","Stopwords","stopwordId","Stopword_1","Stopword","ConversationModels_1","ConversationModels","ConversationModel_1","ConversationModel","Conversations_1","Conversations","Conversation_1","Conversation","Client_1","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","Client","SearchOnlyCollection_1","SearchOnlyCollection","SearchClient_1","SearchClient","collection","Typesense","Errors","_search_controller$2","commonSearchParams","categoryResult","hit","categoryNode","_html_content_download_controller","_inbox_controller","jQuery","S2","require","requirejs","undef","req","makeMap","handlers","defined","waiting","defining","aps","jsSuffixRegExp","hasProp","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","normalizedBaseParts","baseParts","starMap","makeRequire","relName","forceSync","makeNormalize","makeLoad","depName","callDep","splitPrefix","makeRelParts","relParts","relResourceName","makeConfig","deps","cjsModule","callbackType","usingExports","alt","_$","Utils","ChildClass","SuperClass","__hasProp","BaseConstructor","getMethods","theClass","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","argCount","calledConstructor","ctr","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","chars","randomChar","originalKey","dataLevel","$el","markup","replaceMap","$nodes","$jqNodes","select2Id","Results","dataAdapter","$results","escapeMarkup","$message","$option","$dropdown","$resultsContainer","sorter","$selected","selectedIds","loadingMore","loading","$loading","$children","$child","$childrenContainer","$container","$highlighted","currentIndex","$next","currentOffset","nextTop","nextOffset","nextBottom","isAtTop","isAtBottom","offsetDelta","BaseSelection","$selection","resultsId","$target","$select","$all","$selectionContainer","SingleSelection","$rendered","selection","formatted","MultipleSelection","$remove","$selections","Placeholder","decorated","$placeholder","singlePlaceholder","multipleSelections","AllowClear","$clear","previousVal","unselectData","removeAll","Search","$search","$previousChoice","msie","disableInputEvents","searchHadFocus","minimumWidth","EventRelay","relayEvents","preventableEvents","Translation","dict","translation","translations","diacritics","BaseAdapter","SelectAdapter","currentData","normalizedData","ArrayAdapter","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","AjaxAdapter","success","$request","Tags","tags","createTag","insertTag","checkChildren","optionText","paramsTerm","checkText","Tokenizer","tokenizer","createAndSelect","$existingOptions","select","tokenData","separators","termChar","partParams","MinimumInputLength","$e","MaximumInputLength","MaximumSelectionLength","successCallback","Dropdown","showSearch","HidePlaceholder","modifiedData","InfiniteScroll","isLoadMoreVisible","loadingMoreOffset","AttachBody","scrollEvent","resizeEvent","orientationEvent","$watchers","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","dropdown","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","parentOffset","countResults","MinimumResultsForSearch","SelectOnClose","$highlightedResults","CloseOnSelect","overChars","remainingChars","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","Query","InitSelection","SearchableDropdown","DropdownCSS","ContainerCSS","uniqueLanguages","language","stripDiacritics","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","resolvedLanguages","languageParts","baseLanguage","debug","languageData","convertedData","Options","InputCompat","excludedData","upperCaseLetter","letter","dataName","dataValue","camelDataName","Select2","tabindex","DataAdapter","SelectionAdapter","DropdownAdapter","ResultsAdapter","initialData","WIDTH","styleWidth","elementWidth","nonRelayEvents","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","syncCssClasses","$dest","$src","replacements","adapted","CompatUtils","_containerAdapter","clazz","containerCssClass","containerCssAdapter","_cssAdapter","containerCss","_dropdownAdapter","dropdownCssClass","dropdownCssAdapter","dropdownCss","InputData","getSelected","allData","oldMatcher","wrappedMatcher","doesMatch","AttachContainer","$dropdownContainer","StopPropagation","stoppedEvents","toFix","toBind","nullLowestDeltaTimeout","lowestDelta","special","$elem","$parent","orgEvent","absDelta","pageHeight","shouldAdjustOldDeltas","nullLowestDelta","thisMethods","instanceOptions","select2","select2Element","_infinite_scroll_controller","nextPage","_PaymentDatePickerController","paymentType","availableDates","today","tomorrow","_toggle_password_controller","_input_changed_controller","inputValue","kidNumber","controlDigit","isMod11","isLuhn","controlNumber","sumForMod","dbl","checkDigit","_kid_validator_controller","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","getWebWorker","setLocationHref","getLocationHref","extendPrototype","destination","sourcePrototype","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audio","rateValue","assetPath","createTypedArray","createRegularArray","createTypedArrayFactory","createSizedArray","subframeEnabled","expressionsPlugin","idPrefix$1","bmPow","bmSqrt","bmFloor","bmMin","defaultCurveSegments","degToRads","roundCorner","BMEnterFrameEvent","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","createNS","_typeof$2","dataManager","_counterId","processes","workerFn","workerInstance","workerProxy","_workerSelf","createWorker","setupWorker","dataFunctionManager","completeLayers","comps","layerData","jLen","kLen","maskProps","convertPathsToAbsoluteValues","findCompLayers","completeShapes","completeText","completeChars","assets","findComp","checkVersion","minimum","animVersionString","animVersion","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","checkChars","charData","checkPathProperties","checkColors","iterateShapes","checkShapes","completeClosingShapes","completeData","moduleOb","formatResponse","loadAsset","errorCallback","createProcess","loadAnimation","processId","loadData","completeAnimation","ImagePreloader","proxyImage","imageLoaded","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","createImageData","ob","createImgData","createFootageData","footageData","loadAssets","setPath","setAssetsPath","getAsset","loadedImages","loadedFootages","setCacheType","elementHelper","ImagePreloaderFactory","BaseEvent","markerParser","parsePayloadLines","keysCount","_markers","markers","_marker","markerData","ProjectInterface","registerComposition","_thisProjectFunction","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$1","AnimationItem","animType","RendererClass","wrapperAttributes","autoplay","prerender","newLayers","segmentPath","animData","_width","_height","markerName","marker","isFrame","numValue","_isComplete","pendingFrame","forceFlag","isLooping","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","setupAnimation","getRegisteredAnimations","lenAnims","addPlayingCount","activate","setSpeed","setDirection","play","resume","nowTime","elapsedTime","pause","goToAndStop","stop","togglePause","searchAnimations","standalone","animElements","freeze","unfreeze","setVolume","mute","unmute","BezierFactory","getBezierEasing","beziers","nm","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","mY1","mY2","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","pooling","_double","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","release","bezierLengthPool","segmentsLengthPool","bezFunction","math","pointOnLine2D","det1","pointOnLine3D","z1","z2","z3","dist1","dist2","dist3","diffDist","getBezierLength","pt3","pt4","curveSegments","ptCoord","perc","addedLength","ptDistance","lengthData","getSegmentsLength","shapeData","segmentsLength","closed","pathV","pathO","pathI","lengths","totalLength","BezierData","PointData","partial","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","percents","initPos","lengthPos","lPerc","getPointInSegment","u1","bezierSegmentPoints","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","iterationIndex","keyData","nextKeyData","keyframeMetadata","fnc","nextKeyTime","keyTime","ind","distanceInLine","segmentPerc","outX","outY","inX","inY","keyValue","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","ax","ay","az","aw","bx","by","bw","omega","cosom","sinom","scale0","scale1","quat","qx","qy","qz","qw","heading","attitude","c3","s3","getValueAtCurrentTime","renderResult","setVValue","multipliedValue","processEffectsSequence","finalValue","addEffect","effectFunction","ValueProperty","mult","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","DynamicPropertyContainer","pointPool","ShapePath","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","ShapeCollection","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","kf","interpolateShapeCurrentTime","lastFrame","resetShape","shapesEqual","shape1","shape2","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","p0","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","roundness","perimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","getShapeProp","dataProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","skewFromAxis","sz","setTransform","translate","tx","ty","a2","b2","f2","g2","i2","j2","m2","o2","b1","f1","g1","h1","i1","j1","k1","m1","o1","multiply","matrixProps","isIdentity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointArray","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","vars","queryString","scripts","myScript","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","shapeLength","totalModifierLength","shapeSegments","segmentOb","shapeS","shapeE","pathsData","_isFirstFrame","_s","shapePaths","totalShapeLength","localShapeCollection","edges","newShapesData","lastShapeInCollection","lastShape","newPaths","newShape","shapeSegment","currentLengthData","segmentCount","segmentLength","PuckerAndBloatModifier","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","applyToMatrix","mat","_mdf","processKeys","forceRender","frameRate","precalculateMatrix","autoOrient","addDynamicProperty","TransformProperty","getTransformProperty","RepeaterModifier","pMatrix","rMatrix","sMatrix","inv","elemsData","newElements","renderFlag","itemsTransform","cont","hasReloaded","copies","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","RoundCornersModifier","currentV","currentI","currentO","closerV","newPosPerc","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","denom","tcusp","square","p10","p11","p20","p21","extrema","intersectData","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rotatedVector","getProjectingAngle","prevIndex","prevPoint","nextPoint","pVector","zigZagCorner","frequency","pointType","prevDist","nextDist","zigZagSegment","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","angleIn","tan","intersection","getIntersection","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","flex","OffsetPathModifier","inputBezier","multiSegments","lastSeg","multiSegment","getFontProperties","fontData","fWeight","fStyle","styleName","FontManager","maxWaitingTime","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","CANCEL_TAG_CODE_POINT","A_TAG_CODE_POINT","Z_TAG_CODE_POINT","VARIATION_SELECTOR_16_CODE_POINT","ZERO_WIDTH_JOINER_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","trimFontOptions","familyArray","enabledFamilies","setUpNode","family","checkLoadedFonts","loadedCount","createHelper","def","engine","helper","fontProps","tHelper","tCanvasHelper","measure","addFonts","defs","fontArr","_pendingFonts","shouldLoadFont","loadedSelector","sc","addChars","getCharData","_char","measureText","_char2","fontName","doubleSize","singleSize","getFontByName","getCodePoint","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","charCode","isVariationSelector","isRegionalCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","setIsLoaded","Font","fontPrototype","SlotManager","slotFactory","RenderableElement","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","effectItem","GroupEffect","eff","BaseElement","blendModeValue","globalData","FrameElement","isVisible","FootageElement","AudioElement","timeRemapped","totalVolume","volumeValue","BaseRenderer","layer","pInterface","parentName","hierarchy","pathValue","fontsContainer","effectTypes","TransformElement","finalMat","localMat","lmat","localOp","transformEffects","transforms","ptNew","MaskElement","currentMasks","layerId","expansor","feMorph","maskType","maskRef","filterID","isFirstFrame","pathNodes","viewData","pathShapeValue","filtersFactory","createFilter","createAlphaToLuminanceFilter","filId","skipCoordinates","fil","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filterManager","Effect","SVGBaseElement","layerElementParent","gg","cp","clipId","cpGroup","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","HierarchyElement","RenderableDOMElement","_prototype","IImageElement","ProcessedElement","IShapeElement","shouldBreakProcess","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","SVGStyleData","DashProperty","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","SVGGradientFillStyleData","pathElement","gradientId","gfill","stops","maskElement","opacityId","maskId","opFill","SVGGradientStrokeStyleData","ShapeGroupData","SVGTransformData","mProps","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","renderNoop","styleData","itemData","pathStringTransformed","lLen","lvl","paths","iterations","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","SVGShapeElement","tempShapes","areAnimated","elementData","GradientConstructor","transformProperty","ownTransformers","shapeProperty","itemsData","prevViewData","ownStyles","ownModifiers","currentTransform","modifier","processedPos","animatedContent","LetterProps","fc","TextProperty","_finalValue","textKeys","charactersArray","shouldCombine","shouldCombineNext","currentChars","fontManager","letters","newLineFlag","anchorGrouping","currentSize","currentPos","currentLine","trackingOffset","currentHeight","finalText","lastSpaceIndex","uncollapsedSpaces","currentChar","animators","animatorData","letterData","based","currentInd","newInd","dData","_canResize","_fontValue","TextSelectorProp","TextSelectorPropFactory","easer","tot","smoothness","newCharsFlag","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","lettersChangedFlag","matrixHelper","renderedLettersCount","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","partialLength","tanAngle","yOff","firstLine","animatorSelector","letterValue","offf","xPathPos","yPathPos","initPathPos","initSegmentInd","initPointInd","elemOpacity","letterSw","letterSc","letterFc","letterM","letterP","letterO","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","ITextElement","shapeStr","_fontSize","lineNumber","colorData","emptyShapeData","SVGTextLottieElement","textArray","textContents","currentTextContent","shapeItem","usesGlyphs","tSpan","singleShape","tElement","justify","textContent","cachedSpansLength","childSpan","glyphElement","SVGCompElement","glyph","textBox","renderedLetters","renderedLetter","textSpan","ISolidElement","NullElement","SVGRendererBase","elementIndex","matteElement","matteMask","nextElement","ICompElement","SVGRenderer","animationItem","ariaLabel","titleElement","descElement","descId","_edit_controller$3","datePickerElement","codeSelector","vatCodeSelector","accountSelector","accountAdditionalData","available_vat_codes","default_vat_code","sub_code","hiddenSelect","postingDate","currentVatSelectOption","allowedVatCodes","vatCodesByDates","dateIso","vatCodes","availableVatOptions","_label","postingRegexp","debitSublineTime","debitSublineRegexp","creditSublineTime","creditSublineRegexp","lastDatePicker","addItem","Items","postingItem","itemsBlock","itemBlock","sublineItem","amounts","dateItem","totalDebitItem","totalCreditItem","totalDebitAmount","totalCreditAmount","_move_element_controller","_focus_on_dropdown_controller","focusReceiverTarget","_navigation_controller","mainItem","collapseParentElement","subItemsArray","isActive","subLink","subItem","_nested_form_controller","_new_company_controller","data_municipality","municipality","show","organisation_number","existingAlertElement","alertElement","firstNode","_new_customer_invoice_controller","_new_modal_controller$1","_opening_balance_controller","originDate","showModal","modalHeaderText","modalBodyText","reconciledAccounts","changedAccountsNumber","accountSum","amountElement","_index","$itemTarget","$amount","_edit_modal_controller","warningTarget","_FormController","cancelEvent","isSubmitAvailable","organisationNumber","countryNumber","privatePartner","$privateElements","$corporationElements","_manual_modal_controller","_merge_controller","hashId","_new_partner_controller","updateModal","radioButton","partnerFormController","radioButton1","radioButton2","partnerSearchController","autoComplete","hasClass","addEvent","removeEvent","live","elClass","scrTop","selTop","sel","over_sb","suggest","_search_controller$1","partnerType","encodedPartner","parsedJSON","badge","_search_modal_controller","_select_controller","selectedItem","total_count","lastUsedHeader","currentPartner","leftSide","rightSide","_payment_payable_controller","foreignAmount","domesticAmount","accountCanExecutePayment","availablePaymentOptions","inputElement","labelText","labelElement","hintContent","hintElement","paid_partial_link","bankAccountCurrency","isSourceInDefaultCurrency","isBankAccountInDefaultCurrency","mainAmountInput","secondaryAmountInput","secondaryInputCurrency","domesticAmountInput","foreignAmountInput","domesticAmountElement","foreignAmountElement","sourceInput","targetInput","bankAccountOption","accountsToHide","defaultAccount","availableAccounts","paymentBlock","paymentDateController","isPSD2Integration","currentUserHasConsent","currentConsentExpired","buttonText","isPsd2Integration","isExecuteForeignPayment","canExecutePayments","_payment_receivable_controller","excludeFeesCheckboxElement","paymentAmount","outstandingAmountExcludingFees","outstandingAmountIncludingFees","checkBoxWrapper","_pills_counter_controller","popover","_sort_table_by_amount_controller","th","isAscending","totalRows","sortedRows","aCell","bCell","aValue","bValue","_preview_controller$1","oldPreviewElement","_search_controller","productVatCode","_new_controller$1","buttonElement","previouslySelectedOption","balanceToTaxGroup","optionArrays","startMonthYear","wreckAmount","accountingAmount","durationMonths","depreciationAmount","depreciationAmountText","_radio_card_controller","checkedCard","reverseDateList","_fetch_multiple_tax_cards_controller","_initial_recurring_payslip_line_controller","amountLabel","_transfer_salary_controller","_new_controller","_reverse_controller","_edit_controller$2","quantityType","showAmount","percentTemplate","_new_modal_controller","pinForm","inputDiv","_edit_controller$1","amountInput","inputColumn","rateLabel","prependDiv","decimals","_wage_type_controller","wage_type","_form_controller$3","_preview_controller","_form_controller$2","fee","_schedule_controller","flatpickr","_vat_auto_input_filler_controller","vatRate","priceIncVat","priceExVat","priceExcVat","vat","_search_param_controller","paramName","targetParamName","pages_number","_select2_controller","_select_option_filter_controller","beginningOnDate","endingOnDate","optionBeginningOnDate","optionEndingOnDate","_sortable_table_controller","extension","_split_view_controller","leftWidth","rightWidth","imageType","bootstrapMdWidth","wrapTarget","targetToHide","flashAlert","iframeSafari","highlightedElements","highlightedElement","_form_controller$1","listedInTheStockMarket","foreignCompany","exemptionMethod","sameConcern","longtermInvestment","percentRangeOwned","chosenAccount","_form_controller","pure","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","findScript","injectScript","headOrBody","registerWrapper","stripe","stripePromise","loadScript","initStripe","maybeStripe","validateLoadParams","loadParams","loadStripeCalled","loadStripe","_checkout_controller","callbackUrl","updatedUrl","client_secret","performPayment","originalText","submitError","clientSecret","_single_purchase_controller","activateResponse","_supplier_invoice_controller","ex","isNaN","_supplier_invoice_preview_controller","invoice_line_item","vatInput","vatAmountInputRow","vatAmountInput","vatAmountLabel","vatOption","$elements","previousDate","previousYear","paymentForm","partnerData","default_debit_account_id","default_debit_account_code_and_description","bank_account_number","$newPostingLineTarget","oldName","collapseId","$row","supplierName","invoiceNumber","oldInvoiceDate","paidBy","previousPaidBy","reimbursementTransactionText","oldReimbursementTransactionText","dateTransactionText","oldDateTransactionText","newTransactionText","oldTransactionText","currentTransactionText","supplierInvoiceForeignCurrency","paymentOn","$text","_edit_controller","selectedCurrency","nav","tabElem","_table_header_visibility_controller","_duration_controller","secondsStr","secondsInMinute","secondsInHour","remainingSecondsAfterHours","_toggle_visibility_button_controller","_total_amount_controller","totalTarget","groups","inputTag","formattedTotal","_turbo_form_controller","btn","_change_email_controller","_user_controller","_report_comment_controller","appliesToOption","appliesTo","allowedRemarks","_vat_rate_controller","defaultVatCode","overrideSelectedCode","currentlySelectedCode","availableVatRegistrations","inVatRegistrationPeriod","isDateBeforeFirstVatPeriod","period","_visibility_radio_controller","radio","_visibility_toggle_controller","hideValue","_zip_code_controller","application","controllerModules","controllerModule","identifier","controllerConstructor","logicalName","CrispMessage","crisp","CrispUser","nickname","hmac","phone","avatar","_payload","CrispTrigger","EventsColors","CrispSession","reload","overwrite","CrispChat","slug","category","ChatboxColors","ChatboxPosition","Crisp","websiteId","_head","_script","tokenId","safe","ActiveStorage.start"],"ignoreList":[1,2,3,4,5,6,7,8,10,27,28,29,30,31,32,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,142,143,144,145,146,147,179,180,181,182,187,188,189,190,191,192,193,194,195,196,197,198,199,205,215,216,217,218,219,224,241,265,266,267,268,269,270,271,272,286,292,294,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,357,361,370,428,429,450,453],"sources":["../../../app/javascript/polyfills.ts","../../../../../shared/node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js","../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js","../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js","../../../../../shared/node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","../../../../../shared/node_modules/rollbar/dist/rollbar.umd.min.js","../../../app/javascript/rollbar/rollbarInit.ts","../../../../../shared/node_modules/dropzone/dist/dropzone.js","../../../app/javascript/standalone/components/Accordion.ts","../../../app/javascript/standalone/components/BootstrapVerification.ts","../../../app/javascript/standalone/components/Collapsable.ts","../../../app/javascript/standalone/components/JsFormError.ts","../../../app/javascript/standalone/components/Select2Builder.ts","../../../app/javascript/standalone/components/Sortable.ts","../../../app/javascript/standalone/components/Toggle.ts","../../../app/javascript/standalone/components/ClampableAlert.ts","../../../app/javascript/standalone/components/TooltipInitializer.ts","../../../app/javascript/standalone/components/PopoverInitializer.ts","../../../app/javascript/standalone/components/SubmitButtonHandler.ts","../../../app/javascript/standalone/views/CompanyRole.ts","../../../app/javascript/standalone/views/CustomerInvoiceLine.ts","../../../app/javascript/standalone/views/SupplierInvoiceDeleteButton.ts","../../../app/javascript/standalone/components/Charts.ts","../../../app/javascript/standalone/manifest.ts","../../../../../shared/node_modules/vue-turbolinks/index.js","../../../../../shared/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../../../shared/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../../../../shared/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../../../../shared/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../../../../shared/node_modules/@fortawesome/vue-fontawesome/index.es.js","../../../app/javascript/controllers/formatting_helper.ts","../../../app/javascript/vue/components/Amount.vue","../../../app/javascript/vue/components/BootstrapModal.vue","../../../../../shared/node_modules/date-fns/constants.js","../../../../../shared/node_modules/date-fns/constructFrom.js","../../../../../shared/node_modules/date-fns/toDate.js","../../../../../shared/node_modules/date-fns/addDays.js","../../../../../shared/node_modules/date-fns/addMonths.js","../../../../../shared/node_modules/date-fns/_lib/defaultOptions.js","../../../../../shared/node_modules/date-fns/startOfWeek.js","../../../../../shared/node_modules/date-fns/startOfISOWeek.js","../../../../../shared/node_modules/date-fns/getISOWeekYear.js","../../../../../shared/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../../../../shared/node_modules/date-fns/_lib/normalizeDates.js","../../../../../shared/node_modules/date-fns/startOfDay.js","../../../../../shared/node_modules/date-fns/differenceInCalendarDays.js","../../../../../shared/node_modules/date-fns/startOfISOWeekYear.js","../../../../../shared/node_modules/date-fns/addYears.js","../../../../../shared/node_modules/date-fns/max.js","../../../../../shared/node_modules/date-fns/isSameDay.js","../../../../../shared/node_modules/date-fns/isDate.js","../../../../../shared/node_modules/date-fns/isValid.js","../../../../../shared/node_modules/date-fns/endOfDay.js","../../../../../shared/node_modules/date-fns/endOfMonth.js","../../../../../shared/node_modules/date-fns/startOfMonth.js","../../../../../shared/node_modules/date-fns/endOfYear.js","../../../../../shared/node_modules/date-fns/startOfYear.js","../../../../../shared/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../../../shared/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../../../shared/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../../../shared/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../../../shared/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../../../shared/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../../../shared/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../../../shared/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../../../shared/node_modules/date-fns/locale/en-US/_lib/match.js","../../../../../shared/node_modules/date-fns/locale/en-US.js","../../../../../shared/node_modules/date-fns/getDayOfYear.js","../../../../../shared/node_modules/date-fns/getISOWeek.js","../../../../../shared/node_modules/date-fns/getWeekYear.js","../../../../../shared/node_modules/date-fns/startOfWeekYear.js","../../../../../shared/node_modules/date-fns/getWeek.js","../../../../../shared/node_modules/date-fns/_lib/addLeadingZeros.js","../../../../../shared/node_modules/date-fns/_lib/format/lightFormatters.js","../../../../../shared/node_modules/date-fns/_lib/format/formatters.js","../../../../../shared/node_modules/date-fns/_lib/format/longFormatters.js","../../../../../shared/node_modules/date-fns/_lib/protectedTokens.js","../../../../../shared/node_modules/date-fns/format.js","../../../../../shared/node_modules/date-fns/formatISO.js","../../../../../shared/node_modules/date-fns/getDefaultOptions.js","../../../../../shared/node_modules/date-fns/getISODay.js","../../../../../shared/node_modules/date-fns/isAfter.js","../../../../../shared/node_modules/date-fns/isBefore.js","../../../../../shared/node_modules/date-fns/isEqual.js","../../../../../shared/node_modules/date-fns/isFuture.js","../../../../../shared/node_modules/date-fns/transpose.js","../../../../../shared/node_modules/date-fns/parse/_lib/Setter.js","../../../../../shared/node_modules/date-fns/parse/_lib/Parser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/constants.js","../../../../../shared/node_modules/date-fns/parse/_lib/utils.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../../../../shared/node_modules/date-fns/setWeek.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../../../../shared/node_modules/date-fns/setISOWeek.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../../../../shared/node_modules/date-fns/setDay.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../../../../shared/node_modules/date-fns/setISODay.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../../../../shared/node_modules/date-fns/parse/_lib/parsers.js","../../../../../shared/node_modules/date-fns/parse.js","../../../../../shared/node_modules/date-fns/isSameMonth.js","../../../../../shared/node_modules/date-fns/isSameYear.js","../../../../../shared/node_modules/date-fns/isWithinInterval.js","../../../../../shared/node_modules/date-fns/parseISO.js","../../../../../shared/node_modules/date-fns/setYear.js","../../../../../shared/node_modules/pinia/dist/pinia.mjs","../../../app/javascript/vue/bank_reconciliations/edit/services/BankReconciliationService.ts","../../../app/javascript/vue/bank_reconciliations/edit/services/BankReconciliationLineItemService.ts","../../../app/javascript/vue/bank_reconciliations/edit/services/CustomerInvoiceService.ts","../../../app/javascript/vue/bank_reconciliations/edit/store/index.ts","../../../app/javascript/vue/bank_reconciliations/edit/components/item_card/SuggestionListItem.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/item_card/SuggestionList.vue","../../../../../shared/node_modules/date-fns/locale/nb/_lib/formatDistance.js","../../../../../shared/node_modules/date-fns/locale/nb/_lib/formatLong.js","../../../../../shared/node_modules/date-fns/locale/nb/_lib/formatRelative.js","../../../../../shared/node_modules/date-fns/locale/nb/_lib/localize.js","../../../../../shared/node_modules/date-fns/locale/nb/_lib/match.js","../../../../../shared/node_modules/date-fns/locale/nb.js","../../../app/javascript/libraries/datefnt.ts","../../../app/javascript/vue/bank_reconciliations/edit/components/top_card/MatchInvoiceWithoutPayment.vue","../../../app/javascript/vue/components/bootstrap/TableMoreDropdown.vue","../../../app/javascript/vue/components/bootstrap/DropdownItem.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/CandidatePopover.ts","../../../app/javascript/vue/bank_reconciliations/edit/components/ItemCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/BankTransactionItemCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/BankStatementList.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/PostingItemCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/PostingList.vue","../../../app/javascript/vue/bank_reconciliations/edit/GeometricFunctions.ts","../../../app/javascript/vue/bank_reconciliations/edit/components/MatchCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/Lines.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/top_card/ReadyForReconciliation.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/top_card/OpenItems.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/top_card/Reconciled.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/top_card/TopCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/UnMatchCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/MatchedRow.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/MatchedSection.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/StatementSummaryCard.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/StatementSummaryRow.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/TransactionDataNotFinalizedModal.vue","../../../app/javascript/vue/bank_reconciliations/edit/components/App.vue","../../../app/javascript/vue/bank_reconciliations/edit/index.ts","../../../app/javascript/vue/account_selector/components/SearchField.vue","../../../app/javascript/vue/account_selector/components/Item.vue","../../../app/javascript/vue/account_selector/components/GroupedAccounts.vue","../../../app/javascript/vue/account_selector/components/List.vue","../../../app/javascript/vue/account_selector/components/Description.vue","../../../app/javascript/vue/account_selector/services/AccountSelectorService.ts","../../../../../shared/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../../../shared/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../../../shared/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../../../shared/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../app/javascript/vue/account_selector/components/App.vue","../../../app/javascript/vue/account_selector/index.ts","../../../app/javascript/vue/components/AmountInput.vue","../../../app/javascript/vue/found_company/submissions/edit/components/PercentInput.vue","../../../../../shared/node_modules/flatpickr/dist/l10n/default.js","../../../../../shared/node_modules/flatpickr/dist/l10n/no.js","../../../../../shared/node_modules/flatpickr/dist/esm/types/options.js","../../../../../shared/node_modules/flatpickr/dist/esm/l10n/default.js","../../../../../shared/node_modules/flatpickr/dist/esm/utils/index.js","../../../../../shared/node_modules/flatpickr/dist/esm/utils/dom.js","../../../../../shared/node_modules/flatpickr/dist/esm/utils/formatting.js","../../../../../shared/node_modules/flatpickr/dist/esm/utils/dates.js","../../../../../shared/node_modules/flatpickr/dist/esm/utils/polyfills.js","../../../../../shared/node_modules/flatpickr/dist/esm/index.js","../../../../../shared/node_modules/vue-flatpickr-component/dist/esm/events.js","../../../../../shared/node_modules/vue-flatpickr-component/dist/esm/util.js","../../../../../shared/node_modules/vue-flatpickr-component/dist/esm/component.js","../../../app/javascript/vue/components/DatePicker.vue","../../../app/javascript/vue/components/FormInput.vue","../../../app/javascript/vue/found_company/submissions/edit/components/SignatoryForm.vue","../../../app/javascript/vue/found_company/submissions/edit/services/OwnerService.ts","../../../app/javascript/vue/found_company/submissions/edit/services/SubmissionService.ts","../../../../../shared/node_modules/decimal.js/decimal.mjs","../../../app/javascript/classes/parse_decimal.ts","../../../app/javascript/vue/found_company/submissions/edit/store/index.ts","../../../app/javascript/vue/found_company/submissions/edit/components/PersonModal.vue","../../../app/javascript/vue/components/Select2.vue","../../../app/javascript/vue/found_company/submissions/edit/components/CompanyModal.vue","../../../app/javascript/vue/found_company/submissions/edit/components/OwnerCard.vue","../../../app/javascript/vue/found_company/submissions/edit/components/App.vue","../../../app/javascript/vue/found_company/submissions/edit/index.ts","../../../app/javascript/vue/app.ts","../../../../../shared/node_modules/@kurkle/color/dist/color.esm.js","../../../../../shared/node_modules/chart.js/dist/chunks/helpers.segment.js","../../../../../shared/node_modules/chart.js/dist/chart.js","../../../../../shared/node_modules/trix/dist/trix.esm.min.js","../../../../../shared/node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js","../../../app/javascript/controllers/accrual/edit_controller.ts","../../../app/javascript/controllers/altinn_modal_controller.ts","../../../app/javascript/rendering.ts","../../../app/javascript/controllers/attention_nudger_controller.ts","../../../../../shared/node_modules/canvas-confetti/dist/confetti.module.mjs","../../../app/javascript/controllers/auto_show_modal_controller.ts","../../../app/javascript/controllers/auto_submit_controller.ts","../../../app/javascript/controllers/badge_to_input_controller.ts","../../../app/javascript/controllers/badge_to_partner_controller.ts","../../../app/javascript/controllers/bank/account/new_modal_controller.ts","../../../app/javascript/controllers/bank/bank/search_controller.ts","../../../app/javascript/controllers/bank/psd2/debug_connect_controller.ts","../../../app/javascript/controllers/bank/psd2/payments_limit_controller.ts","../../../app/javascript/libraries/jquery.ts","../../../app/javascript/classes/bank_account.ts","../../../app/javascript/controllers/bank_account_controller.ts","../../../app/javascript/controllers/bank_integration/edit_controller.ts","../../../app/javascript/controllers/bank_reconciliation/bank_account_selector_controller.ts","../../../app/javascript/controllers/bank_reconciliation/closing_balance_controller.ts","../../../app/javascript/controllers/bookkeeping/entry_match_controller.ts","../../../app/javascript/controllers/bookkeeping/year_end/repeating_row_controller.ts","../../../../../shared/node_modules/@capaj/pluralize/dist/pluralize.module.js","../../../app/javascript/controllers/crud_table_controller.ts","../../../app/javascript/controllers/bookkeeping/year_end/sub_report_field_controller.ts","../../../app/javascript/controllers/bookkeeping/year_end/year_end_posting_controller.ts","../../../app/javascript/controllers/checkbox_select_all_controller.ts","../../../app/javascript/controllers/bulk_action_table_controller.ts","../../../app/javascript/controllers/chart_controller.ts","../../../app/javascript/controllers/checkbox_content_flipper_controller.ts","../../../app/javascript/controllers/clampable_controller.ts","../../../app/javascript/controllers/click_to_edit_input_controller.ts","../../../app/javascript/controllers/click_to_swap_visibility_controller.ts","../../../app/javascript/controllers/clipboard_controller.ts","../../../app/javascript/controllers/collapsible_controller.ts","../../../app/javascript/controllers/collapsible_table_controller.ts","../../../app/javascript/controllers/company/accounting_from_controller.ts","../../../app/javascript/controllers/company/edit_controller.ts","../../../app/javascript/controllers/company/select_controller.ts","../../../app/javascript/controllers/company_update_controller.ts","../../../app/javascript/controllers/confirmation_controller.ts","../../../app/javascript/controllers/content_switcher_controller.ts","../../../app/javascript/controllers/copy_on_blur_controller.ts","../../../app/javascript/controllers/corporate_governance/shareholder/edit_controller.ts","../../../app/javascript/controllers/customer_invitation/new_controller.ts","../../../app/javascript/controllers/customer_invoices/date_controller.ts","../../../../../shared/node_modules/@stimulus/mutation-observers/dist/element_observer.js","../../../../../shared/node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","../../../../../shared/node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","../../../../../shared/node_modules/@stimulus/multimap/dist/set_operations.js","../../../../../shared/node_modules/@stimulus/multimap/dist/multimap.js","../../../../../shared/node_modules/@stimulus/multimap/dist/indexed_multimap.js","../../../../../shared/node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","../../../../../shared/node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","../../../app/javascript/controllers/customer_invoices/edit_controller.ts","../../../app/javascript/controllers/customer_invoices/index_controller.ts","../../../app/javascript/controllers/customer_invoices/project_select_controller.ts","../../../app/javascript/controllers/customer_invoices/send_email_controller.ts","../../../app/javascript/controllers/customer_invoices/send_letter_controller.ts","../../../app/javascript/controllers/customer_invoices/send_vipps_controller.ts","../../../app/javascript/controllers/customer_invoices/settled_card_controller.ts","../../../app/javascript/controllers/dashboard_controller.ts","../../../app/javascript/controllers/data_binding_controller.ts","../../../app/javascript/controllers/delete_company_controller.ts","../../../app/javascript/controllers/delete_confirmation_controller.ts","../../../app/javascript/controllers/disable_element_controller.ts","../../../app/javascript/controllers/dismissible_controller.ts","../../../../../shared/node_modules/@easepick/bundle/dist/index.esm.js","../../../app/javascript/controllers/helpers.ts","../../../app/javascript/controllers/ease_pick_daterange_controller.ts","../../../app/javascript/controllers/enable_input_controller.ts","../../../app/javascript/controllers/feedback_controller.ts","../../../app/javascript/controllers/file_select_controller.ts","../../../../../shared/node_modules/stimulus-flatpickr/dist/index.m.js","../../../app/javascript/controllers/flatpickr_controller.ts","../../../../../shared/node_modules/flatpickr/dist/plugins/monthSelect/index.js","../../../app/javascript/controllers/flatpickr_month_controller.ts","../../../app/javascript/controllers/form_submit_enable_controller.ts","../../../app/javascript/controllers/form_switcher_controller.ts","../../../app/javascript/controllers/formatted_amount_controller.ts","../../../app/javascript/controllers/found_company/board_members/crud_table_controller.ts","../../../app/javascript/controllers/found_company/card_select_controller.ts","../../../app/javascript/controllers/found_company/edit_controller.ts","../../../app/javascript/controllers/gdpr_consent_controller.ts","../../../../../shared/node_modules/loglevel/lib/loglevel.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/TypesenseError.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/HTTPError.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/MissingConfigurationError.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/ObjectAlreadyExists.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/ObjectNotFound.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/ObjectUnprocessable.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/RequestMalformed.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/RequestUnauthorized.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/ServerError.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/ImportError.js","../../../../../shared/node_modules/typesense/lib/Typesense/Errors/index.js","../../../../../shared/node_modules/typesense/lib/Typesense/Configuration.js","../../../../../shared/node_modules/axios/dist/browser/axios.cjs","../../../../../shared/node_modules/typesense/lib/Typesense/ApiCall.js","../../../../../shared/node_modules/typesense/lib/Typesense/Collections.js","../../../../../shared/node_modules/typesense/lib/Typesense/RequestWithCache.js","../../../../../shared/node_modules/typesense/lib/Typesense/SearchOnlyDocuments.js","../../../../../shared/node_modules/typesense/lib/Typesense/Documents.js","../../../../../shared/node_modules/typesense/lib/Typesense/Overrides.js","../../../../../shared/node_modules/typesense/lib/Typesense/Override.js","../../../../../shared/node_modules/typesense/lib/Typesense/Synonyms.js","../../../../../shared/node_modules/typesense/lib/Typesense/Synonym.js","../../../../../shared/node_modules/typesense/lib/Typesense/Document.js","../../../../../shared/node_modules/typesense/lib/Typesense/Collection.js","../../../../../shared/node_modules/typesense/lib/Typesense/Aliases.js","../../../../../shared/node_modules/typesense/lib/Typesense/Alias.js","../../../../../shared/node_modules/typesense/lib/Typesense/Keys.js","../../../../../shared/node_modules/typesense/lib/Typesense/Key.js","../../../../../shared/node_modules/typesense/lib/Typesense/Debug.js","../../../../../shared/node_modules/typesense/lib/Typesense/Metrics.js","../../../../../shared/node_modules/typesense/lib/Typesense/Health.js","../../../../../shared/node_modules/typesense/lib/Typesense/Operations.js","../../../../../shared/node_modules/typesense/lib/Typesense/MultiSearch.js","../../../../../shared/node_modules/typesense/lib/Typesense/Presets.js","../../../../../shared/node_modules/typesense/lib/Typesense/Preset.js","../../../../../shared/node_modules/typesense/lib/Typesense/AnalyticsRules.js","../../../../../shared/node_modules/typesense/lib/Typesense/AnalyticsRule.js","../../../../../shared/node_modules/typesense/lib/Typesense/Analytics.js","../../../../../shared/node_modules/typesense/lib/Typesense/Stopwords.js","../../../../../shared/node_modules/typesense/lib/Typesense/Stopword.js","../../../../../shared/node_modules/typesense/lib/Typesense/ConversationModels.js","../../../../../shared/node_modules/typesense/lib/Typesense/ConversationModel.js","../../../../../shared/node_modules/typesense/lib/Typesense/Conversations.js","../../../../../shared/node_modules/typesense/lib/Typesense/Conversation.js","../../../../../shared/node_modules/typesense/lib/Typesense/Client.js","../../../../../shared/node_modules/typesense/lib/Typesense/SearchOnlyCollection.js","../../../../../shared/node_modules/typesense/lib/Typesense/SearchClient.js","../../../../../shared/node_modules/typesense/lib/Typesense.js","../../../app/javascript/controllers/help/search_controller.ts","../../../app/javascript/controllers/html_content_download_controller.ts","../../../app/javascript/util/get_model_hash_ids.ts","../../../app/javascript/controllers/inbox/action_controller.ts","../../../app/javascript/controllers/inbox_controller.ts","../../../../../shared/node_modules/select2/dist/js/select2.full.js","../../../app/javascript/libraries/select2.ts","../../../app/javascript/controllers/index_filter_controller.ts","../../../app/javascript/controllers/infinite_scroll_controller.ts","../../../../../shared/node_modules/inputmask/dist/inputmask.js","../../../app/javascript/controllers/input/bank_account_number_controller.ts","../../../app/javascript/controllers/input/nnin_controller.ts","../../../app/javascript/controllers/input/norwegian_zip_code_controller.ts","../../../app/javascript/controllers/input/payment_date_picker_controller.ts","../../../app/javascript/controllers/input/toggle_password_controller.ts","../../../app/javascript/controllers/input_changed_controller.ts","../../../app/javascript/classes/kid_validator.ts","../../../app/javascript/controllers/kid_validator_controller.ts","../../../../../shared/node_modules/lottie-web/build/player/lottie_light.js","../../../app/javascript/controllers/lottie_controller.ts","../../../app/javascript/controllers/manual_journal/edit_controller.ts","../../../app/javascript/controllers/move_element_controller.ts","../../../app/javascript/controllers/navigation/focus_on_dropdown_controller.ts","../../../app/javascript/controllers/navigation_controller.ts","../../../app/javascript/controllers/nested_form_controller.ts","../../../app/javascript/controllers/new_company_controller.ts","../../../app/javascript/controllers/new_customer_invoice_controller.ts","../../../app/javascript/controllers/new_modal_controller.ts","../../../app/javascript/controllers/opening_balance_controller.ts","../../../app/javascript/controllers/partner/edit_modal_controller.ts","../../../app/javascript/classes/company_lookup.ts","../../../app/javascript/controllers/partner/form_controller.ts","../../../app/javascript/controllers/partner/manual_modal_controller.ts","../../../app/javascript/controllers/partner/merge_controller.ts","../../../app/javascript/controllers/partner/new_partner_controller.ts","../../../app/javascript/standalone/components/AutoComplete.js","../../../app/javascript/controllers/partner/search_controller.ts","../../../app/javascript/controllers/partner/search_modal_controller.ts","../../../app/javascript/controllers/partner/select2_search_controller.ts","../../../app/javascript/controllers/partner/select_controller.ts","../../../app/javascript/controllers/payment_payable_controller.ts","../../../app/javascript/controllers/payment_receivable_controller.ts","../../../app/javascript/controllers/pills_counter_controller.ts","../../../app/javascript/controllers/popover_controller.ts","../../../app/javascript/controllers/posting_line_summary/sort_table_by_amount_controller.ts","../../../app/javascript/controllers/preview_controller.ts","../../../app/javascript/controllers/print_data_controller.ts","../../../app/javascript/controllers/product/delete_controller.ts","../../../app/javascript/controllers/product/search_controller.ts","../../../app/javascript/controllers/purchase/assets/new_controller.ts","../../../app/javascript/controllers/radio_card_controller.ts","../../../app/javascript/controllers/reminder/payments_controller.ts","../../../app/javascript/controllers/reverse_journal_controller.ts","../../../app/javascript/controllers/salary/employees/fetch_multiple_tax_cards_controller.ts","../../../app/javascript/controllers/salary/employments/initial_recurring_payslip_line_controller.ts","../../../app/javascript/controllers/salary/employments/transfer_salary_controller.ts","../../../app/javascript/controllers/salary/leave_of_absences/crud_table_controller.ts","../../../app/javascript/controllers/salary/norwegian_standardised_occupation_controller.ts","../../../app/javascript/controllers/salary/payruns/new_controller.ts","../../../app/javascript/controllers/salary/payruns/reverse_controller.ts","../../../app/javascript/controllers/salary/payslip-line-items/edit_controller.ts","../../../app/javascript/controllers/salary/pension_reports/new_modal_controller.ts","../../../app/javascript/controllers/salary/recurring_payslip_line_items/edit_controller.ts","../../../app/javascript/controllers/salary/wage_type_controller.ts","../../../app/javascript/controllers/sale/automatic_reminder/form_controller.ts","../../../app/javascript/controllers/sale/invoice_import/preview_controller.ts","../../../app/javascript/controllers/sale/invoice_reminder/form_controller.ts","../../../app/javascript/controllers/sale/recurring_customer_invoices/schedule_controller.ts","../../../app/javascript/controllers/sale/vat_auto_input_filler_controller.ts","../../../app/javascript/controllers/search_param_controller.ts","../../../app/javascript/controllers/select2_controller.ts","../../../app/javascript/controllers/select_option_filter_controller.ts","../../../app/javascript/controllers/sortable_table_controller.ts","../../../app/javascript/controllers/split_view_controller.ts","../../../app/javascript/controllers/stock/stocks/form_controller.ts","../../../app/javascript/controllers/stock/trades/form_controller.ts","../../../../../shared/node_modules/@stripe/stripe-js/dist/pure.js","../../../../../shared/node_modules/@stripe/stripe-js/pure.js","../../../app/javascript/controllers/stripe/checkout_controller.ts","../../../app/javascript/controllers/subscription/single_purchase_controller.ts","../../../app/javascript/controllers/supplier_invoice_controller.ts","../../../app/javascript/classes/vat.ts","../../../app/javascript/controllers/supplier_invoice_preview_controller.ts","../../../app/javascript/controllers/supplier_invoices/edit_controller.ts","../../../app/javascript/controllers/tab_url_controller.ts","../../../app/javascript/controllers/table_header_visibility_controller.ts","../../../app/javascript/controllers/timesheet/duration_controller.ts","../../../app/javascript/controllers/toggle_visibility_button_controller.ts","../../../app/javascript/controllers/total_amount_controller.ts","../../../app/javascript/controllers/turbo_form_controller.ts","../../../app/javascript/controllers/url_update_on_ajax_request_controller.ts","../../../app/javascript/controllers/user/change_email_controller.ts","../../../app/javascript/controllers/user_controller.ts","../../../app/javascript/controllers/vat/report_comment_controller.ts","../../../app/javascript/controllers/vat_rate_controller.ts","../../../app/javascript/controllers/visibility_radio_controller.ts","../../../app/javascript/controllers/visibility_toggle_controller.ts","../../../app/javascript/controllers/zip_code_controller.ts","../../../../../shared/node_modules/stimulus-vite-helpers/dist/index.js","../../../app/javascript/setupStimulus.ts","../../../app/javascript/libraries/turbo/stream_actions.ts","../../../../../shared/node_modules/crisp-sdk-web/dist/crisp.esm.js","../../../app/javascript/entrypoints/application.ts"],"sourcesContent":["import 'regenerator-runtime/runtime'\n\n// Polyfill for Event.submitter, needed for Safari on places we use multiple buttons in one form\n// This Polyfill function must be called to be enabled to avoid adding this global click listener on all our pages\nexport function polyFillEventSubmitter() {\n let lastBtn = null\n document.addEventListener(\n 'click',\n function (e) {\n const target = e.target as HTMLElement\n if (!target.closest) return\n lastBtn = target.closest('button, input[type=submit]')\n },\n true,\n )\n document.addEventListener(\n 'submit',\n function (e: any) {\n if (e.submitter) return\n var canditates = [document.activeElement, lastBtn]\n for (var i = 0; i < canditates.length; i++) {\n var candidate = canditates[i]\n if (!candidate) continue\n if (!candidate.form) continue\n if (!candidate.matches('button, input[type=button], input[type=image]')) continue\n e.submitter = candidate\n return\n }\n e.submitter = (e.target as HTMLElement).querySelector('button, input[type=button], input[type=image]')\n },\n true,\n )\n}\n","/*!\nTurbo 8.0.13\nCopyright © 2025 37signals LLC\n */\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2019 Javan Makhmali\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function (prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function (submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form ||\n raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\n\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return candidate?.type == \"submit\" ? candidate : null\n}\n\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n\n(function () {\n if (\"submitter\" in Event.prototype) return\n\n let prototype = window.Event.prototype;\n // Certain versions of Safari 15 have a bug where they won't\n // populate the submitter. This hurts TurboDrive's enable/disable detection.\n // See https://bugs.webkit.org/show_bug.cgi?id=229660\n if (\"SubmitEvent\" in window) {\n const prototypeOfSubmitEvent = window.SubmitEvent.prototype;\n\n if (/Apple Computer/.test(navigator.vendor) && !(\"submitter\" in prototypeOfSubmitEvent)) {\n prototype = prototypeOfSubmitEvent;\n } else {\n return // polyfill not needed\n }\n }\n\n addEventListener(\"click\", clickCaptured, true);\n\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target)\n }\n }\n });\n})();\n\nconst FrameLoadingStyle = {\n eager: \"eager\",\n lazy: \"lazy\"\n};\n\n/**\n * Contains a fragment of HTML which is updated based on navigation within\n * it (e.g. via links or form submissions).\n *\n * @customElement turbo-frame\n * @example\n * \n * \n * Show all expanded messages in this frame.\n * \n *\n * \n * Show response from this form within this frame.\n * \n * \n */\nclass FrameElement extends HTMLElement {\n static delegateConstructor = undefined\n\n loaded = Promise.resolve()\n\n static get observedAttributes() {\n return [\"disabled\", \"loading\", \"src\"]\n }\n\n constructor() {\n super();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n\n connectedCallback() {\n this.delegate.connect();\n }\n\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n\n reload() {\n return this.delegate.sourceURLReloaded()\n }\n\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n } else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n } else if (name == \"disabled\") {\n this.delegate.disabledChanged();\n }\n }\n\n /**\n * Gets the URL to lazily load source HTML from\n */\n get src() {\n return this.getAttribute(\"src\")\n }\n\n /**\n * Sets the URL to lazily load source HTML from\n */\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n } else {\n this.removeAttribute(\"src\");\n }\n }\n\n /**\n * Gets the refresh mode for the frame.\n */\n get refresh() {\n return this.getAttribute(\"refresh\")\n }\n\n /**\n * Sets the refresh mode for the frame.\n */\n set refresh(value) {\n if (value) {\n this.setAttribute(\"refresh\", value);\n } else {\n this.removeAttribute(\"refresh\");\n }\n }\n\n get shouldReloadWithMorph() {\n return this.src && this.refresh === \"morph\"\n }\n\n /**\n * Determines if the element is loading\n */\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\")\n }\n\n /**\n * Sets the value of if the element is loading\n */\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n } else {\n this.removeAttribute(\"loading\");\n }\n }\n\n /**\n * Gets the disabled state of the frame.\n *\n * If disabled, no requests will be intercepted by the frame.\n */\n get disabled() {\n return this.hasAttribute(\"disabled\")\n }\n\n /**\n * Sets the disabled state of the frame.\n *\n * If disabled, no requests will be intercepted by the frame.\n */\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n } else {\n this.removeAttribute(\"disabled\");\n }\n }\n\n /**\n * Gets the autoscroll state of the frame.\n *\n * If true, the frame will be scrolled into view automatically on update.\n */\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\")\n }\n\n /**\n * Sets the autoscroll state of the frame.\n *\n * If true, the frame will be scrolled into view automatically on update.\n */\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n } else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n\n /**\n * Determines if the element has finished loading\n */\n get complete() {\n return !this.delegate.isLoading\n }\n\n /**\n * Gets the active state of the frame.\n *\n * If inactive, source changes will not be observed.\n */\n get isActive() {\n return this.ownerDocument === document && !this.isPreview\n }\n\n /**\n * Sets the active state of the frame.\n *\n * If inactive, source changes will not be observed.\n */\n get isPreview() {\n return this.ownerDocument?.documentElement?.hasAttribute(\"data-turbo-preview\")\n }\n}\n\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy\n default:\n return FrameLoadingStyle.eager\n }\n}\n\nconst drive = {\n enabled: true,\n progressBarDelay: 500,\n unvisitableExtensions: new Set(\n [\n \".7z\", \".aac\", \".apk\", \".avi\", \".bmp\", \".bz2\", \".css\", \".csv\", \".deb\", \".dmg\", \".doc\",\n \".docx\", \".exe\", \".gif\", \".gz\", \".heic\", \".heif\", \".ico\", \".iso\", \".jpeg\", \".jpg\",\n \".js\", \".json\", \".m4a\", \".mkv\", \".mov\", \".mp3\", \".mp4\", \".mpeg\", \".mpg\", \".msi\",\n \".ogg\", \".ogv\", \".pdf\", \".pkg\", \".png\", \".ppt\", \".pptx\", \".rar\", \".rtf\",\n \".svg\", \".tar\", \".tif\", \".tiff\", \".txt\", \".wav\", \".webm\", \".webp\", \".wma\", \".wmv\",\n \".xls\", \".xlsx\", \".xml\", \".zip\"\n ]\n )\n};\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element\n } else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getCspNonce();\n if (cspNonce) {\n createdScriptElement.nonce = cspNonce;\n }\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement\n }\n}\n\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\n\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content\n}\n\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n composed: true,\n detail\n });\n\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n } else {\n document.documentElement.dispatchEvent(event);\n }\n\n return event\n}\n\nfunction cancelEvent(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n\nfunction nextRepaint() {\n if (document.visibilityState === \"hidden\") {\n return nextEventLoopTick()\n } else {\n return nextAnimationFrame()\n }\n}\n\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()))\n}\n\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0))\n}\n\nfunction nextMicrotask() {\n return Promise.resolve()\n}\n\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\")\n}\n\nfunction unindent(strings, ...values) {\n const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n const match = lines[0].match(/^\\s+/);\n const indent = match ? match[0].length : 0;\n return lines.map((line) => line.slice(indent)).join(\"\\n\")\n}\n\nfunction interpolate(strings, values) {\n return strings.reduce((result, string, i) => {\n const value = values[i] == undefined ? \"\" : values[i];\n return result + string + value\n }, \"\")\n}\n\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\"\n } else if (i == 14) {\n return \"4\"\n } else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16)\n } else {\n return Math.floor(Math.random() * 15).toString(16)\n }\n })\n .join(\"\")\n}\n\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element?.getAttribute(attributeName))) {\n if (typeof value == \"string\") return value\n }\n\n return null\n}\n\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName))\n}\n\nfunction markAsBusy(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\n\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n\n element.removeAttribute(\"aria-busy\");\n }\n}\n\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n return new Promise((resolve) => {\n const onComplete = () => {\n element.removeEventListener(\"error\", onComplete);\n element.removeEventListener(\"load\", onComplete);\n resolve();\n };\n\n element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\n })\n}\n\nfunction getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState\n case \"advance\":\n case \"restore\":\n return history.pushState\n }\n}\n\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\"\n}\n\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n\n return isAction(action) ? action : null\n}\n\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`)\n}\n\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content\n}\n\nfunction getCspNonce() {\n const element = getMetaElement(\"csp-nonce\");\n\n if (element) {\n const { nonce, content } = element;\n return nonce == \"\" ? content : nonce\n }\n}\n\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n\n document.head.appendChild(element);\n }\n\n element.setAttribute(\"content\", content);\n\n return element\n}\n\nfunction findClosestRecursively(element, selector) {\n if (element instanceof Element) {\n return (\n element.closest(selector) || findClosestRecursively(element.assignedSlot || element.getRootNode()?.host, selector)\n )\n }\n}\n\nfunction elementIsFocusable(element) {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n\n return !!element && element.closest(inertDisabledOrHidden) == null && typeof element.focus == \"function\"\n}\n\nfunction queryAutofocusableElement(elementOrDocumentFragment) {\n return Array.from(elementOrDocumentFragment.querySelectorAll(\"[autofocus]\")).find(elementIsFocusable)\n}\n\nasync function around(callback, reader) {\n const before = reader();\n\n callback();\n\n await nextAnimationFrame();\n\n const after = reader();\n\n return [before, after]\n}\n\nfunction doesNotTargetIFrame(name) {\n if (name === \"_blank\") {\n return false\n } else if (name) {\n for (const element of document.getElementsByName(name)) {\n if (element instanceof HTMLIFrameElement) return false\n }\n\n return true\n } else {\n return true\n }\n}\n\nfunction findLinkFromClickTarget(target) {\n return findClosestRecursively(target, \"a[href]:not([target^=_]):not([download])\")\n}\n\nfunction getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\")\n}\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n\n return (...args) => {\n const callback = () => fn.apply(this, args);\n clearTimeout(timeoutId);\n timeoutId = setTimeout(callback, delay);\n }\n}\n\nconst submitter = {\n \"aria-disabled\": {\n beforeSubmit: submitter => {\n submitter.setAttribute(\"aria-disabled\", \"true\");\n submitter.addEventListener(\"click\", cancelEvent);\n },\n\n afterSubmit: submitter => {\n submitter.removeAttribute(\"aria-disabled\");\n submitter.removeEventListener(\"click\", cancelEvent);\n }\n },\n\n \"disabled\": {\n beforeSubmit: submitter => submitter.disabled = true,\n afterSubmit: submitter => submitter.disabled = false\n }\n};\n\nclass Config {\n #submitter = null\n\n constructor(config) {\n Object.assign(this, config);\n }\n\n get submitter() {\n return this.#submitter\n }\n\n set submitter(value) {\n this.#submitter = submitter[value] || value;\n }\n}\n\nconst forms = new Config({\n mode: \"on\",\n submitter: \"disabled\"\n});\n\nconst config = {\n drive,\n forms\n};\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI)\n}\n\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1)\n // eslint-disable-next-line no-cond-assign\n } else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1]\n }\n}\n\nfunction getAction$1(form, submitter) {\n const action = submitter?.getAttribute(\"formaction\") || form.getAttribute(\"action\") || form.action;\n\n return expandURL(action)\n}\n\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\"\n}\n\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix)\n}\n\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && !config.drive.unvisitableExtensions.has(getExtension(location))\n}\n\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href\n}\n\nfunction toCacheKey(url) {\n return getRequestURL(url)\n}\n\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href\n}\n\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1)\n}\n\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0]\n}\n\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname)\n}\n\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\"\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n\n get succeeded() {\n return this.response.ok\n }\n\n get failed() {\n return !this.succeeded\n }\n\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499\n }\n\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599\n }\n\n get redirected() {\n return this.response.redirected\n }\n\n get location() {\n return expandURL(this.response.url)\n }\n\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/)\n }\n\n get statusCode() {\n return this.response.status\n }\n\n get contentType() {\n return this.header(\"Content-Type\")\n }\n\n get responseText() {\n return this.response.clone().text()\n }\n\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text()\n } else {\n return Promise.resolve(undefined)\n }\n }\n\n header(name) {\n return this.response.headers.get(name)\n }\n}\n\nclass LimitedSet extends Set {\n constructor(maxSize) {\n super();\n this.maxSize = maxSize;\n }\n\n add(value) {\n if (this.size >= this.maxSize) {\n const iterator = this.values();\n const oldestValue = iterator.next().value;\n this.delete(oldestValue);\n }\n super.add(value);\n }\n}\n\nconst recentRequests = new LimitedSet(20);\n\nconst nativeFetch = window.fetch;\n\nfunction fetchWithTurboHeaders(url, options = {}) {\n const modifiedHeaders = new Headers(options.headers || {});\n const requestUID = uuid();\n recentRequests.add(requestUID);\n modifiedHeaders.append(\"X-Turbo-Request-Id\", requestUID);\n\n return nativeFetch(url, {\n ...options,\n headers: modifiedHeaders\n })\n}\n\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get\n case \"post\":\n return FetchMethod.post\n case \"put\":\n return FetchMethod.put\n case \"patch\":\n return FetchMethod.patch\n case \"delete\":\n return FetchMethod.delete\n }\n}\n\nconst FetchMethod = {\n get: \"get\",\n post: \"post\",\n put: \"put\",\n patch: \"patch\",\n delete: \"delete\"\n};\n\nfunction fetchEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FetchEnctype.multipart:\n return FetchEnctype.multipart\n case FetchEnctype.plain:\n return FetchEnctype.plain\n default:\n return FetchEnctype.urlEncoded\n }\n}\n\nconst FetchEnctype = {\n urlEncoded: \"application/x-www-form-urlencoded\",\n multipart: \"multipart/form-data\",\n plain: \"text/plain\"\n};\n\nclass FetchRequest {\n abortController = new AbortController()\n #resolveRequestPromise = (_value) => {}\n\n constructor(delegate, method, location, requestBody = new URLSearchParams(), target = null, enctype = FetchEnctype.urlEncoded) {\n const [url, body] = buildResourceAndBody(expandURL(location), method, requestBody, enctype);\n\n this.delegate = delegate;\n this.url = url;\n this.target = target;\n this.fetchOptions = {\n credentials: \"same-origin\",\n redirect: \"follow\",\n method: method.toUpperCase(),\n headers: { ...this.defaultHeaders },\n body: body,\n signal: this.abortSignal,\n referrer: this.delegate.referrer?.href\n };\n this.enctype = enctype;\n }\n\n get method() {\n return this.fetchOptions.method\n }\n\n set method(value) {\n const fetchBody = this.isSafe ? this.url.searchParams : this.fetchOptions.body || new FormData();\n const fetchMethod = fetchMethodFromString(value) || FetchMethod.get;\n\n this.url.search = \"\";\n\n const [url, body] = buildResourceAndBody(this.url, fetchMethod, fetchBody, this.enctype);\n\n this.url = url;\n this.fetchOptions.body = body;\n this.fetchOptions.method = fetchMethod.toUpperCase();\n }\n\n get headers() {\n return this.fetchOptions.headers\n }\n\n set headers(value) {\n this.fetchOptions.headers = value;\n }\n\n get body() {\n if (this.isSafe) {\n return this.url.searchParams\n } else {\n return this.fetchOptions.body\n }\n }\n\n set body(value) {\n this.fetchOptions.body = value;\n }\n\n get location() {\n return this.url\n }\n\n get params() {\n return this.url.searchParams\n }\n\n get entries() {\n return this.body ? Array.from(this.body.entries()) : []\n }\n\n cancel() {\n this.abortController.abort();\n }\n\n async perform() {\n const { fetchOptions } = this;\n this.delegate.prepareRequest(this);\n const event = await this.#allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n\n if (event.detail.fetchRequest) {\n this.response = event.detail.fetchRequest.response;\n } else {\n this.response = fetchWithTurboHeaders(this.url.href, fetchOptions);\n }\n\n const response = await this.response;\n return await this.receive(response)\n } catch (error) {\n if (error.name !== \"AbortError\") {\n if (this.#willDelegateErrorHandling(error)) {\n this.delegate.requestErrored(this, error);\n }\n throw error\n }\n } finally {\n this.delegate.requestFinished(this);\n }\n }\n\n async receive(response) {\n const fetchResponse = new FetchResponse(response);\n const event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: { fetchResponse },\n target: this.target\n });\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n } else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n } else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse\n }\n\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\"\n }\n }\n\n get isSafe() {\n return isSafe(this.method)\n }\n\n get abortSignal() {\n return this.abortController.signal\n }\n\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n }\n\n async #allowRequestToBeIntercepted(fetchOptions) {\n const requestInterception = new Promise((resolve) => (this.#resolveRequestPromise = resolve));\n const event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions,\n url: this.url,\n resume: this.#resolveRequestPromise\n },\n target: this.target\n });\n this.url = event.detail.url;\n if (event.defaultPrevented) await requestInterception;\n\n return event\n }\n\n #willDelegateErrorHandling(error) {\n const event = dispatch(\"turbo:fetch-request-error\", {\n target: this.target,\n cancelable: true,\n detail: { request: this, error: error }\n });\n\n return !event.defaultPrevented\n }\n}\n\nfunction isSafe(fetchMethod) {\n return fetchMethodFromString(fetchMethod) == FetchMethod.get\n}\n\nfunction buildResourceAndBody(resource, method, requestBody, enctype) {\n const searchParams =\n Array.from(requestBody).length > 0 ? new URLSearchParams(entriesExcludingFiles(requestBody)) : resource.searchParams;\n\n if (isSafe(method)) {\n return [mergeIntoURLSearchParams(resource, searchParams), null]\n } else if (enctype == FetchEnctype.urlEncoded) {\n return [resource, searchParams]\n } else {\n return [resource, requestBody]\n }\n}\n\nfunction entriesExcludingFiles(requestBody) {\n const entries = [];\n\n for (const [name, value] of requestBody) {\n if (value instanceof File) continue\n else entries.push([name, value]);\n }\n\n return entries\n}\n\nfunction mergeIntoURLSearchParams(url, requestBody) {\n const searchParams = new URLSearchParams(entriesExcludingFiles(requestBody));\n\n url.search = searchParams.toString();\n\n return url\n}\n\nclass AppearanceObserver {\n started = false\n\n constructor(delegate, element) {\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n\n intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry?.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n }\n}\n\nclass StreamMessage {\n static contentType = \"text/vnd.turbo-stream.html\"\n\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message))\n } else {\n return message\n }\n }\n\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n}\n\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n\n element.replaceWith(streamElement);\n }\n\n return fragment\n}\n\nconst PREFETCH_DELAY = 100;\n\nclass PrefetchCache {\n #prefetchTimeout = null\n #prefetched = null\n\n get(url) {\n if (this.#prefetched && this.#prefetched.url === url && this.#prefetched.expire > Date.now()) {\n return this.#prefetched.request\n }\n }\n\n setLater(url, request, ttl) {\n this.clear();\n\n this.#prefetchTimeout = setTimeout(() => {\n request.perform();\n this.set(url, request, ttl);\n this.#prefetchTimeout = null;\n }, PREFETCH_DELAY);\n }\n\n set(url, request, ttl) {\n this.#prefetched = { url, request, expire: new Date(new Date().getTime() + ttl) };\n }\n\n clear() {\n if (this.#prefetchTimeout) clearTimeout(this.#prefetchTimeout);\n this.#prefetched = null;\n }\n}\n\nconst cacheTtl = 10 * 1000;\nconst prefetchCache = new PrefetchCache();\n\nconst FormSubmissionState = {\n initialized: \"initialized\",\n requesting: \"requesting\",\n waiting: \"waiting\",\n receiving: \"receiving\",\n stopping: \"stopping\",\n stopped: \"stopped\"\n};\n\nclass FormSubmission {\n state = FormSubmissionState.initialized\n\n static confirmMethod(message) {\n return Promise.resolve(confirm(message))\n }\n\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n const method = getMethod(formElement, submitter);\n const action = getAction(getFormAction(formElement, submitter), method);\n const body = buildFormData(formElement, submitter);\n const enctype = getEnctype(formElement, submitter);\n\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.fetchRequest = new FetchRequest(this, method, action, body, formElement, enctype);\n this.mustRedirect = mustRedirect;\n }\n\n get method() {\n return this.fetchRequest.method\n }\n\n set method(value) {\n this.fetchRequest.method = value;\n }\n\n get action() {\n return this.fetchRequest.url.toString()\n }\n\n set action(value) {\n this.fetchRequest.url = expandURL(value);\n }\n\n get body() {\n return this.fetchRequest.body\n }\n\n get enctype() {\n return this.fetchRequest.enctype\n }\n\n get isSafe() {\n return this.fetchRequest.isSafe\n }\n\n get location() {\n return this.fetchRequest.url\n }\n\n // The submission process\n\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n\n if (typeof confirmationMessage === \"string\") {\n const confirmMethod = typeof config.forms.confirm === \"function\" ?\n config.forms.confirm :\n FormSubmission.confirmMethod;\n\n const answer = await confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return\n }\n }\n\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform()\n }\n }\n\n stop() {\n const { stopping, stopped } = FormSubmissionState;\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true\n }\n }\n\n // Fetch request delegate\n\n prepareRequest(request) {\n if (!request.isSafe) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n request.headers[\"X-CSRF-Token\"] = token;\n }\n }\n\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n\n requestStarted(_request) {\n this.state = FormSubmissionState.waiting;\n if (this.submitter) config.forms.submitter.beforeSubmit(this.submitter);\n this.setSubmitsWith();\n markAsBusy(this.formElement);\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this }\n });\n this.delegate.formSubmissionStarted(this);\n }\n\n requestPreventedHandlingResponse(request, response) {\n prefetchCache.clear();\n\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n return\n }\n\n prefetchCache.clear();\n\n if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n const error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n } else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n\n requestFinished(_request) {\n this.state = FormSubmissionState.stopped;\n if (this.submitter) config.forms.submitter.afterSubmit(this.submitter);\n this.resetSubmitterText();\n clearBusyState(this.formElement);\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: { formSubmission: this, ...this.result }\n });\n this.delegate.formSubmissionFinished(this);\n }\n\n // Private\n\n setSubmitsWith() {\n if (!this.submitter || !this.submitsWith) return\n\n if (this.submitter.matches(\"button\")) {\n this.originalSubmitText = this.submitter.innerHTML;\n this.submitter.innerHTML = this.submitsWith;\n } else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n this.originalSubmitText = input.value;\n input.value = this.submitsWith;\n }\n }\n\n resetSubmitterText() {\n if (!this.submitter || !this.originalSubmitText) return\n\n if (this.submitter.matches(\"button\")) {\n this.submitter.innerHTML = this.originalSubmitText;\n } else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n input.value = this.originalSubmitText;\n }\n }\n\n requestMustRedirect(request) {\n return !request.isSafe && this.mustRedirect\n }\n\n requestAcceptsTurboStreamResponse(request) {\n return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement)\n }\n\n get submitsWith() {\n return this.submitter?.getAttribute(\"data-turbo-submits-with\")\n }\n}\n\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter?.getAttribute(\"name\");\n const value = submitter?.getAttribute(\"value\");\n\n if (name) {\n formData.append(name, value || \"\");\n }\n\n return formData\n}\n\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined\n }\n }\n}\n\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected\n}\n\nfunction getFormAction(formElement, submitter) {\n const formElementAction = typeof formElement.action === \"string\" ? formElement.action : null;\n\n if (submitter?.hasAttribute(\"formaction\")) {\n return submitter.getAttribute(\"formaction\") || \"\"\n } else {\n return formElement.getAttribute(\"action\") || formElementAction || \"\"\n }\n}\n\nfunction getAction(formAction, fetchMethod) {\n const action = expandURL(formAction);\n\n if (isSafe(fetchMethod)) {\n action.search = \"\";\n }\n\n return action\n}\n\nfunction getMethod(formElement, submitter) {\n const method = submitter?.getAttribute(\"formmethod\") || formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get\n}\n\nfunction getEnctype(formElement, submitter) {\n return fetchEnctypeFromString(submitter?.getAttribute(\"formenctype\") || formElement.enctype)\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n\n get activeElement() {\n return this.element.ownerDocument.activeElement\n }\n\n get children() {\n return [...this.element.children]\n }\n\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null\n }\n\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null\n }\n\n get isConnected() {\n return this.element.isConnected\n }\n\n get firstAutofocusableElement() {\n return queryAutofocusableElement(this.element)\n }\n\n get permanentElements() {\n return queryPermanentElementsAll(this.element)\n }\n\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id)\n }\n\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\n\n for (const currentPermanentElement of this.permanentElements) {\n const { id } = currentPermanentElement;\n const newPermanentElement = snapshot.getPermanentElementById(id);\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n\n return permanentElementMap\n }\n}\n\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`)\n}\n\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\")\n}\n\nclass FormSubmitObserver {\n started = false\n\n constructor(delegate, eventTarget) {\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n\n submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n }\n\n submitBubbled = (event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n\n if (\n form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)\n ) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n }\n}\n\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = submitter?.getAttribute(\"formmethod\") || form.getAttribute(\"method\");\n\n return method != \"dialog\"\n}\n\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n const target = submitter?.getAttribute(\"formtarget\") || form.getAttribute(\"target\");\n\n return doesNotTargetIFrame(target)\n}\n\nclass View {\n #resolveRenderPromise = (_value) => {}\n #resolveInterceptionPromise = (_value) => {}\n\n constructor(delegate, element) {\n this.delegate = delegate;\n this.element = element;\n }\n\n // Scrolling\n\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n } else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n\n scrollToElement(element) {\n element.scrollIntoView();\n }\n\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n } else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n\n get scrollRoot() {\n return window\n }\n\n // Rendering\n\n async render(renderer) {\n const { isPreview, shouldRender, willRender, newSnapshot: snapshot } = renderer;\n\n // A workaround to ignore tracked element mismatch reloads when performing\n // a promoted Visit from a frame navigation\n const shouldInvalidate = willRender;\n\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.#resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n\n const renderInterception = new Promise((resolve) => (this.#resolveInterceptionPromise = resolve));\n const options = { resume: this.#resolveInterceptionPromise, render: this.renderer.renderElement, renderMethod: this.renderer.renderMethod };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender) await renderInterception;\n\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview, this.renderer.renderMethod);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n } finally {\n delete this.renderer;\n this.#resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n } else if (shouldInvalidate) {\n this.invalidate(renderer.reloadReason);\n }\n }\n\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n } else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n\n markVisitDirection(direction) {\n this.element.setAttribute(\"data-turbo-visit-direction\", direction);\n }\n\n unmarkVisitDirection() {\n this.element.removeAttribute(\"data-turbo-visit-direction\");\n }\n\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n missing() {\n this.element.innerHTML = `Content missing`;\n }\n\n get snapshot() {\n return new Snapshot(this.element)\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.element = element;\n }\n\n start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n\n stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n\n clickBubbled = (event) => {\n if (this.clickEventIsSignificant(event)) {\n this.clickEvent = event;\n } else {\n delete this.clickEvent;\n }\n }\n\n linkClicked = (event) => {\n if (this.clickEvent && this.clickEventIsSignificant(event)) {\n if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n this.clickEvent.preventDefault();\n event.preventDefault();\n this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n }\n }\n delete this.clickEvent;\n }\n\n willVisit = (_event) => {\n delete this.clickEvent;\n }\n\n clickEventIsSignificant(event) {\n const target = event.composed ? event.target?.parentElement : event.target;\n const element = findLinkFromClickTarget(target) || target;\n\n return element instanceof Element && element.closest(\"turbo-frame, html\") == this.element\n }\n}\n\nclass LinkClickObserver {\n started = false\n\n constructor(delegate, eventTarget) {\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n\n clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n }\n\n clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link.target)) {\n const location = getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n }\n\n clickEventIsSignificant(event) {\n return !(\n (event.target && event.target.isContentEditable) ||\n event.defaultPrevented ||\n event.which > 1 ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n )\n }\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n\n start() {\n this.linkInterceptor.start();\n }\n\n stop() {\n this.linkInterceptor.stop();\n }\n\n // Link hover observer delegate\n\n canPrefetchRequestToLocation(link, location) {\n return false\n }\n\n prefetchAndCacheRequestToLocation(link, location) {\n return\n }\n\n // Link click observer delegate\n\n willFollowLinkToLocation(link, location, originalEvent) {\n return (\n this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n (link.hasAttribute(\"data-turbo-method\") || link.hasAttribute(\"data-turbo-stream\"))\n )\n }\n\n followedLinkToLocation(link, location) {\n const form = document.createElement(\"form\");\n\n const type = \"hidden\";\n for (const [name, value] of location.searchParams) {\n form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n }\n\n const action = Object.assign(location, { search: \"\" });\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action.href);\n form.setAttribute(\"hidden\", \"\");\n\n const method = link.getAttribute(\"data-turbo-method\");\n if (method) form.setAttribute(\"method\", method);\n\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame) form.setAttribute(\"data-turbo-frame\", turboFrame);\n\n const turboAction = getVisitAction(link);\n if (turboAction) form.setAttribute(\"data-turbo-action\", turboAction);\n\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm) form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream) form.setAttribute(\"data-turbo-stream\", \"\");\n\n this.delegate.submittedFormLinkToLocation(link, location, form);\n\n document.body.appendChild(form);\n form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n requestAnimationFrame(() => form.requestSubmit());\n }\n}\n\nclass Bardo {\n static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n await callback();\n bardo.leave();\n }\n\n constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n\n enter() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n\n leave() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement] = this.permanentElementMap[id];\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n this.delegate.leavingBardo(currentPermanentElement);\n }\n }\n\n replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder?.replaceWith(permanentElement);\n }\n\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id)\n }\n\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")]\n }\n}\n\nfunction createPlaceholderForPermanentElement(permanentElement) {\n const element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element\n}\n\nclass Renderer {\n #activeElement = null\n\n static renderElement(currentElement, newElement) {\n // Abstract method\n }\n\n constructor(currentSnapshot, newSnapshot, isPreview, willRender = true) {\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = this.constructor.renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n\n get shouldRender() {\n return true\n }\n\n get shouldAutofocus() {\n return true\n }\n\n get reloadReason() {\n return\n }\n\n prepareToRender() {\n return\n }\n\n render() {\n // Abstract method\n }\n\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n\n async preservingPermanentElements(callback) {\n await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n\n focusFirstAutofocusableElement() {\n if (this.shouldAutofocus) {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (element) {\n element.focus();\n }\n }\n }\n\n // Bardo delegate\n\n enteringBardo(currentPermanentElement) {\n if (this.#activeElement) return\n\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.#activeElement = this.currentSnapshot.activeElement;\n }\n }\n\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.#activeElement) && this.#activeElement instanceof HTMLElement) {\n this.#activeElement.focus();\n\n this.#activeElement = null;\n }\n }\n\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot\n }\n\n get currentElement() {\n return this.currentSnapshot.element\n }\n\n get newElement() {\n return this.newSnapshot.element\n }\n\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot)\n }\n\n get renderMethod() {\n return \"replace\"\n }\n}\n\nclass FrameRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n\n const frameElement = newElement;\n const sourceRange = frameElement.ownerDocument?.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n\n get shouldRender() {\n return true\n }\n\n async render() {\n await nextRepaint();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextRepaint();\n this.focusFirstAutofocusableElement();\n await nextRepaint();\n this.activateScriptElements();\n }\n\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\n }\n\n scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n const element = this.currentElement.firstElementChild;\n const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n\n if (element) {\n element.scrollIntoView({ block, behavior });\n return true\n }\n }\n return false\n }\n\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\")\n }\n}\n\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value\n } else {\n return defaultValue\n }\n}\n\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value\n } else {\n return defaultValue\n }\n}\n\n/**\n * @typedef {object} ConfigHead\n *\n * @property {'merge' | 'append' | 'morph' | 'none'} [style]\n * @property {boolean} [block]\n * @property {boolean} [ignore]\n * @property {function(Element): boolean} [shouldPreserve]\n * @property {function(Element): boolean} [shouldReAppend]\n * @property {function(Element): boolean} [shouldRemove]\n * @property {function(Element, {added: Node[], kept: Element[], removed: Element[]}): void} [afterHeadMorphed]\n */\n\n/**\n * @typedef {object} ConfigCallbacks\n *\n * @property {function(Node): boolean} [beforeNodeAdded]\n * @property {function(Node): void} [afterNodeAdded]\n * @property {function(Element, Node): boolean} [beforeNodeMorphed]\n * @property {function(Element, Node): void} [afterNodeMorphed]\n * @property {function(Element): boolean} [beforeNodeRemoved]\n * @property {function(Element): void} [afterNodeRemoved]\n * @property {function(string, Element, \"update\" | \"remove\"): boolean} [beforeAttributeUpdated]\n */\n\n/**\n * @typedef {object} Config\n *\n * @property {'outerHTML' | 'innerHTML'} [morphStyle]\n * @property {boolean} [ignoreActive]\n * @property {boolean} [ignoreActiveValue]\n * @property {boolean} [restoreFocus]\n * @property {ConfigCallbacks} [callbacks]\n * @property {ConfigHead} [head]\n */\n\n/**\n * @typedef {function} NoOp\n *\n * @returns {void}\n */\n\n/**\n * @typedef {object} ConfigHeadInternal\n *\n * @property {'merge' | 'append' | 'morph' | 'none'} style\n * @property {boolean} [block]\n * @property {boolean} [ignore]\n * @property {(function(Element): boolean) | NoOp} shouldPreserve\n * @property {(function(Element): boolean) | NoOp} shouldReAppend\n * @property {(function(Element): boolean) | NoOp} shouldRemove\n * @property {(function(Element, {added: Node[], kept: Element[], removed: Element[]}): void) | NoOp} afterHeadMorphed\n */\n\n/**\n * @typedef {object} ConfigCallbacksInternal\n *\n * @property {(function(Node): boolean) | NoOp} beforeNodeAdded\n * @property {(function(Node): void) | NoOp} afterNodeAdded\n * @property {(function(Node, Node): boolean) | NoOp} beforeNodeMorphed\n * @property {(function(Node, Node): void) | NoOp} afterNodeMorphed\n * @property {(function(Node): boolean) | NoOp} beforeNodeRemoved\n * @property {(function(Node): void) | NoOp} afterNodeRemoved\n * @property {(function(string, Element, \"update\" | \"remove\"): boolean) | NoOp} beforeAttributeUpdated\n */\n\n/**\n * @typedef {object} ConfigInternal\n *\n * @property {'outerHTML' | 'innerHTML'} morphStyle\n * @property {boolean} [ignoreActive]\n * @property {boolean} [ignoreActiveValue]\n * @property {boolean} [restoreFocus]\n * @property {ConfigCallbacksInternal} callbacks\n * @property {ConfigHeadInternal} head\n */\n\n/**\n * @typedef {Object} IdSets\n * @property {Set} persistentIds\n * @property {Map>} idMap\n */\n\n/**\n * @typedef {Function} Morph\n *\n * @param {Element | Document} oldNode\n * @param {Element | Node | HTMLCollection | Node[] | string | null} newContent\n * @param {Config} [config]\n * @returns {undefined | Node[]}\n */\n\n// base IIFE to define idiomorph\n/**\n *\n * @type {{defaults: ConfigInternal, morph: Morph}}\n */\nvar Idiomorph = (function () {\n\n /**\n * @typedef {object} MorphContext\n *\n * @property {Element} target\n * @property {Element} newContent\n * @property {ConfigInternal} config\n * @property {ConfigInternal['morphStyle']} morphStyle\n * @property {ConfigInternal['ignoreActive']} ignoreActive\n * @property {ConfigInternal['ignoreActiveValue']} ignoreActiveValue\n * @property {ConfigInternal['restoreFocus']} restoreFocus\n * @property {Map>} idMap\n * @property {Set} persistentIds\n * @property {ConfigInternal['callbacks']} callbacks\n * @property {ConfigInternal['head']} head\n * @property {HTMLDivElement} pantry\n */\n\n //=============================================================================\n // AND NOW IT BEGINS...\n //=============================================================================\n\n const noOp = () => {};\n /**\n * Default configuration values, updatable by users now\n * @type {ConfigInternal}\n */\n const defaults = {\n morphStyle: \"outerHTML\",\n callbacks: {\n beforeNodeAdded: noOp,\n afterNodeAdded: noOp,\n beforeNodeMorphed: noOp,\n afterNodeMorphed: noOp,\n beforeNodeRemoved: noOp,\n afterNodeRemoved: noOp,\n beforeAttributeUpdated: noOp,\n },\n head: {\n style: \"merge\",\n shouldPreserve: (elt) => elt.getAttribute(\"im-preserve\") === \"true\",\n shouldReAppend: (elt) => elt.getAttribute(\"im-re-append\") === \"true\",\n shouldRemove: noOp,\n afterHeadMorphed: noOp,\n },\n restoreFocus: true,\n };\n\n /**\n * Core idiomorph function for morphing one DOM tree to another\n *\n * @param {Element | Document} oldNode\n * @param {Element | Node | HTMLCollection | Node[] | string | null} newContent\n * @param {Config} [config]\n * @returns {Promise | Node[]}\n */\n function morph(oldNode, newContent, config = {}) {\n oldNode = normalizeElement(oldNode);\n const newNode = normalizeParent(newContent);\n const ctx = createMorphContext(oldNode, newNode, config);\n\n const morphedNodes = saveAndRestoreFocus(ctx, () => {\n return withHeadBlocking(\n ctx,\n oldNode,\n newNode,\n /** @param {MorphContext} ctx */ (ctx) => {\n if (ctx.morphStyle === \"innerHTML\") {\n morphChildren(ctx, oldNode, newNode);\n return Array.from(oldNode.childNodes);\n } else {\n return morphOuterHTML(ctx, oldNode, newNode);\n }\n },\n );\n });\n\n ctx.pantry.remove();\n return morphedNodes;\n }\n\n /**\n * Morph just the outerHTML of the oldNode to the newContent\n * We have to be careful because the oldNode could have siblings which need to be untouched\n * @param {MorphContext} ctx\n * @param {Element} oldNode\n * @param {Element} newNode\n * @returns {Node[]}\n */\n function morphOuterHTML(ctx, oldNode, newNode) {\n const oldParent = normalizeParent(oldNode);\n\n // basis for calulating which nodes were morphed\n // since there may be unmorphed sibling nodes\n let childNodes = Array.from(oldParent.childNodes);\n const index = childNodes.indexOf(oldNode);\n // how many elements are to the right of the oldNode\n const rightMargin = childNodes.length - (index + 1);\n\n morphChildren(\n ctx,\n oldParent,\n newNode,\n // these two optional params are the secret sauce\n oldNode, // start point for iteration\n oldNode.nextSibling, // end point for iteration\n );\n\n // return just the morphed nodes\n childNodes = Array.from(oldParent.childNodes);\n return childNodes.slice(index, childNodes.length - rightMargin);\n }\n\n /**\n * @param {MorphContext} ctx\n * @param {Function} fn\n * @returns {Promise | Node[]}\n */\n function saveAndRestoreFocus(ctx, fn) {\n if (!ctx.config.restoreFocus) return fn();\n let activeElement =\n /** @type {HTMLInputElement|HTMLTextAreaElement|null} */ (\n document.activeElement\n );\n\n // don't bother if the active element is not an input or textarea\n if (\n !(\n activeElement instanceof HTMLInputElement ||\n activeElement instanceof HTMLTextAreaElement\n )\n ) {\n return fn();\n }\n\n const { id: activeElementId, selectionStart, selectionEnd } = activeElement;\n\n const results = fn();\n\n if (activeElementId && activeElementId !== document.activeElement?.id) {\n activeElement = ctx.target.querySelector(`#${activeElementId}`);\n activeElement?.focus();\n }\n if (activeElement && !activeElement.selectionEnd && selectionEnd) {\n activeElement.setSelectionRange(selectionStart, selectionEnd);\n }\n\n return results;\n }\n\n const morphChildren = (function () {\n /**\n * This is the core algorithm for matching up children. The idea is to use id sets to try to match up\n * nodes as faithfully as possible. We greedily match, which allows us to keep the algorithm fast, but\n * by using id sets, we are able to better match up with content deeper in the DOM.\n *\n * Basic algorithm:\n * - for each node in the new content:\n * - search self and siblings for an id set match, falling back to a soft match\n * - if match found\n * - remove any nodes up to the match:\n * - pantry persistent nodes\n * - delete the rest\n * - morph the match\n * - elsif no match found, and node is persistent\n * - find its match by querying the old root (future) and pantry (past)\n * - move it and its children here\n * - morph it\n * - else\n * - create a new node from scratch as a last result\n *\n * @param {MorphContext} ctx the merge context\n * @param {Element} oldParent the old content that we are merging the new content into\n * @param {Element} newParent the parent element of the new content\n * @param {Node|null} [insertionPoint] the point in the DOM we start morphing at (defaults to first child)\n * @param {Node|null} [endPoint] the point in the DOM we stop morphing at (defaults to after last child)\n */\n function morphChildren(\n ctx,\n oldParent,\n newParent,\n insertionPoint = null,\n endPoint = null,\n ) {\n // normalize\n if (\n oldParent instanceof HTMLTemplateElement &&\n newParent instanceof HTMLTemplateElement\n ) {\n // @ts-ignore we can pretend the DocumentFragment is an Element\n oldParent = oldParent.content;\n // @ts-ignore ditto\n newParent = newParent.content;\n }\n insertionPoint ||= oldParent.firstChild;\n\n // run through all the new content\n for (const newChild of newParent.childNodes) {\n // once we reach the end of the old parent content skip to the end and insert the rest\n if (insertionPoint && insertionPoint != endPoint) {\n const bestMatch = findBestMatch(\n ctx,\n newChild,\n insertionPoint,\n endPoint,\n );\n if (bestMatch) {\n // if the node to morph is not at the insertion point then remove/move up to it\n if (bestMatch !== insertionPoint) {\n removeNodesBetween(ctx, insertionPoint, bestMatch);\n }\n morphNode(bestMatch, newChild, ctx);\n insertionPoint = bestMatch.nextSibling;\n continue;\n }\n }\n\n // if the matching node is elsewhere in the original content\n if (newChild instanceof Element && ctx.persistentIds.has(newChild.id)) {\n // move it and all its children here and morph\n const movedChild = moveBeforeById(\n oldParent,\n newChild.id,\n insertionPoint,\n ctx,\n );\n morphNode(movedChild, newChild, ctx);\n insertionPoint = movedChild.nextSibling;\n continue;\n }\n\n // last resort: insert the new node from scratch\n const insertedNode = createNode(\n oldParent,\n newChild,\n insertionPoint,\n ctx,\n );\n // could be null if beforeNodeAdded prevented insertion\n if (insertedNode) {\n insertionPoint = insertedNode.nextSibling;\n }\n }\n\n // remove any remaining old nodes that didn't match up with new content\n while (insertionPoint && insertionPoint != endPoint) {\n const tempNode = insertionPoint;\n insertionPoint = insertionPoint.nextSibling;\n removeNode(ctx, tempNode);\n }\n }\n\n /**\n * This performs the action of inserting a new node while handling situations where the node contains\n * elements with persistent ids and possible state info we can still preserve by moving in and then morphing\n *\n * @param {Element} oldParent\n * @param {Node} newChild\n * @param {Node|null} insertionPoint\n * @param {MorphContext} ctx\n * @returns {Node|null}\n */\n function createNode(oldParent, newChild, insertionPoint, ctx) {\n if (ctx.callbacks.beforeNodeAdded(newChild) === false) return null;\n if (ctx.idMap.has(newChild)) {\n // node has children with ids with possible state so create a dummy elt of same type and apply full morph algorithm\n const newEmptyChild = document.createElement(\n /** @type {Element} */ (newChild).tagName,\n );\n oldParent.insertBefore(newEmptyChild, insertionPoint);\n morphNode(newEmptyChild, newChild, ctx);\n ctx.callbacks.afterNodeAdded(newEmptyChild);\n return newEmptyChild;\n } else {\n // optimisation: no id state to preserve so we can just insert a clone of the newChild and its descendants\n const newClonedChild = document.importNode(newChild, true); // importNode to not mutate newParent\n oldParent.insertBefore(newClonedChild, insertionPoint);\n ctx.callbacks.afterNodeAdded(newClonedChild);\n return newClonedChild;\n }\n }\n\n //=============================================================================\n // Matching Functions\n //=============================================================================\n const findBestMatch = (function () {\n /**\n * Scans forward from the startPoint to the endPoint looking for a match\n * for the node. It looks for an id set match first, then a soft match.\n * We abort softmatching if we find two future soft matches, to reduce churn.\n * @param {Node} node\n * @param {MorphContext} ctx\n * @param {Node | null} startPoint\n * @param {Node | null} endPoint\n * @returns {Node | null}\n */\n function findBestMatch(ctx, node, startPoint, endPoint) {\n let softMatch = null;\n let nextSibling = node.nextSibling;\n let siblingSoftMatchCount = 0;\n\n let cursor = startPoint;\n while (cursor && cursor != endPoint) {\n // soft matching is a prerequisite for id set matching\n if (isSoftMatch(cursor, node)) {\n if (isIdSetMatch(ctx, cursor, node)) {\n return cursor; // found an id set match, we're done!\n }\n\n // we haven't yet saved a soft match fallback\n if (softMatch === null) {\n // the current soft match will hard match something else in the future, leave it\n if (!ctx.idMap.has(cursor)) {\n // save this as the fallback if we get through the loop without finding a hard match\n softMatch = cursor;\n }\n }\n }\n if (\n softMatch === null &&\n nextSibling &&\n isSoftMatch(cursor, nextSibling)\n ) {\n // The next new node has a soft match with this node, so\n // increment the count of future soft matches\n siblingSoftMatchCount++;\n nextSibling = nextSibling.nextSibling;\n\n // If there are two future soft matches, block soft matching for this node to allow\n // future siblings to soft match. This is to reduce churn in the DOM when an element\n // is prepended.\n if (siblingSoftMatchCount >= 2) {\n softMatch = undefined;\n }\n }\n\n // if the current node contains active element, stop looking for better future matches,\n // because if one is found, this node will be moved to the pantry, reparenting it and thus losing focus\n if (cursor.contains(document.activeElement)) break;\n\n cursor = cursor.nextSibling;\n }\n\n return softMatch || null;\n }\n\n /**\n *\n * @param {MorphContext} ctx\n * @param {Node} oldNode\n * @param {Node} newNode\n * @returns {boolean}\n */\n function isIdSetMatch(ctx, oldNode, newNode) {\n let oldSet = ctx.idMap.get(oldNode);\n let newSet = ctx.idMap.get(newNode);\n\n if (!newSet || !oldSet) return false;\n\n for (const id of oldSet) {\n // a potential match is an id in the new and old nodes that\n // has not already been merged into the DOM\n // But the newNode content we call this on has not been\n // merged yet and we don't allow duplicate IDs so it is simple\n if (newSet.has(id)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n *\n * @param {Node} oldNode\n * @param {Node} newNode\n * @returns {boolean}\n */\n function isSoftMatch(oldNode, newNode) {\n // ok to cast: if one is not element, `id` and `tagName` will be undefined and we'll just compare that.\n const oldElt = /** @type {Element} */ (oldNode);\n const newElt = /** @type {Element} */ (newNode);\n\n return (\n oldElt.nodeType === newElt.nodeType &&\n oldElt.tagName === newElt.tagName &&\n // If oldElt has an `id` with possible state and it doesn't match newElt.id then avoid morphing.\n // We'll still match an anonymous node with an IDed newElt, though, because if it got this far,\n // its not persistent, and new nodes can't have any hidden state.\n (!oldElt.id || oldElt.id === newElt.id)\n );\n }\n\n return findBestMatch;\n })();\n\n //=============================================================================\n // DOM Manipulation Functions\n //=============================================================================\n\n /**\n * Gets rid of an unwanted DOM node; strategy depends on nature of its reuse:\n * - Persistent nodes will be moved to the pantry for later reuse\n * - Other nodes will have their hooks called, and then are removed\n * @param {MorphContext} ctx\n * @param {Node} node\n */\n function removeNode(ctx, node) {\n // are we going to id set match this later?\n if (ctx.idMap.has(node)) {\n // skip callbacks and move to pantry\n moveBefore(ctx.pantry, node, null);\n } else {\n // remove for realsies\n if (ctx.callbacks.beforeNodeRemoved(node) === false) return;\n node.parentNode?.removeChild(node);\n ctx.callbacks.afterNodeRemoved(node);\n }\n }\n\n /**\n * Remove nodes between the start and end nodes\n * @param {MorphContext} ctx\n * @param {Node} startInclusive\n * @param {Node} endExclusive\n * @returns {Node|null}\n */\n function removeNodesBetween(ctx, startInclusive, endExclusive) {\n /** @type {Node | null} */\n let cursor = startInclusive;\n // remove nodes until the endExclusive node\n while (cursor && cursor !== endExclusive) {\n let tempNode = /** @type {Node} */ (cursor);\n cursor = cursor.nextSibling;\n removeNode(ctx, tempNode);\n }\n return cursor;\n }\n\n /**\n * Search for an element by id within the document and pantry, and move it using moveBefore.\n *\n * @param {Element} parentNode - The parent node to which the element will be moved.\n * @param {string} id - The ID of the element to be moved.\n * @param {Node | null} after - The reference node to insert the element before.\n * If `null`, the element is appended as the last child.\n * @param {MorphContext} ctx\n * @returns {Element} The found element\n */\n function moveBeforeById(parentNode, id, after, ctx) {\n const target =\n /** @type {Element} - will always be found */\n (\n ctx.target.querySelector(`#${id}`) ||\n ctx.pantry.querySelector(`#${id}`)\n );\n removeElementFromAncestorsIdMaps(target, ctx);\n moveBefore(parentNode, target, after);\n return target;\n }\n\n /**\n * Removes an element from its ancestors' id maps. This is needed when an element is moved from the\n * \"future\" via `moveBeforeId`. Otherwise, its erstwhile ancestors could be mistakenly moved to the\n * pantry rather than being deleted, preventing their removal hooks from being called.\n *\n * @param {Element} element - element to remove from its ancestors' id maps\n * @param {MorphContext} ctx\n */\n function removeElementFromAncestorsIdMaps(element, ctx) {\n const id = element.id;\n /** @ts-ignore - safe to loop in this way **/\n while ((element = element.parentNode)) {\n let idSet = ctx.idMap.get(element);\n if (idSet) {\n idSet.delete(id);\n if (!idSet.size) {\n ctx.idMap.delete(element);\n }\n }\n }\n }\n\n /**\n * Moves an element before another element within the same parent.\n * Uses the proposed `moveBefore` API if available (and working), otherwise falls back to `insertBefore`.\n * This is essentialy a forward-compat wrapper.\n *\n * @param {Element} parentNode - The parent node containing the after element.\n * @param {Node} element - The element to be moved.\n * @param {Node | null} after - The reference node to insert `element` before.\n * If `null`, `element` is appended as the last child.\n */\n function moveBefore(parentNode, element, after) {\n // @ts-ignore - use proposed moveBefore feature\n if (parentNode.moveBefore) {\n try {\n // @ts-ignore - use proposed moveBefore feature\n parentNode.moveBefore(element, after);\n } catch (e) {\n // fall back to insertBefore as some browsers may fail on moveBefore when trying to move Dom disconnected nodes to pantry\n parentNode.insertBefore(element, after);\n }\n } else {\n parentNode.insertBefore(element, after);\n }\n }\n\n return morphChildren;\n })();\n\n //=============================================================================\n // Single Node Morphing Code\n //=============================================================================\n const morphNode = (function () {\n /**\n * @param {Node} oldNode root node to merge content into\n * @param {Node} newContent new content to merge\n * @param {MorphContext} ctx the merge context\n * @returns {Node | null} the element that ended up in the DOM\n */\n function morphNode(oldNode, newContent, ctx) {\n if (ctx.ignoreActive && oldNode === document.activeElement) {\n // don't morph focused element\n return null;\n }\n\n if (ctx.callbacks.beforeNodeMorphed(oldNode, newContent) === false) {\n return oldNode;\n }\n\n if (oldNode instanceof HTMLHeadElement && ctx.head.ignore) ; else if (\n oldNode instanceof HTMLHeadElement &&\n ctx.head.style !== \"morph\"\n ) {\n // ok to cast: if newContent wasn't also a , it would've got caught in the `!isSoftMatch` branch above\n handleHeadElement(\n oldNode,\n /** @type {HTMLHeadElement} */ (newContent),\n ctx,\n );\n } else {\n morphAttributes(oldNode, newContent, ctx);\n if (!ignoreValueOfActiveElement(oldNode, ctx)) {\n // @ts-ignore newContent can be a node here because .firstChild will be null\n morphChildren(ctx, oldNode, newContent);\n }\n }\n ctx.callbacks.afterNodeMorphed(oldNode, newContent);\n return oldNode;\n }\n\n /**\n * syncs the oldNode to the newNode, copying over all attributes and\n * inner element state from the newNode to the oldNode\n *\n * @param {Node} oldNode the node to copy attributes & state to\n * @param {Node} newNode the node to copy attributes & state from\n * @param {MorphContext} ctx the merge context\n */\n function morphAttributes(oldNode, newNode, ctx) {\n let type = newNode.nodeType;\n\n // if is an element type, sync the attributes from the\n // new node into the new node\n if (type === 1 /* element type */) {\n const oldElt = /** @type {Element} */ (oldNode);\n const newElt = /** @type {Element} */ (newNode);\n\n const oldAttributes = oldElt.attributes;\n const newAttributes = newElt.attributes;\n for (const newAttribute of newAttributes) {\n if (ignoreAttribute(newAttribute.name, oldElt, \"update\", ctx)) {\n continue;\n }\n if (oldElt.getAttribute(newAttribute.name) !== newAttribute.value) {\n oldElt.setAttribute(newAttribute.name, newAttribute.value);\n }\n }\n // iterate backwards to avoid skipping over items when a delete occurs\n for (let i = oldAttributes.length - 1; 0 <= i; i--) {\n const oldAttribute = oldAttributes[i];\n\n // toAttributes is a live NamedNodeMap, so iteration+mutation is unsafe\n // e.g. custom element attribute callbacks can remove other attributes\n if (!oldAttribute) continue;\n\n if (!newElt.hasAttribute(oldAttribute.name)) {\n if (ignoreAttribute(oldAttribute.name, oldElt, \"remove\", ctx)) {\n continue;\n }\n oldElt.removeAttribute(oldAttribute.name);\n }\n }\n\n if (!ignoreValueOfActiveElement(oldElt, ctx)) {\n syncInputValue(oldElt, newElt, ctx);\n }\n }\n\n // sync text nodes\n if (type === 8 /* comment */ || type === 3 /* text */) {\n if (oldNode.nodeValue !== newNode.nodeValue) {\n oldNode.nodeValue = newNode.nodeValue;\n }\n }\n }\n\n /**\n * NB: many bothans died to bring us information:\n *\n * https://github.com/patrick-steele-idem/morphdom/blob/master/src/specialElHandlers.js\n * https://github.com/choojs/nanomorph/blob/master/lib/morph.jsL113\n *\n * @param {Element} oldElement the element to sync the input value to\n * @param {Element} newElement the element to sync the input value from\n * @param {MorphContext} ctx the merge context\n */\n function syncInputValue(oldElement, newElement, ctx) {\n if (\n oldElement instanceof HTMLInputElement &&\n newElement instanceof HTMLInputElement &&\n newElement.type !== \"file\"\n ) {\n let newValue = newElement.value;\n let oldValue = oldElement.value;\n\n // sync boolean attributes\n syncBooleanAttribute(oldElement, newElement, \"checked\", ctx);\n syncBooleanAttribute(oldElement, newElement, \"disabled\", ctx);\n\n if (!newElement.hasAttribute(\"value\")) {\n if (!ignoreAttribute(\"value\", oldElement, \"remove\", ctx)) {\n oldElement.value = \"\";\n oldElement.removeAttribute(\"value\");\n }\n } else if (oldValue !== newValue) {\n if (!ignoreAttribute(\"value\", oldElement, \"update\", ctx)) {\n oldElement.setAttribute(\"value\", newValue);\n oldElement.value = newValue;\n }\n }\n // TODO: QUESTION(1cg): this used to only check `newElement` unlike the other branches -- why?\n // did I break something?\n } else if (\n oldElement instanceof HTMLOptionElement &&\n newElement instanceof HTMLOptionElement\n ) {\n syncBooleanAttribute(oldElement, newElement, \"selected\", ctx);\n } else if (\n oldElement instanceof HTMLTextAreaElement &&\n newElement instanceof HTMLTextAreaElement\n ) {\n let newValue = newElement.value;\n let oldValue = oldElement.value;\n if (ignoreAttribute(\"value\", oldElement, \"update\", ctx)) {\n return;\n }\n if (newValue !== oldValue) {\n oldElement.value = newValue;\n }\n if (\n oldElement.firstChild &&\n oldElement.firstChild.nodeValue !== newValue\n ) {\n oldElement.firstChild.nodeValue = newValue;\n }\n }\n }\n\n /**\n * @param {Element} oldElement element to write the value to\n * @param {Element} newElement element to read the value from\n * @param {string} attributeName the attribute name\n * @param {MorphContext} ctx the merge context\n */\n function syncBooleanAttribute(oldElement, newElement, attributeName, ctx) {\n // @ts-ignore this function is only used on boolean attrs that are reflected as dom properties\n const newLiveValue = newElement[attributeName],\n // @ts-ignore ditto\n oldLiveValue = oldElement[attributeName];\n if (newLiveValue !== oldLiveValue) {\n const ignoreUpdate = ignoreAttribute(\n attributeName,\n oldElement,\n \"update\",\n ctx,\n );\n if (!ignoreUpdate) {\n // update attribute's associated DOM property\n // @ts-ignore this function is only used on boolean attrs that are reflected as dom properties\n oldElement[attributeName] = newElement[attributeName];\n }\n if (newLiveValue) {\n if (!ignoreUpdate) {\n // https://developer.mozilla.org/en-US/docs/Glossary/Boolean/HTML\n // this is the correct way to set a boolean attribute to \"true\"\n oldElement.setAttribute(attributeName, \"\");\n }\n } else {\n if (!ignoreAttribute(attributeName, oldElement, \"remove\", ctx)) {\n oldElement.removeAttribute(attributeName);\n }\n }\n }\n }\n\n /**\n * @param {string} attr the attribute to be mutated\n * @param {Element} element the element that is going to be updated\n * @param {\"update\" | \"remove\"} updateType\n * @param {MorphContext} ctx the merge context\n * @returns {boolean} true if the attribute should be ignored, false otherwise\n */\n function ignoreAttribute(attr, element, updateType, ctx) {\n if (\n attr === \"value\" &&\n ctx.ignoreActiveValue &&\n element === document.activeElement\n ) {\n return true;\n }\n return (\n ctx.callbacks.beforeAttributeUpdated(attr, element, updateType) ===\n false\n );\n }\n\n /**\n * @param {Node} possibleActiveElement\n * @param {MorphContext} ctx\n * @returns {boolean}\n */\n function ignoreValueOfActiveElement(possibleActiveElement, ctx) {\n return (\n !!ctx.ignoreActiveValue &&\n possibleActiveElement === document.activeElement &&\n possibleActiveElement !== document.body\n );\n }\n\n return morphNode;\n })();\n\n //=============================================================================\n // Head Management Functions\n //=============================================================================\n /**\n * @param {MorphContext} ctx\n * @param {Element} oldNode\n * @param {Element} newNode\n * @param {function} callback\n * @returns {Node[] | Promise}\n */\n function withHeadBlocking(ctx, oldNode, newNode, callback) {\n if (ctx.head.block) {\n const oldHead = oldNode.querySelector(\"head\");\n const newHead = newNode.querySelector(\"head\");\n if (oldHead && newHead) {\n const promises = handleHeadElement(oldHead, newHead, ctx);\n // when head promises resolve, proceed ignoring the head tag\n return Promise.all(promises).then(() => {\n const newCtx = Object.assign(ctx, {\n head: {\n block: false,\n ignore: true,\n },\n });\n return callback(newCtx);\n });\n }\n }\n // just proceed if we not head blocking\n return callback(ctx);\n }\n\n /**\n * The HEAD tag can be handled specially, either w/ a 'merge' or 'append' style\n *\n * @param {Element} oldHead\n * @param {Element} newHead\n * @param {MorphContext} ctx\n * @returns {Promise[]}\n */\n function handleHeadElement(oldHead, newHead, ctx) {\n let added = [];\n let removed = [];\n let preserved = [];\n let nodesToAppend = [];\n\n // put all new head elements into a Map, by their outerHTML\n let srcToNewHeadNodes = new Map();\n for (const newHeadChild of newHead.children) {\n srcToNewHeadNodes.set(newHeadChild.outerHTML, newHeadChild);\n }\n\n // for each elt in the current head\n for (const currentHeadElt of oldHead.children) {\n // If the current head element is in the map\n let inNewContent = srcToNewHeadNodes.has(currentHeadElt.outerHTML);\n let isReAppended = ctx.head.shouldReAppend(currentHeadElt);\n let isPreserved = ctx.head.shouldPreserve(currentHeadElt);\n if (inNewContent || isPreserved) {\n if (isReAppended) {\n // remove the current version and let the new version replace it and re-execute\n removed.push(currentHeadElt);\n } else {\n // this element already exists and should not be re-appended, so remove it from\n // the new content map, preserving it in the DOM\n srcToNewHeadNodes.delete(currentHeadElt.outerHTML);\n preserved.push(currentHeadElt);\n }\n } else {\n if (ctx.head.style === \"append\") {\n // we are appending and this existing element is not new content\n // so if and only if it is marked for re-append do we do anything\n if (isReAppended) {\n removed.push(currentHeadElt);\n nodesToAppend.push(currentHeadElt);\n }\n } else {\n // if this is a merge, we remove this content since it is not in the new head\n if (ctx.head.shouldRemove(currentHeadElt) !== false) {\n removed.push(currentHeadElt);\n }\n }\n }\n }\n\n // Push the remaining new head elements in the Map into the\n // nodes to append to the head tag\n nodesToAppend.push(...srcToNewHeadNodes.values());\n\n let promises = [];\n for (const newNode of nodesToAppend) {\n // TODO: This could theoretically be null, based on type\n let newElt = /** @type {ChildNode} */ (\n document.createRange().createContextualFragment(newNode.outerHTML)\n .firstChild\n );\n if (ctx.callbacks.beforeNodeAdded(newElt) !== false) {\n if (\n (\"href\" in newElt && newElt.href) ||\n (\"src\" in newElt && newElt.src)\n ) {\n /** @type {(result?: any) => void} */ let resolve;\n let promise = new Promise(function (_resolve) {\n resolve = _resolve;\n });\n newElt.addEventListener(\"load\", function () {\n resolve();\n });\n promises.push(promise);\n }\n oldHead.appendChild(newElt);\n ctx.callbacks.afterNodeAdded(newElt);\n added.push(newElt);\n }\n }\n\n // remove all removed elements, after we have appended the new elements to avoid\n // additional network requests for things like style sheets\n for (const removedElement of removed) {\n if (ctx.callbacks.beforeNodeRemoved(removedElement) !== false) {\n oldHead.removeChild(removedElement);\n ctx.callbacks.afterNodeRemoved(removedElement);\n }\n }\n\n ctx.head.afterHeadMorphed(oldHead, {\n added: added,\n kept: preserved,\n removed: removed,\n });\n return promises;\n }\n\n //=============================================================================\n // Create Morph Context Functions\n //=============================================================================\n const createMorphContext = (function () {\n /**\n *\n * @param {Element} oldNode\n * @param {Element} newContent\n * @param {Config} config\n * @returns {MorphContext}\n */\n function createMorphContext(oldNode, newContent, config) {\n const { persistentIds, idMap } = createIdMaps(oldNode, newContent);\n\n const mergedConfig = mergeDefaults(config);\n const morphStyle = mergedConfig.morphStyle || \"outerHTML\";\n if (![\"innerHTML\", \"outerHTML\"].includes(morphStyle)) {\n throw `Do not understand how to morph style ${morphStyle}`;\n }\n\n return {\n target: oldNode,\n newContent: newContent,\n config: mergedConfig,\n morphStyle: morphStyle,\n ignoreActive: mergedConfig.ignoreActive,\n ignoreActiveValue: mergedConfig.ignoreActiveValue,\n restoreFocus: mergedConfig.restoreFocus,\n idMap: idMap,\n persistentIds: persistentIds,\n pantry: createPantry(),\n callbacks: mergedConfig.callbacks,\n head: mergedConfig.head,\n };\n }\n\n /**\n * Deep merges the config object and the Idiomorph.defaults object to\n * produce a final configuration object\n * @param {Config} config\n * @returns {ConfigInternal}\n */\n function mergeDefaults(config) {\n let finalConfig = Object.assign({}, defaults);\n\n // copy top level stuff into final config\n Object.assign(finalConfig, config);\n\n // copy callbacks into final config (do this to deep merge the callbacks)\n finalConfig.callbacks = Object.assign(\n {},\n defaults.callbacks,\n config.callbacks,\n );\n\n // copy head config into final config (do this to deep merge the head)\n finalConfig.head = Object.assign({}, defaults.head, config.head);\n\n return finalConfig;\n }\n\n /**\n * @returns {HTMLDivElement}\n */\n function createPantry() {\n const pantry = document.createElement(\"div\");\n pantry.hidden = true;\n document.body.insertAdjacentElement(\"afterend\", pantry);\n return pantry;\n }\n\n /**\n * Returns all elements with an ID contained within the root element and its descendants\n *\n * @param {Element} root\n * @returns {Element[]}\n */\n function findIdElements(root) {\n let elements = Array.from(root.querySelectorAll(\"[id]\"));\n if (root.id) {\n elements.push(root);\n }\n return elements;\n }\n\n /**\n * A bottom-up algorithm that populates a map of Element -> IdSet.\n * The idSet for a given element is the set of all IDs contained within its subtree.\n * As an optimzation, we filter these IDs through the given list of persistent IDs,\n * because we don't need to bother considering IDed elements that won't be in the new content.\n *\n * @param {Map>} idMap\n * @param {Set} persistentIds\n * @param {Element} root\n * @param {Element[]} elements\n */\n function populateIdMapWithTree(idMap, persistentIds, root, elements) {\n for (const elt of elements) {\n if (persistentIds.has(elt.id)) {\n /** @type {Element|null} */\n let current = elt;\n // walk up the parent hierarchy of that element, adding the id\n // of element to the parent's id set\n while (current) {\n let idSet = idMap.get(current);\n // if the id set doesn't exist, create it and insert it in the map\n if (idSet == null) {\n idSet = new Set();\n idMap.set(current, idSet);\n }\n idSet.add(elt.id);\n\n if (current === root) break;\n current = current.parentElement;\n }\n }\n }\n }\n\n /**\n * This function computes a map of nodes to all ids contained within that node (inclusive of the\n * node). This map can be used to ask if two nodes have intersecting sets of ids, which allows\n * for a looser definition of \"matching\" than tradition id matching, and allows child nodes\n * to contribute to a parent nodes matching.\n *\n * @param {Element} oldContent the old content that will be morphed\n * @param {Element} newContent the new content to morph to\n * @returns {IdSets}\n */\n function createIdMaps(oldContent, newContent) {\n const oldIdElements = findIdElements(oldContent);\n const newIdElements = findIdElements(newContent);\n\n const persistentIds = createPersistentIds(oldIdElements, newIdElements);\n\n /** @type {Map>} */\n let idMap = new Map();\n populateIdMapWithTree(idMap, persistentIds, oldContent, oldIdElements);\n\n /** @ts-ignore - if newContent is a duck-typed parent, pass its single child node as the root to halt upwards iteration */\n const newRoot = newContent.__idiomorphRoot || newContent;\n populateIdMapWithTree(idMap, persistentIds, newRoot, newIdElements);\n\n return { persistentIds, idMap };\n }\n\n /**\n * This function computes the set of ids that persist between the two contents excluding duplicates\n *\n * @param {Element[]} oldIdElements\n * @param {Element[]} newIdElements\n * @returns {Set}\n */\n function createPersistentIds(oldIdElements, newIdElements) {\n let duplicateIds = new Set();\n\n /** @type {Map} */\n let oldIdTagNameMap = new Map();\n for (const { id, tagName } of oldIdElements) {\n if (oldIdTagNameMap.has(id)) {\n duplicateIds.add(id);\n } else {\n oldIdTagNameMap.set(id, tagName);\n }\n }\n\n let persistentIds = new Set();\n for (const { id, tagName } of newIdElements) {\n if (persistentIds.has(id)) {\n duplicateIds.add(id);\n } else if (oldIdTagNameMap.get(id) === tagName) {\n persistentIds.add(id);\n }\n // skip if tag types mismatch because its not possible to morph one tag into another\n }\n\n for (const id of duplicateIds) {\n persistentIds.delete(id);\n }\n return persistentIds;\n }\n\n return createMorphContext;\n })();\n\n //=============================================================================\n // HTML Normalization Functions\n //=============================================================================\n const { normalizeElement, normalizeParent } = (function () {\n /** @type {WeakSet} */\n const generatedByIdiomorph = new WeakSet();\n\n /**\n *\n * @param {Element | Document} content\n * @returns {Element}\n */\n function normalizeElement(content) {\n if (content instanceof Document) {\n return content.documentElement;\n } else {\n return content;\n }\n }\n\n /**\n *\n * @param {null | string | Node | HTMLCollection | Node[] | Document & {generatedByIdiomorph:boolean}} newContent\n * @returns {Element}\n */\n function normalizeParent(newContent) {\n if (newContent == null) {\n return document.createElement(\"div\"); // dummy parent element\n } else if (typeof newContent === \"string\") {\n return normalizeParent(parseContent(newContent));\n } else if (\n generatedByIdiomorph.has(/** @type {Element} */ (newContent))\n ) {\n // the template tag created by idiomorph parsing can serve as a dummy parent\n return /** @type {Element} */ (newContent);\n } else if (newContent instanceof Node) {\n if (newContent.parentNode) {\n // we can't use the parent directly because newContent may have siblings\n // that we don't want in the morph, and reparenting might be expensive (TODO is it?),\n // so we create a duck-typed parent node instead.\n return createDuckTypedParent(newContent);\n } else {\n // a single node is added as a child to a dummy parent\n const dummyParent = document.createElement(\"div\");\n dummyParent.append(newContent);\n return dummyParent;\n }\n } else {\n // all nodes in the array or HTMLElement collection are consolidated under\n // a single dummy parent element\n const dummyParent = document.createElement(\"div\");\n for (const elt of [...newContent]) {\n dummyParent.append(elt);\n }\n return dummyParent;\n }\n }\n\n /**\n * Creates a fake duck-typed parent element to wrap a single node, without actually reparenting it.\n * \"If it walks like a duck, and quacks like a duck, then it must be a duck!\" -- James Whitcomb Riley (1849–1916)\n *\n * @param {Node} newContent\n * @returns {Element}\n */\n function createDuckTypedParent(newContent) {\n return /** @type {Element} */ (\n /** @type {unknown} */ ({\n childNodes: [newContent],\n /** @ts-ignore - cover your eyes for a minute, tsc */\n querySelectorAll: (s) => {\n /** @ts-ignore */\n const elements = newContent.querySelectorAll(s);\n /** @ts-ignore */\n return newContent.matches(s) ? [newContent, ...elements] : elements;\n },\n /** @ts-ignore */\n insertBefore: (n, r) => newContent.parentNode.insertBefore(n, r),\n /** @ts-ignore */\n moveBefore: (n, r) => newContent.parentNode.moveBefore(n, r),\n // for later use with populateIdMapWithTree to halt upwards iteration\n get __idiomorphRoot() {\n return newContent;\n },\n })\n );\n }\n\n /**\n *\n * @param {string} newContent\n * @returns {Node | null | DocumentFragment}\n */\n function parseContent(newContent) {\n let parser = new DOMParser();\n\n // remove svgs to avoid false-positive matches on head, etc.\n let contentWithSvgsRemoved = newContent.replace(\n /]*>|>)([\\s\\S]*?)<\\/svg>/gim,\n \"\",\n );\n\n // if the newContent contains a html, head or body tag, we can simply parse it w/o wrapping\n if (\n contentWithSvgsRemoved.match(/<\\/html>/) ||\n contentWithSvgsRemoved.match(/<\\/head>/) ||\n contentWithSvgsRemoved.match(/<\\/body>/)\n ) {\n let content = parser.parseFromString(newContent, \"text/html\");\n // if it is a full HTML document, return the document itself as the parent container\n if (contentWithSvgsRemoved.match(/<\\/html>/)) {\n generatedByIdiomorph.add(content);\n return content;\n } else {\n // otherwise return the html element as the parent container\n let htmlElement = content.firstChild;\n if (htmlElement) {\n generatedByIdiomorph.add(htmlElement);\n }\n return htmlElement;\n }\n } else {\n // if it is partial HTML, wrap it in a template tag to provide a parent element and also to help\n // deal with touchy tags like tr, tbody, etc.\n let responseDoc = parser.parseFromString(\n \"\" + newContent + \"\",\n \"text/html\",\n );\n let content = /** @type {HTMLTemplateElement} */ (\n responseDoc.body.querySelector(\"template\")\n ).content;\n generatedByIdiomorph.add(content);\n return content;\n }\n }\n\n return { normalizeElement, normalizeParent };\n })();\n\n //=============================================================================\n // This is what ends up becoming the Idiomorph global object\n //=============================================================================\n return {\n morph,\n defaults,\n };\n})();\n\nfunction morphElements(currentElement, newElement, { callbacks, ...options } = {}) {\n Idiomorph.morph(currentElement, newElement, {\n ...options,\n callbacks: new DefaultIdiomorphCallbacks(callbacks)\n });\n}\n\nfunction morphChildren(currentElement, newElement) {\n morphElements(currentElement, newElement.childNodes, {\n morphStyle: \"innerHTML\"\n });\n}\n\nclass DefaultIdiomorphCallbacks {\n #beforeNodeMorphed\n\n constructor({ beforeNodeMorphed } = {}) {\n this.#beforeNodeMorphed = beforeNodeMorphed || (() => true);\n }\n\n beforeNodeAdded = (node) => {\n return !(node.id && node.hasAttribute(\"data-turbo-permanent\") && document.getElementById(node.id))\n }\n\n beforeNodeMorphed = (currentElement, newElement) => {\n if (currentElement instanceof Element) {\n if (!currentElement.hasAttribute(\"data-turbo-permanent\") && this.#beforeNodeMorphed(currentElement, newElement)) {\n const event = dispatch(\"turbo:before-morph-element\", {\n cancelable: true,\n target: currentElement,\n detail: { currentElement, newElement }\n });\n\n return !event.defaultPrevented\n } else {\n return false\n }\n }\n }\n\n beforeAttributeUpdated = (attributeName, target, mutationType) => {\n const event = dispatch(\"turbo:before-morph-attribute\", {\n cancelable: true,\n target,\n detail: { attributeName, mutationType }\n });\n\n return !event.defaultPrevented\n }\n\n beforeNodeRemoved = (node) => {\n return this.beforeNodeMorphed(node)\n }\n\n afterNodeMorphed = (currentElement, newElement) => {\n if (currentElement instanceof Element) {\n dispatch(\"turbo:morph-element\", {\n target: currentElement,\n detail: { currentElement, newElement }\n });\n }\n }\n}\n\nclass MorphingFrameRenderer extends FrameRenderer {\n static renderElement(currentElement, newElement) {\n dispatch(\"turbo:before-frame-morph\", {\n target: currentElement,\n detail: { currentElement, newElement }\n });\n\n morphChildren(currentElement, newElement);\n }\n\n async preservingPermanentElements(callback) {\n return await callback()\n }\n}\n\nclass ProgressBar {\n static animationDuration = 300 /*ms*/\n\n static get defaultCSS() {\n return unindent`\n .turbo-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 2147483647;\n transition:\n width ${ProgressBar.animationDuration}ms ease-out,\n opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n transform: translate3d(0, 0, 0);\n }\n `\n }\n\n hiding = false\n value = 0\n visible = false\n\n constructor() {\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n\n show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n\n hide() {\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(() => {\n this.uninstallProgressElement();\n this.stopTrickling();\n this.visible = false;\n this.hiding = false;\n });\n }\n }\n\n setValue(value) {\n this.value = value;\n this.refresh();\n }\n\n // Private\n\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n\n installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n\n fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n\n trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n }\n\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n const cspNonce = getCspNonce();\n if (cspNonce) {\n element.nonce = cspNonce;\n }\n return element\n }\n\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element\n }\n}\n\nclass HeadSnapshot extends Snapshot {\n detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details =\n outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: []\n };\n return {\n ...result,\n [outerHTML]: {\n ...details,\n elements: [...details.elements, element]\n }\n }\n }, {})\n\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\")\n }\n\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot)\n }\n\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot)\n }\n\n getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n .filter(({ type }) => type == matchedType)\n .map(({ elements: [element] }) => element)\n }\n\n get provisionalElements() {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n if (type == null && !tracked) {\n return [...result, ...elements]\n } else if (elements.length > 1) {\n return [...result, ...elements.slice(1)]\n } else {\n return result\n }\n }, [])\n }\n\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null\n }\n\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const {\n elements: [element]\n } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result\n }, undefined | undefined)\n }\n}\n\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\"\n } else if (elementIsStylesheet(element)) {\n return \"stylesheet\"\n }\n}\n\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\"\n}\n\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\"\n}\n\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\"\n}\n\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\")\n}\n\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name\n}\n\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n\n return element\n}\n\nclass PageSnapshot extends Snapshot {\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html))\n }\n\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument)\n }\n\n static fromDocument({ documentElement, body, head }) {\n return new this(documentElement, body, new HeadSnapshot(head))\n }\n\n constructor(documentElement, body, headSnapshot) {\n super(body);\n this.documentElement = documentElement;\n this.headSnapshot = headSnapshot;\n }\n\n clone() {\n const clonedElement = this.element.cloneNode(true);\n\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions) option.selected = false;\n for (const option of source.selectedOptions) clone.options[option.index].selected = true;\n }\n\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n\n return new PageSnapshot(this.documentElement, clonedElement, this.headSnapshot)\n }\n\n get lang() {\n return this.documentElement.getAttribute(\"lang\")\n }\n\n get headElement() {\n return this.headSnapshot.element\n }\n\n get rootLocation() {\n const root = this.getSetting(\"root\") ?? \"/\";\n return expandURL(root)\n }\n\n get cacheControlValue() {\n return this.getSetting(\"cache-control\")\n }\n\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\"\n }\n\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\"\n }\n\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\"\n }\n\n get prefersViewTransitions() {\n return this.headSnapshot.getMetaValue(\"view-transition\") === \"same-origin\"\n }\n\n get shouldMorphPage() {\n return this.getSetting(\"refresh-method\") === \"morph\"\n }\n\n get shouldPreserveScrollPosition() {\n return this.getSetting(\"refresh-scroll\") === \"preserve\"\n }\n\n // Private\n\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`)\n }\n}\n\nclass ViewTransitioner {\n #viewTransitionStarted = false\n #lastOperation = Promise.resolve()\n\n renderChange(useViewTransition, render) {\n if (useViewTransition && this.viewTransitionsAvailable && !this.#viewTransitionStarted) {\n this.#viewTransitionStarted = true;\n this.#lastOperation = this.#lastOperation.then(async () => {\n await document.startViewTransition(render).finished;\n });\n } else {\n this.#lastOperation = this.#lastOperation.then(render);\n }\n\n return this.#lastOperation\n }\n\n get viewTransitionsAvailable() {\n return document.startViewTransition\n }\n}\n\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => {},\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false\n};\n\nconst TimingMetric = {\n visitStart: \"visitStart\",\n requestStart: \"requestStart\",\n requestEnd: \"requestEnd\",\n visitEnd: \"visitEnd\"\n};\n\nconst VisitState = {\n initialized: \"initialized\",\n started: \"started\",\n canceled: \"canceled\",\n failed: \"failed\",\n completed: \"completed\"\n};\n\nconst SystemStatusCode = {\n networkFailure: 0,\n timeoutFailure: -1,\n contentTypeMismatch: -2\n};\n\nconst Direction = {\n advance: \"forward\",\n restore: \"back\",\n replace: \"none\"\n};\n\nclass Visit {\n identifier = uuid() // Required by turbo-ios\n timingMetrics = {}\n\n followedRedirect = false\n historyChanged = false\n scrolled = false\n shouldCacheSnapshot = true\n acceptsStreamResponse = false\n snapshotCached = false\n state = VisitState.initialized\n viewTransitioner = new ViewTransitioner()\n\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n\n const {\n action,\n historyChanged,\n referrer,\n snapshot,\n snapshotHTML,\n response,\n visitCachedSnapshot,\n willRender,\n updateHistory,\n shouldCacheSnapshot,\n acceptsStreamResponse,\n direction\n } = {\n ...defaultOptions,\n ...options\n };\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshot = snapshot;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.isPageRefresh = this.view.isPageRefresh(this);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.updateHistory = updateHistory;\n this.scrolled = !willRender;\n this.shouldCacheSnapshot = shouldCacheSnapshot;\n this.acceptsStreamResponse = acceptsStreamResponse;\n this.direction = direction || Direction[action];\n }\n\n get adapter() {\n return this.delegate.adapter\n }\n\n get view() {\n return this.delegate.view\n }\n\n get history() {\n return this.delegate.history\n }\n\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier)\n }\n\n get silent() {\n return this.isSamePage\n }\n\n start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n\n cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n\n complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.adapter.visitCompleted(this);\n this.state = VisitState.completed;\n this.followRedirect();\n\n if (!this.followedRedirect) {\n this.delegate.visitCompleted(this);\n }\n }\n }\n\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n this.delegate.visitCompleted(this);\n }\n }\n\n changeHistory() {\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === this.referrer?.href ? \"replace\" : this.action;\n const method = getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n\n issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n } else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n\n recordResponse(response = this.response) {\n this.response = response;\n if (response) {\n const { statusCode } = response;\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n } else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot) this.cacheSnapshot();\n if (this.view.renderPromise) await this.view.renderPromise;\n\n if (isSuccessful(statusCode) && responseHTML != null) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n await this.renderPageSnapshot(snapshot, false);\n\n this.adapter.visitRendered(this);\n this.complete();\n } else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot\n }\n }\n }\n\n getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML)\n }\n }\n\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null\n }\n\n loadCachedSnapshot() {\n const snapshot = this.getCachedSnapshot();\n if (snapshot) {\n const isPreview = this.shouldIssueRequest();\n this.render(async () => {\n this.cacheSnapshot();\n if (this.isSamePage || this.isPageRefresh) {\n this.adapter.visitRendered(this);\n } else {\n if (this.view.renderPromise) await this.view.renderPromise;\n\n await this.renderPageSnapshot(snapshot, isPreview);\n\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n\n followRedirect() {\n if (this.redirectedToLocation && !this.followedRedirect && this.response?.redirected) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n shouldCacheSnapshot: false,\n willRender: false\n });\n this.followedRedirect = true;\n }\n }\n\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n\n // Fetch request delegate\n\n prepareRequest(request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n\n requestStarted() {\n this.startRequest();\n }\n\n requestPreventedHandlingResponse(_request, _response) {}\n\n async requestSucceededWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected\n });\n } else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n\n async requestFailedWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected\n });\n } else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false\n });\n }\n\n requestFinished() {\n this.finishRequest();\n }\n\n // Scrolling\n\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded && !this.view.shouldPreserveScrollPosition(this)) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n } else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n\n this.scrolled = true;\n }\n }\n\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true\n }\n }\n\n scrollToAnchor() {\n const anchor = getAnchor(this.location);\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true\n }\n }\n\n // Instrumentation\n\n recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n\n getTimingMetrics() {\n return { ...this.timingMetrics }\n }\n\n // Private\n\n hasPreloadedResponse() {\n return typeof this.response == \"object\"\n }\n\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false\n } else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot()\n } else {\n return this.willRender\n }\n }\n\n cacheSnapshot() {\n if (!this.snapshotCached) {\n this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n this.snapshotCached = true;\n }\n }\n\n async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame =\n document.visibilityState === \"hidden\" ? setTimeout(() => resolve(), 0) : requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n\n async renderPageSnapshot(snapshot, isPreview) {\n await this.viewTransitioner.renderChange(this.view.shouldTransitionTo(snapshot), async () => {\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n });\n }\n\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\n\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300\n}\n\nclass BrowserAdapter {\n progressBar = new ProgressBar()\n\n constructor(session) {\n this.session = session;\n }\n\n visitProposedToLocation(location, options) {\n if (locationIsVisitable(location, this.navigator.rootLocation)) {\n this.navigator.startVisit(location, options?.restorationIdentifier || uuid(), options);\n } else {\n window.location.href = location.toString();\n }\n }\n\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n } else {\n this.showProgressBar();\n }\n }\n\n visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n\n visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload({\n reason: \"request_failed\",\n context: {\n statusCode\n }\n })\n default:\n return visit.loadResponse()\n }\n }\n\n visitRequestFinished(_visit) {}\n\n visitCompleted(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n\n pageInvalidated(reason) {\n this.reload(reason);\n }\n\n visitFailed(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n\n visitRendered(_visit) {}\n\n // Link prefetching\n\n linkPrefetchingIsEnabledForLocation(location) {\n return true\n }\n\n // Form Submission Delegate\n\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n\n // Private\n\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n\n hideFormProgressBar() {\n this.progressBar.hide();\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n\n showProgressBar = () => {\n this.progressBar.show();\n }\n\n reload(reason) {\n dispatch(\"turbo:reload\", { detail: reason });\n\n window.location.href = this.location?.toString() || window.location.href;\n }\n\n get navigator() {\n return this.session.navigator\n }\n}\n\nclass CacheObserver {\n selector = \"[data-turbo-temporary]\"\n deprecatedSelector = \"[data-turbo-cache=false]\"\n\n started = false\n\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n\n removeTemporaryElements = (_event) => {\n for (const element of this.temporaryElements) {\n element.remove();\n }\n }\n\n get temporaryElements() {\n return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation]\n }\n\n get temporaryElementsWithDeprecation() {\n const elements = document.querySelectorAll(this.deprecatedSelector);\n\n if (elements.length) {\n console.warn(\n `The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`\n );\n }\n\n return [...elements]\n }\n}\n\nclass FrameRedirector {\n constructor(session, element) {\n this.session = session;\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formSubmitObserver = new FormSubmitObserver(this, element);\n }\n\n start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n\n // Link interceptor delegate\n\n shouldInterceptLinkClick(element, _location, _event) {\n return this.#shouldRedirect(element)\n }\n\n linkClickIntercepted(element, url, event) {\n const frame = this.#findFrameElement(element);\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url, event);\n }\n }\n\n // Form submit observer delegate\n\n willSubmitForm(element, submitter) {\n return (\n element.closest(\"turbo-frame\") == null &&\n this.#shouldSubmit(element, submitter) &&\n this.#shouldRedirect(element, submitter)\n )\n }\n\n formSubmitted(element, submitter) {\n const frame = this.#findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n\n #shouldSubmit(form, submitter) {\n const action = getAction$1(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL(meta?.content ?? \"/\");\n\n return this.#shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation)\n }\n\n #shouldRedirect(element, submitter) {\n const isNavigatable =\n element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n\n if (isNavigatable) {\n const frame = this.#findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false\n } else {\n return false\n }\n }\n\n #findFrameElement(element, submitter) {\n const id = submitter?.getAttribute(\"data-turbo-frame\") || element.getAttribute(\"data-turbo-frame\");\n if (id && id != \"_top\") {\n const frame = this.element.querySelector(`#${id}:not([disabled])`);\n if (frame instanceof FrameElement) {\n return frame\n }\n }\n }\n}\n\nclass History {\n location\n restorationIdentifier = uuid()\n restorationData = {}\n started = false\n pageLoaded = false\n currentIndex = 0\n\n constructor(delegate) {\n this.delegate = delegate;\n }\n\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.currentIndex = history.state?.turbo?.restorationIndex || 0;\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n\n update(method, location, restorationIdentifier = uuid()) {\n if (method === history.pushState) ++this.currentIndex;\n\n const state = { turbo: { restorationIdentifier, restorationIndex: this.currentIndex } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n\n // Restoration data\n\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {}\n }\n\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = {\n ...restorationData,\n ...additionalData\n };\n }\n\n // Scroll restoration\n\n assumeControlOfScrollRestoration() {\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = history.scrollRestoration ?? \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n\n // Event handlers\n\n onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier, restorationIndex } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n const direction = restorationIndex > this.currentIndex ? \"forward\" : \"back\";\n this.delegate.historyPoppedToLocationWithRestorationIdentifierAndDirection(this.location, restorationIdentifier, direction);\n this.currentIndex = restorationIndex;\n }\n }\n }\n\n onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n }\n\n // Private\n\n shouldHandlePopState() {\n // Safari dispatches a popstate event after window's load event, ignore it\n return this.pageIsLoaded()\n }\n\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\"\n }\n}\n\nclass LinkPrefetchObserver {\n started = false\n #prefetchedLink = null\n\n constructor(delegate, eventTarget) {\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n\n start() {\n if (this.started) return\n\n if (this.eventTarget.readyState === \"loading\") {\n this.eventTarget.addEventListener(\"DOMContentLoaded\", this.#enable, { once: true });\n } else {\n this.#enable();\n }\n }\n\n stop() {\n if (!this.started) return\n\n this.eventTarget.removeEventListener(\"mouseenter\", this.#tryToPrefetchRequest, {\n capture: true,\n passive: true\n });\n this.eventTarget.removeEventListener(\"mouseleave\", this.#cancelRequestIfObsolete, {\n capture: true,\n passive: true\n });\n\n this.eventTarget.removeEventListener(\"turbo:before-fetch-request\", this.#tryToUsePrefetchedRequest, true);\n this.started = false;\n }\n\n #enable = () => {\n this.eventTarget.addEventListener(\"mouseenter\", this.#tryToPrefetchRequest, {\n capture: true,\n passive: true\n });\n this.eventTarget.addEventListener(\"mouseleave\", this.#cancelRequestIfObsolete, {\n capture: true,\n passive: true\n });\n\n this.eventTarget.addEventListener(\"turbo:before-fetch-request\", this.#tryToUsePrefetchedRequest, true);\n this.started = true;\n }\n\n #tryToPrefetchRequest = (event) => {\n if (getMetaContent(\"turbo-prefetch\") === \"false\") return\n\n const target = event.target;\n const isLink = target.matches && target.matches(\"a[href]:not([target^=_]):not([download])\");\n\n if (isLink && this.#isPrefetchable(target)) {\n const link = target;\n const location = getLocationForLink(link);\n\n if (this.delegate.canPrefetchRequestToLocation(link, location)) {\n this.#prefetchedLink = link;\n\n const fetchRequest = new FetchRequest(\n this,\n FetchMethod.get,\n location,\n new URLSearchParams(),\n target\n );\n\n prefetchCache.setLater(location.toString(), fetchRequest, this.#cacheTtl);\n }\n }\n }\n\n #cancelRequestIfObsolete = (event) => {\n if (event.target === this.#prefetchedLink) this.#cancelPrefetchRequest();\n }\n\n #cancelPrefetchRequest = () => {\n prefetchCache.clear();\n this.#prefetchedLink = null;\n }\n\n #tryToUsePrefetchedRequest = (event) => {\n if (event.target.tagName !== \"FORM\" && event.detail.fetchOptions.method === \"GET\") {\n const cached = prefetchCache.get(event.detail.url.toString());\n\n if (cached) {\n // User clicked link, use cache response\n event.detail.fetchRequest = cached;\n }\n\n prefetchCache.clear();\n }\n }\n\n prepareRequest(request) {\n const link = request.target;\n\n request.headers[\"X-Sec-Purpose\"] = \"prefetch\";\n\n const turboFrame = link.closest(\"turbo-frame\");\n const turboFrameTarget = link.getAttribute(\"data-turbo-frame\") || turboFrame?.getAttribute(\"target\") || turboFrame?.id;\n\n if (turboFrameTarget && turboFrameTarget !== \"_top\") {\n request.headers[\"Turbo-Frame\"] = turboFrameTarget;\n }\n }\n\n // Fetch request interface\n\n requestSucceededWithResponse() {}\n\n requestStarted(fetchRequest) {}\n\n requestErrored(fetchRequest) {}\n\n requestFinished(fetchRequest) {}\n\n requestPreventedHandlingResponse(fetchRequest, fetchResponse) {}\n\n requestFailedWithResponse(fetchRequest, fetchResponse) {}\n\n get #cacheTtl() {\n return Number(getMetaContent(\"turbo-prefetch-cache-time\")) || cacheTtl\n }\n\n #isPrefetchable(link) {\n const href = link.getAttribute(\"href\");\n\n if (!href) return false\n\n if (unfetchableLink(link)) return false\n if (linkToTheSamePage(link)) return false\n if (linkOptsOut(link)) return false\n if (nonSafeLink(link)) return false\n if (eventPrevented(link)) return false\n\n return true\n }\n}\n\nconst unfetchableLink = (link) => {\n return link.origin !== document.location.origin || ![\"http:\", \"https:\"].includes(link.protocol) || link.hasAttribute(\"target\")\n};\n\nconst linkToTheSamePage = (link) => {\n return (link.pathname + link.search === document.location.pathname + document.location.search) || link.href.startsWith(\"#\")\n};\n\nconst linkOptsOut = (link) => {\n if (link.getAttribute(\"data-turbo-prefetch\") === \"false\") return true\n if (link.getAttribute(\"data-turbo\") === \"false\") return true\n\n const turboPrefetchParent = findClosestRecursively(link, \"[data-turbo-prefetch]\");\n if (turboPrefetchParent && turboPrefetchParent.getAttribute(\"data-turbo-prefetch\") === \"false\") return true\n\n return false\n};\n\nconst nonSafeLink = (link) => {\n const turboMethod = link.getAttribute(\"data-turbo-method\");\n if (turboMethod && turboMethod.toLowerCase() !== \"get\") return true\n\n if (isUJS(link)) return true\n if (link.hasAttribute(\"data-turbo-confirm\")) return true\n if (link.hasAttribute(\"data-turbo-stream\")) return true\n\n return false\n};\n\nconst isUJS = (link) => {\n return link.hasAttribute(\"data-remote\") || link.hasAttribute(\"data-behavior\") || link.hasAttribute(\"data-confirm\") || link.hasAttribute(\"data-method\")\n};\n\nconst eventPrevented = (link) => {\n const event = dispatch(\"turbo:before-prefetch\", { target: link, cancelable: true });\n return event.defaultPrevented\n};\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n }\n\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, {\n referrer: this.location,\n ...options\n });\n this.currentVisit.start();\n }\n\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n\n this.formSubmission.start();\n }\n\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n\n get adapter() {\n return this.delegate.adapter\n }\n\n get view() {\n return this.delegate.view\n }\n\n get rootLocation() {\n return this.view.snapshot.rootLocation\n }\n\n get history() {\n return this.delegate.history\n }\n\n // Form submission delegate\n\n formSubmissionStarted(formSubmission) {\n // Not all adapters implement formSubmissionStarted\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n\n async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n if (formSubmission == this.formSubmission) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const shouldCacheSnapshot = formSubmission.isSafe;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n\n const { statusCode, redirected } = fetchResponse;\n const action = this.#getActionForFormSubmission(formSubmission, fetchResponse);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected }\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n } else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n if(!snapshot.shouldPreserveScrollPosition) {\n this.view.scrollToTop();\n }\n this.view.clearSnapshotCache();\n }\n }\n\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n\n formSubmissionFinished(formSubmission) {\n // Not all adapters implement formSubmissionFinished\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n\n // Link prefetching\n\n linkPrefetchingIsEnabledForLocation(location) {\n // Not all adapters implement linkPrefetchingIsEnabledForLocation\n if (typeof this.adapter.linkPrefetchingIsEnabledForLocation === \"function\") {\n return this.adapter.linkPrefetchingIsEnabledForLocation(location)\n }\n\n return true\n }\n\n // Visit delegate\n\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n delete this.currentVisit;\n }\n\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n\n return (\n action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor))\n )\n }\n\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n\n // Visits\n\n get location() {\n return this.history.location\n }\n\n get restorationIdentifier() {\n return this.history.restorationIdentifier\n }\n\n #getActionForFormSubmission(formSubmission, fetchResponse) {\n const { submitter, formElement } = formSubmission;\n return getVisitAction(submitter, formElement) || this.#getDefaultAction(fetchResponse)\n }\n\n #getDefaultAction(fetchResponse) {\n const sameLocationRedirect = fetchResponse.redirected && fetchResponse.location.href === this.location?.href;\n return sameLocationRedirect ? \"replace\" : \"advance\"\n }\n}\n\nconst PageStage = {\n initial: 0,\n loading: 1,\n interactive: 2,\n complete: 3\n};\n\nclass PageObserver {\n stage = PageStage.initial\n started = false\n\n constructor(delegate) {\n this.delegate = delegate;\n }\n\n start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n\n stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n\n interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n } else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n }\n\n pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n\n pageIsComplete() {\n this.pageIsInteractive();\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n\n pageWillUnload = () => {\n this.delegate.pageWillUnload();\n }\n\n get readyState() {\n return document.readyState\n }\n}\n\nclass ScrollObserver {\n started = false\n\n constructor(delegate) {\n this.delegate = delegate;\n }\n\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n\n onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n }\n\n // Private\n\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => {\n withAutofocusFromFragment(fragment, () => {\n withPreservedFocus(() => {\n document.documentElement.appendChild(fragment);\n });\n });\n });\n }\n\n // Bardo delegate\n\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n\n leavingBardo() {}\n}\n\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n\n return permanentElementMap\n}\n\nasync function withAutofocusFromFragment(fragment, callback) {\n const generatedID = `turbo-stream-autofocus-${uuid()}`;\n const turboStreams = fragment.querySelectorAll(\"turbo-stream\");\n const elementWithAutofocus = firstAutofocusableElementInStreams(turboStreams);\n let willAutofocusId = null;\n\n if (elementWithAutofocus) {\n if (elementWithAutofocus.id) {\n willAutofocusId = elementWithAutofocus.id;\n } else {\n willAutofocusId = generatedID;\n }\n\n elementWithAutofocus.id = willAutofocusId;\n }\n\n callback();\n await nextRepaint();\n\n const hasNoActiveElement = document.activeElement == null || document.activeElement == document.body;\n\n if (hasNoActiveElement && willAutofocusId) {\n const elementToAutofocus = document.getElementById(willAutofocusId);\n\n if (elementIsFocusable(elementToAutofocus)) {\n elementToAutofocus.focus();\n }\n if (elementToAutofocus && elementToAutofocus.id == generatedID) {\n elementToAutofocus.removeAttribute(\"id\");\n }\n }\n}\n\nasync function withPreservedFocus(callback) {\n const [activeElementBeforeRender, activeElementAfterRender] = await around(callback, () => document.activeElement);\n\n const restoreFocusTo = activeElementBeforeRender && activeElementBeforeRender.id;\n\n if (restoreFocusTo) {\n const elementToFocus = document.getElementById(restoreFocusTo);\n\n if (elementIsFocusable(elementToFocus) && elementToFocus != activeElementAfterRender) {\n elementToFocus.focus();\n }\n }\n}\n\nfunction firstAutofocusableElementInStreams(nodeListOfStreamElements) {\n for (const streamElement of nodeListOfStreamElements) {\n const elementWithAutofocus = queryAutofocusableElement(streamElement.templateElement.content);\n\n if (elementWithAutofocus) return elementWithAutofocus\n }\n\n return null\n}\n\nclass StreamObserver {\n sources = new Set()\n #started = false\n\n constructor(delegate) {\n this.delegate = delegate;\n }\n\n start() {\n if (!this.#started) {\n this.#started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n\n stop() {\n if (this.#started) {\n this.#started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n\n connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n\n disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n\n streamSourceIsConnected(source) {\n return this.sources.has(source)\n }\n\n inspectFetchResponse = (event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n }\n\n receiveMessageEvent = (event) => {\n if (this.#started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n }\n\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\n\nfunction fetchResponseFromEvent(event) {\n const fetchResponse = event.detail?.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse\n }\n}\n\nfunction fetchResponseIsStream(response) {\n const contentType = response.contentType ?? \"\";\n return contentType.startsWith(StreamMessage.contentType)\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n\n documentElement.replaceChild(newElement, body);\n }\n\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\n }\n\n activateScriptElements() {\n for (const replaceableElement of this.scriptElements) {\n const parentNode = replaceableElement.parentNode;\n if (parentNode) {\n const element = activateScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n }\n\n get newHead() {\n return this.newSnapshot.headSnapshot.element\n }\n\n get scriptElements() {\n return document.documentElement.querySelectorAll(\"script\")\n }\n}\n\nclass PageRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n if (document.body && newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(newElement);\n } else {\n document.documentElement.appendChild(newElement);\n }\n }\n\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical\n }\n\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\"\n }\n }\n\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\"\n }\n }\n }\n\n async prepareToRender() {\n this.#setLanguage();\n await this.mergeHead();\n }\n\n async render() {\n if (this.willRender) {\n await this.replaceBody();\n }\n }\n\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot\n }\n\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot\n }\n\n get newElement() {\n return this.newSnapshot.element\n }\n\n #setLanguage() {\n const { documentElement } = this.currentSnapshot;\n const { lang } = this.newSnapshot;\n\n if (lang) {\n documentElement.setAttribute(\"lang\", lang);\n } else {\n documentElement.removeAttribute(\"lang\");\n }\n }\n\n async mergeHead() {\n const mergedHeadElements = this.mergeProvisionalElements();\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n\n await mergedHeadElements;\n await newStylesheetElements;\n\n if (this.willRender) {\n this.removeUnusedDynamicStylesheetElements();\n }\n }\n\n async replaceBody() {\n await this.preservingPermanentElements(async () => {\n this.activateNewBody();\n await this.assignNewBody();\n });\n }\n\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature\n }\n\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n\n document.head.appendChild(element);\n }\n\n await Promise.all(loadingElements);\n }\n\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n\n removeUnusedDynamicStylesheetElements() {\n for (const element of this.unusedDynamicStylesheetElements) {\n document.head.removeChild(element);\n }\n }\n\n async mergeProvisionalElements() {\n const newHeadElements = [...this.newHeadProvisionalElements];\n\n for (const element of this.currentHeadProvisionalElements) {\n if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n document.head.removeChild(element);\n }\n }\n\n for (const element of newHeadElements) {\n document.head.appendChild(element);\n }\n }\n\n isCurrentElementInElementList(element, elementList) {\n for (const [index, newElement] of elementList.entries()) {\n // if title element...\n if (element.tagName == \"TITLE\") {\n if (newElement.tagName != \"TITLE\") {\n continue\n }\n if (element.innerHTML == newElement.innerHTML) {\n elementList.splice(index, 1);\n return true\n }\n }\n\n // if any other element...\n if (newElement.isEqualNode(element)) {\n elementList.splice(index, 1);\n return true\n }\n }\n\n return false\n }\n\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n\n async assignNewBody() {\n await this.renderElement(this.currentElement, this.newElement);\n }\n\n get unusedDynamicStylesheetElements() {\n return this.oldHeadStylesheetElements.filter((element) => {\n return element.getAttribute(\"data-turbo-track\") === \"dynamic\"\n })\n }\n\n get oldHeadStylesheetElements() {\n return this.currentHeadSnapshot.getStylesheetElementsNotInSnapshot(this.newHeadSnapshot)\n }\n\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot)\n }\n\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot)\n }\n\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements\n }\n\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements\n }\n\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\")\n }\n}\n\nclass MorphingPageRenderer extends PageRenderer {\n static renderElement(currentElement, newElement) {\n morphElements(currentElement, newElement, {\n callbacks: {\n beforeNodeMorphed: element => !canRefreshFrame(element)\n }\n });\n\n for (const frame of currentElement.querySelectorAll(\"turbo-frame\")) {\n if (canRefreshFrame(frame)) frame.reload();\n }\n\n dispatch(\"turbo:morph\", { detail: { currentElement, newElement } });\n }\n\n async preservingPermanentElements(callback) {\n return await callback()\n }\n\n get renderMethod() {\n return \"morph\"\n }\n\n get shouldAutofocus() {\n return false\n }\n}\n\nfunction canRefreshFrame(frame) {\n return frame instanceof FrameElement &&\n frame.src &&\n frame.refresh === \"morph\" &&\n !frame.closest(\"[data-turbo-permanent]\")\n}\n\nclass SnapshotCache {\n keys = []\n snapshots = {}\n\n constructor(size) {\n this.size = size;\n }\n\n has(location) {\n return toCacheKey(location) in this.snapshots\n }\n\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot\n }\n }\n\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot\n }\n\n clear() {\n this.snapshots = {};\n }\n\n // Private\n\n read(location) {\n return this.snapshots[toCacheKey(location)]\n }\n\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1) this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n snapshotCache = new SnapshotCache(10)\n lastRenderedLocation = new URL(location.href)\n forceReloaded = false\n\n shouldTransitionTo(newSnapshot) {\n return this.snapshot.prefersViewTransitions && newSnapshot.prefersViewTransitions\n }\n\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const shouldMorphPage = this.isPageRefresh(visit) && this.snapshot.shouldMorphPage;\n const rendererClass = shouldMorphPage ? MorphingPageRenderer : PageRenderer;\n\n const renderer = new rendererClass(this.snapshot, snapshot, isPreview, willRender);\n\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n } else {\n visit?.changeHistory();\n }\n\n return this.render(renderer)\n }\n\n renderError(snapshot, visit) {\n visit?.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, false);\n return this.render(renderer)\n }\n\n clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n\n async cacheSnapshot(snapshot = this.snapshot) {\n if (snapshot.isCacheable) {\n this.delegate.viewWillCacheSnapshot();\n const { lastRenderedLocation: location } = this;\n await nextEventLoopTick();\n const cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(location, cachedSnapshot);\n return cachedSnapshot\n }\n }\n\n getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location)\n }\n\n isPageRefresh(visit) {\n return !visit || (this.lastRenderedLocation.pathname === visit.location.pathname && visit.action === \"replace\")\n }\n\n shouldPreserveScrollPosition(visit) {\n return this.isPageRefresh(visit) && this.snapshot.shouldPreserveScrollPosition\n }\n\n get snapshot() {\n return PageSnapshot.fromElement(this.element)\n }\n}\n\nclass Preloader {\n selector = \"a[data-turbo-preload]\"\n\n constructor(delegate, snapshotCache) {\n this.delegate = delegate;\n this.snapshotCache = snapshotCache;\n }\n\n start() {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", this.#preloadAll);\n } else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n\n stop() {\n document.removeEventListener(\"DOMContentLoaded\", this.#preloadAll);\n }\n\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n if (this.delegate.shouldPreloadLink(link)) {\n this.preloadURL(link);\n }\n }\n }\n\n async preloadURL(link) {\n const location = new URL(link.href);\n\n if (this.snapshotCache.has(location)) {\n return\n }\n\n const fetchRequest = new FetchRequest(this, FetchMethod.get, location, new URLSearchParams(), link);\n await fetchRequest.perform();\n }\n\n // Fetch request delegate\n\n prepareRequest(fetchRequest) {\n fetchRequest.headers[\"X-Sec-Purpose\"] = \"prefetch\";\n }\n\n async requestSucceededWithResponse(fetchRequest, fetchResponse) {\n try {\n const responseHTML = await fetchResponse.responseHTML;\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n\n this.snapshotCache.put(fetchRequest.url, snapshot);\n } catch (_) {\n // If we cannot preload that is ok!\n }\n }\n\n requestStarted(fetchRequest) {}\n\n requestErrored(fetchRequest) {}\n\n requestFinished(fetchRequest) {}\n\n requestPreventedHandlingResponse(fetchRequest, fetchResponse) {}\n\n requestFailedWithResponse(fetchRequest, fetchResponse) {}\n\n #preloadAll = () => {\n this.preloadOnLoadLinksForView(document.body);\n }\n}\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n\n clear() {\n this.session.clearCache();\n }\n\n resetCacheControl() {\n this.#setCacheControl(\"\");\n }\n\n exemptPageFromCache() {\n this.#setCacheControl(\"no-cache\");\n }\n\n exemptPageFromPreview() {\n this.#setCacheControl(\"no-preview\");\n }\n\n #setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nclass Session {\n navigator = new Navigator(this)\n history = new History(this)\n view = new PageView(this, document.documentElement)\n adapter = new BrowserAdapter(this)\n\n pageObserver = new PageObserver(this)\n cacheObserver = new CacheObserver()\n linkPrefetchObserver = new LinkPrefetchObserver(this, document)\n linkClickObserver = new LinkClickObserver(this, window)\n formSubmitObserver = new FormSubmitObserver(this, document)\n scrollObserver = new ScrollObserver(this)\n streamObserver = new StreamObserver(this)\n formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement)\n frameRedirector = new FrameRedirector(this, document.documentElement)\n streamMessageRenderer = new StreamMessageRenderer()\n cache = new Cache(this)\n\n enabled = true\n started = false\n #pageRefreshDebouncePeriod = 150\n\n constructor(recentRequests) {\n this.recentRequests = recentRequests;\n this.preloader = new Preloader(this, this.view.snapshotCache);\n this.debouncedRefresh = this.refresh;\n this.pageRefreshDebouncePeriod = this.pageRefreshDebouncePeriod;\n }\n\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.linkPrefetchObserver.start();\n this.formLinkClickObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.preloader.start();\n this.started = true;\n this.enabled = true;\n }\n }\n\n disable() {\n this.enabled = false;\n }\n\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.linkPrefetchObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.preloader.stop();\n this.started = false;\n }\n }\n\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n\n if (frameElement instanceof FrameElement) {\n const action = options.action || getVisitAction(frameElement);\n\n frameElement.delegate.proposeVisitIfNavigatedWithAction(frameElement, action);\n frameElement.src = location.toString();\n } else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n\n refresh(url, requestId) {\n const isRecentRequest = requestId && this.recentRequests.has(requestId);\n const isCurrentUrl = url === document.baseURI;\n if (!isRecentRequest && !this.navigator.currentVisit && isCurrentUrl) {\n this.visit(url, { action: \"replace\", shouldCacheSnapshot: false });\n }\n }\n\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n\n clearCache() {\n this.view.clearSnapshotCache();\n }\n\n setProgressBarDelay(delay) {\n console.warn(\n \"Please replace `session.setProgressBarDelay(delay)` with `session.progressBarDelay = delay`. The function is deprecated and will be removed in a future version of Turbo.`\"\n );\n\n this.progressBarDelay = delay;\n }\n\n set progressBarDelay(delay) {\n config.drive.progressBarDelay = delay;\n }\n\n get progressBarDelay() {\n return config.drive.progressBarDelay\n }\n\n set drive(value) {\n config.drive.enabled = value;\n }\n\n get drive() {\n return config.drive.enabled\n }\n\n set formMode(value) {\n config.forms.mode = value;\n }\n\n get formMode() {\n return config.forms.mode\n }\n\n get location() {\n return this.history.location\n }\n\n get restorationIdentifier() {\n return this.history.restorationIdentifier\n }\n\n get pageRefreshDebouncePeriod() {\n return this.#pageRefreshDebouncePeriod\n }\n\n set pageRefreshDebouncePeriod(value) {\n this.refresh = debounce(this.debouncedRefresh.bind(this), value);\n this.#pageRefreshDebouncePeriod = value;\n }\n\n // Preloader delegate\n\n shouldPreloadLink(element) {\n const isUnsafe = element.hasAttribute(\"data-turbo-method\");\n const isStream = element.hasAttribute(\"data-turbo-stream\");\n const frameTarget = element.getAttribute(\"data-turbo-frame\");\n const frame = frameTarget == \"_top\" ?\n null :\n document.getElementById(frameTarget) || findClosestRecursively(element, \"turbo-frame:not([disabled])\");\n\n if (isUnsafe || isStream || frame instanceof FrameElement) {\n return false\n } else {\n const location = new URL(element.href);\n\n return this.elementIsNavigatable(element) && locationIsVisitable(location, this.snapshot.rootLocation)\n }\n }\n\n // History delegate\n\n historyPoppedToLocationWithRestorationIdentifierAndDirection(location, restorationIdentifier, direction) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n direction\n });\n } else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\"\n });\n }\n }\n\n // Scroll observer delegate\n\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n\n // Form click observer delegate\n\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation)\n }\n\n submittedFormLinkToLocation() {}\n\n // Link hover observer delegate\n\n canPrefetchRequestToLocation(link, location) {\n return (\n this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.navigator.linkPrefetchingIsEnabledForLocation(location)\n )\n }\n\n // Link click observer delegate\n\n willFollowLinkToLocation(link, location, event) {\n return (\n this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event)\n )\n }\n\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n\n // Navigator delegate\n\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location)\n }\n\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n\n // Visit delegate\n\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n this.view.markVisitDirection(visit.direction);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n\n visitCompleted(visit) {\n this.view.unmarkVisitDirection();\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action)\n }\n\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n\n // Form submit observer delegate\n\n willSubmitForm(form, submitter) {\n const action = getAction$1(form, submitter);\n\n return (\n this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation)\n )\n }\n\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n\n // Page observer delegate\n\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n\n // Stream observer delegate\n\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n\n // Page view delegate\n\n viewWillCacheSnapshot() {\n if (!this.navigator.currentVisit?.silent) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const {\n defaultPrevented,\n detail: { render }\n } = event;\n\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n\n return !defaultPrevented\n }\n\n viewRenderedSnapshot(_snapshot, _isPreview, renderMethod) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender(renderMethod);\n }\n\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n\n // Frame element\n\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n\n // Application events\n\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented\n }\n\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented\n }\n\n notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: { url: location.href, originalEvent: event },\n cancelable: true\n })\n }\n\n notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true\n })\n }\n\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } })\n }\n\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\")\n }\n\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: { newBody, ...options },\n cancelable: true\n })\n }\n\n notifyApplicationAfterRender(renderMethod) {\n return dispatch(\"turbo:render\", { detail: { renderMethod } })\n }\n\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing }\n })\n }\n\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(\n new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString()\n })\n );\n }\n\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame })\n }\n\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true\n })\n }\n\n // Helpers\n\n submissionIsNavigatable(form, submitter) {\n if (config.forms.mode == \"off\") {\n return false\n } else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n\n if (config.forms.mode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null\n } else {\n return submitterIsNavigatable && this.elementIsNavigatable(form)\n }\n }\n }\n\n elementIsNavigatable(element) {\n const container = findClosestRecursively(element, \"[data-turbo]\");\n const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n\n // Check if Drive is enabled on the session or we're within a Frame.\n if (config.drive.enabled || withinFrame) {\n // Element is navigatable by default, unless `data-turbo=\"false\"`.\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\"\n } else {\n return true\n }\n } else {\n // Element isn't navigatable by default, unless `data-turbo=\"true\"`.\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\"\n } else {\n return false\n }\n }\n }\n\n // Private\n\n getActionForLink(link) {\n return getVisitAction(link) || \"advance\"\n }\n\n get snapshot() {\n return this.view.snapshot\n }\n}\n\n// Older versions of the Turbo Native adapters referenced the\n// `Location#absoluteURL` property in their implementations of\n// the `Adapter#visitProposedToLocation()` and `#visitStarted()`\n// methods. The Location class has since been removed in favor\n// of the DOM URL API, and accordingly all Adapter methods now\n// receive URL objects.\n//\n// We alias #absoluteURL to #toString() here to avoid crashing\n// older adapters which do not expect URL objects. We should\n// consider removing this support at some point in the future.\n\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\n\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString()\n }\n }\n};\n\nconst session = new Session(recentRequests);\nconst { cache, navigator: navigator$1 } = session;\n\n/**\n * Starts the main session.\n * This initialises any necessary observers such as those to monitor\n * link interactions.\n */\nfunction start() {\n session.start();\n}\n\n/**\n * Registers an adapter for the main session.\n *\n * @param adapter Adapter to register\n */\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\n\n/**\n * Performs an application visit to the given location.\n *\n * @param location Location to visit (a URL or path)\n * @param options Options to apply\n * @param options.action Type of history navigation to apply (\"restore\",\n * \"replace\" or \"advance\")\n * @param options.historyChanged Specifies whether the browser history has\n * already been changed for this visit or not\n * @param options.referrer Specifies the referrer of this visit such that\n * navigations to the same page will not result in a new history entry.\n * @param options.snapshotHTML Cached snapshot to render\n * @param options.response Response of the specified location\n */\nfunction visit(location, options) {\n session.visit(location, options);\n}\n\n/**\n * Connects a stream source to the main session.\n *\n * @param source Stream source to connect\n */\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\n\n/**\n * Disconnects a stream source from the main session.\n *\n * @param source Stream source to disconnect\n */\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\n\n/**\n * Renders a stream message to the main session by appending it to the\n * current document.\n *\n * @param message Message to render\n */\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\n\n/**\n * Removes all entries from the Turbo Drive page cache.\n * Call this when state has changed on the server that may affect cached pages.\n *\n * @deprecated since version 7.2.0 in favor of `Turbo.cache.clear()`\n */\nfunction clearCache() {\n console.warn(\n \"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n );\n session.clearCache();\n}\n\n/**\n * Sets the delay after which the progress bar will appear during navigation.\n *\n * The progress bar appears after 500ms by default.\n *\n * Note that this method has no effect when used with the iOS or Android\n * adapters.\n *\n * @param delay Time to delay in milliseconds\n */\nfunction setProgressBarDelay(delay) {\n console.warn(\n \"Please replace `Turbo.setProgressBarDelay(delay)` with `Turbo.config.drive.progressBarDelay = delay`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n );\n config.drive.progressBarDelay = delay;\n}\n\nfunction setConfirmMethod(confirmMethod) {\n console.warn(\n \"Please replace `Turbo.setConfirmMethod(confirmMethod)` with `Turbo.config.forms.confirm = confirmMethod`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n );\n config.forms.confirm = confirmMethod;\n}\n\nfunction setFormMode(mode) {\n console.warn(\n \"Please replace `Turbo.setFormMode(mode)` with `Turbo.config.forms.mode = mode`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n );\n config.forms.mode = mode;\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n fetch: fetchWithTurboHeaders,\n config: config,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode\n});\n\nclass TurboFrameMissingError extends Error {}\n\nclass FrameController {\n fetchResponseLoaded = (_fetchResponse) => Promise.resolve()\n #currentFetchRequest = null\n #resolveVisitPromise = () => {}\n #connected = false\n #hasBeenLoaded = false\n #ignoredAttributes = new Set()\n #shouldMorphFrame = false\n action = null\n\n constructor(element) {\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.restorationIdentifier = uuid();\n this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n }\n\n // Frame delegate\n\n connect() {\n if (!this.#connected) {\n this.#connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n } else {\n this.#loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n }\n\n disconnect() {\n if (this.#connected) {\n this.#connected = false;\n this.appearanceObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n }\n\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.#loadSourceURL();\n }\n }\n\n sourceURLChanged() {\n if (this.#isIgnoringChangesTo(\"src\")) return\n\n if (this.element.isConnected) {\n this.complete = false;\n }\n\n if (this.loadingStyle == FrameLoadingStyle.eager || this.#hasBeenLoaded) {\n this.#loadSourceURL();\n }\n }\n\n sourceURLReloaded() {\n const { refresh, src } = this.element;\n\n this.#shouldMorphFrame = src && refresh === \"morph\";\n\n this.element.removeAttribute(\"complete\");\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded\n }\n\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n } else {\n this.appearanceObserver.stop();\n this.#loadSourceURL();\n }\n }\n\n async #loadSourceURL() {\n if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n this.element.loaded = this.#visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n await this.element.loaded;\n this.#hasBeenLoaded = true;\n }\n }\n\n async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const document = parseHTMLDocument(html);\n const pageSnapshot = PageSnapshot.fromDocument(document);\n\n if (pageSnapshot.isVisitable) {\n await this.#loadFrameResponse(fetchResponse, document);\n } else {\n await this.#handleUnvisitableFrameResponse(fetchResponse);\n }\n }\n } finally {\n this.#shouldMorphFrame = false;\n this.fetchResponseLoaded = () => Promise.resolve();\n }\n }\n\n // Appearance observer delegate\n\n elementAppearedInViewport(element) {\n this.proposeVisitIfNavigatedWithAction(element, getVisitAction(element));\n this.#loadSourceURL();\n }\n\n // Form link click observer delegate\n\n willSubmitFormLinkToLocation(link) {\n return this.#shouldInterceptNavigation(link)\n }\n\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.#findFrameElement(link);\n if (frame) form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n\n // Link interceptor delegate\n\n shouldInterceptLinkClick(element, _location, _event) {\n return this.#shouldInterceptNavigation(element)\n }\n\n linkClickIntercepted(element, location) {\n this.#navigateFrame(element, location);\n }\n\n // Form submit observer delegate\n\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.#shouldInterceptNavigation(element, submitter)\n }\n\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareRequest(fetchRequest);\n this.formSubmission.start();\n }\n\n // Fetch request delegate\n\n prepareRequest(request) {\n request.headers[\"Turbo-Frame\"] = this.id;\n\n if (this.currentNavigationElement?.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n\n requestPreventedHandlingResponse(_request, _response) {\n this.#resolveVisitPromise();\n }\n\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.#resolveVisitPromise();\n }\n\n async requestFailedWithResponse(request, response) {\n await this.loadResponse(response);\n this.#resolveVisitPromise();\n }\n\n requestErrored(request, error) {\n console.error(error);\n this.#resolveVisitPromise();\n }\n\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n\n // Form submission delegate\n\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.#findFrameElement(formElement));\n }\n\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.#findFrameElement(formSubmission.formElement, formSubmission.submitter);\n\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, getVisitAction(formSubmission.submitter, formSubmission.formElement, frame));\n frame.delegate.loadResponse(response);\n\n if (!formSubmission.isSafe) {\n session.clearCache();\n }\n }\n\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n session.clearCache();\n }\n\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.#findFrameElement(formElement));\n }\n\n // View delegate\n\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: { newFrame, ...options },\n cancelable: true\n });\n\n const {\n defaultPrevented,\n detail: { render }\n } = event;\n\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n\n return !defaultPrevented\n }\n\n viewRenderedSnapshot(_snapshot, _isPreview, _renderMethod) {}\n\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n\n viewInvalidated() {}\n\n // Frame renderer delegate\n\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n\n visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n\n delete this.previousFrameElement;\n }\n\n // Private\n\n async #loadFrameResponse(fetchResponse, document) {\n const newFrameElement = await this.extractForeignFrameElement(document.body);\n const rendererClass = this.#shouldMorphFrame ? MorphingFrameRenderer : FrameRenderer;\n\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new rendererClass(this, this.view.snapshot, snapshot, false, false);\n if (this.view.renderPromise) await this.view.renderPromise;\n this.changeHistory();\n\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n await this.fetchResponseLoaded(fetchResponse);\n } else if (this.#willHandleFrameMissingFromResponse(fetchResponse)) {\n this.#handleFrameMissingFromResponse(fetchResponse);\n }\n }\n\n async #visit(url) {\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n\n this.#currentFetchRequest?.cancel();\n this.#currentFetchRequest = request;\n\n return new Promise((resolve) => {\n this.#resolveVisitPromise = () => {\n this.#resolveVisitPromise = () => {};\n this.#currentFetchRequest = null;\n resolve();\n };\n request.perform();\n })\n }\n\n #navigateFrame(element, url, submitter) {\n const frame = this.#findFrameElement(element, submitter);\n\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, getVisitAction(submitter, element, frame));\n\n this.#withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n\n proposeVisitIfNavigatedWithAction(frame, action = null) {\n this.action = action;\n\n if (this.action) {\n const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n const { visitCachedSnapshot } = frame.delegate;\n\n frame.delegate.fetchResponseLoaded = async (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = await fetchResponse.responseHTML;\n const response = { statusCode, redirected, responseHTML };\n const options = {\n response,\n visitCachedSnapshot,\n willRender: false,\n updateHistory: false,\n restorationIdentifier: this.restorationIdentifier,\n snapshot: pageSnapshot\n };\n\n if (this.action) options.action = this.action;\n\n session.visit(frame.src, options);\n }\n };\n }\n }\n\n changeHistory() {\n if (this.action) {\n const method = getHistoryMethodForAction(this.action);\n session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n }\n }\n\n async #handleUnvisitableFrameResponse(fetchResponse) {\n console.warn(\n `The response (${fetchResponse.statusCode}) from is performing a full page visit due to turbo-visit-control.`\n );\n\n await this.#visitResponse(fetchResponse.response);\n }\n\n #willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n\n const response = fetchResponse.response;\n const visit = async (url, options) => {\n if (url instanceof Response) {\n this.#visitResponse(url);\n } else {\n session.visit(url, options);\n }\n };\n\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true\n });\n\n return !event.defaultPrevented\n }\n\n #handleFrameMissingFromResponse(fetchResponse) {\n this.view.missing();\n this.#throwFrameMissingError(fetchResponse);\n }\n\n #throwFrameMissingError(fetchResponse) {\n const message = `The response (${fetchResponse.statusCode}) did not contain the expected and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n throw new TurboFrameMissingError(message)\n }\n\n async #visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n\n return session.visit(location, { response: { redirected, statusCode, responseHTML } })\n }\n\n #findFrameElement(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return getFrameElementById(id) ?? this.element\n }\n\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element\n }\n\n element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n if (element) {\n await element.loaded;\n return await this.extractForeignFrameElement(element)\n }\n } catch (error) {\n console.error(error);\n return new FrameElement()\n }\n\n return null\n }\n\n #formActionIsVisitable(form, submitter) {\n const action = getAction$1(form, submitter);\n\n return locationIsVisitable(expandURL(action), this.rootLocation)\n }\n\n #shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n\n if (element instanceof HTMLFormElement && !this.#formActionIsVisitable(element, submitter)) {\n return false\n }\n\n if (!this.enabled || id == \"_top\") {\n return false\n }\n\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled\n }\n }\n\n if (!session.elementIsNavigatable(element)) {\n return false\n }\n\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false\n }\n\n return true\n }\n\n // Computed properties\n\n get id() {\n return this.element.id\n }\n\n get enabled() {\n return !this.element.disabled\n }\n\n get sourceURL() {\n if (this.element.src) {\n return this.element.src\n }\n }\n\n set sourceURL(sourceURL) {\n this.#ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL ?? null;\n });\n }\n\n get loadingStyle() {\n return this.element.loading\n }\n\n get isLoading() {\n return this.formSubmission !== undefined || this.#resolveVisitPromise() !== undefined\n }\n\n get complete() {\n return this.element.hasAttribute(\"complete\")\n }\n\n set complete(value) {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n } else {\n this.element.removeAttribute(\"complete\");\n }\n }\n\n get isActive() {\n return this.element.isActive && this.#connected\n }\n\n get rootLocation() {\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = meta?.content ?? \"/\";\n return expandURL(root)\n }\n\n #isIgnoringChangesTo(attributeName) {\n return this.#ignoredAttributes.has(attributeName)\n }\n\n #ignoringChangesToAttribute(attributeName, callback) {\n this.#ignoredAttributes.add(attributeName);\n callback();\n this.#ignoredAttributes.delete(attributeName);\n }\n\n #withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\n\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element\n }\n }\n}\n\nfunction activateElement(element, currentURL) {\n if (element) {\n const src = element.getAttribute(\"src\");\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(`Matching element has a source URL which references itself`)\n }\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element\n }\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => e.parentElement?.insertBefore(this.templateContent, e.nextSibling));\n },\n\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n\n before() {\n this.targetElements.forEach((e) => e.parentElement?.insertBefore(this.templateContent, e));\n },\n\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n\n replace() {\n const method = this.getAttribute(\"method\");\n\n this.targetElements.forEach((targetElement) => {\n if (method === \"morph\") {\n morphElements(targetElement, this.templateContent);\n } else {\n targetElement.replaceWith(this.templateContent);\n }\n });\n },\n\n update() {\n const method = this.getAttribute(\"method\");\n\n this.targetElements.forEach((targetElement) => {\n if (method === \"morph\") {\n morphChildren(targetElement, this.templateContent);\n } else {\n targetElement.innerHTML = \"\";\n targetElement.append(this.templateContent);\n }\n });\n },\n\n refresh() {\n session.refresh(this.baseURI, this.requestId);\n }\n};\n\n// ...\n\n/**\n * Renders updates to the page from a stream of messages.\n *\n * Using the `action` attribute, this can be configured one of eight ways:\n *\n * - `after` - inserts the result after the target\n * - `append` - appends the result to the target\n * - `before` - inserts the result before the target\n * - `prepend` - prepends the result to the target\n * - `refresh` - initiates a page refresh\n * - `remove` - removes the target\n * - `replace` - replaces the outer HTML of the target\n * - `update` - replaces the inner HTML of the target\n *\n * @customElement turbo-stream\n * @example\n * \n * \n * Content to append to target designated with the dom_id.\n * \n * \n */\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n\n async connectedCallback() {\n try {\n await this.render();\n } catch (error) {\n console.error(error);\n } finally {\n this.disconnect();\n }\n }\n\n async render() {\n return (this.renderPromise ??= (async () => {\n const event = this.beforeRenderEvent;\n\n if (this.dispatchEvent(event)) {\n await nextRepaint();\n await event.detail.render(this);\n }\n })())\n }\n\n disconnect() {\n try {\n this.remove();\n // eslint-disable-next-line no-empty\n } catch {}\n }\n\n /**\n * Removes duplicate children (by ID)\n */\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n\n /**\n * Gets the list of duplicate children (i.e. those with the same ID)\n */\n get duplicateChildren() {\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.getAttribute(\"id\"));\n const newChildrenIds = [...(this.templateContent?.children || [])].filter((c) => !!c.getAttribute(\"id\")).map((c) => c.getAttribute(\"id\"));\n\n return existingChildren.filter((c) => newChildrenIds.includes(c.getAttribute(\"id\")))\n }\n\n /**\n * Gets the action function to be performed.\n */\n get performAction() {\n if (this.action) {\n const actionFunction = StreamActions[this.action];\n if (actionFunction) {\n return actionFunction\n }\n this.#raise(\"unknown action\");\n }\n this.#raise(\"action attribute is missing\");\n }\n\n /**\n * Gets the target elements which the template will be rendered to.\n */\n get targetElements() {\n if (this.target) {\n return this.targetElementsById\n } else if (this.targets) {\n return this.targetElementsByQuery\n } else {\n this.#raise(\"target or targets attribute is missing\");\n }\n }\n\n /**\n * Gets the contents of the main ``.\n */\n get templateContent() {\n return this.templateElement.content.cloneNode(true)\n }\n\n /**\n * Gets the main `` used for rendering\n */\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template\n } else if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild\n }\n this.#raise(\"first child element must be a element\");\n }\n\n /**\n * Gets the current action.\n */\n get action() {\n return this.getAttribute(\"action\")\n }\n\n /**\n * Gets the current target (an element ID) to which the result will\n * be rendered.\n */\n get target() {\n return this.getAttribute(\"target\")\n }\n\n /**\n * Gets the current \"targets\" selector (a CSS selector)\n */\n get targets() {\n return this.getAttribute(\"targets\")\n }\n\n /**\n * Reads the request-id attribute\n */\n get requestId() {\n return this.getAttribute(\"request-id\")\n }\n\n #raise(message) {\n throw new Error(`${this.description}: ${message}`)\n }\n\n get description() {\n return (this.outerHTML.match(/<[^>]+>/) ?? [])[0] ?? \"\"\n }\n\n get beforeRenderEvent() {\n return new CustomEvent(\"turbo:before-stream-render\", {\n bubbles: true,\n cancelable: true,\n detail: { newStream: this, render: StreamElement.renderElement }\n })\n }\n\n get targetElementsById() {\n const element = this.ownerDocument?.getElementById(this.target);\n\n if (element !== null) {\n return [element]\n } else {\n return []\n }\n }\n\n get targetElementsByQuery() {\n const elements = this.ownerDocument?.querySelectorAll(this.targets);\n\n if (elements.length !== 0) {\n return Array.prototype.slice.call(elements)\n } else {\n return []\n }\n }\n}\n\nclass StreamSourceElement extends HTMLElement {\n streamSource = null\n\n connectedCallback() {\n this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n\n connectStreamSource(this.streamSource);\n }\n\n disconnectedCallback() {\n if (this.streamSource) {\n this.streamSource.close();\n\n disconnectStreamSource(this.streamSource);\n }\n }\n\n get src() {\n return this.getAttribute(\"src\") || \"\"\n }\n}\n\nFrameElement.delegateConstructor = FrameController;\n\nif (customElements.get(\"turbo-frame\") === undefined) {\n customElements.define(\"turbo-frame\", FrameElement);\n}\n\nif (customElements.get(\"turbo-stream\") === undefined) {\n customElements.define(\"turbo-stream\", StreamElement);\n}\n\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n let element = document.currentScript;\n if (!element) return\n if (element.hasAttribute(\"data-turbo-suppress-warning\")) return\n\n element = element.parentElement;\n while (element) {\n if (element == document.body) {\n return console.warn(\n unindent`\n You are loading Turbo from a \n","\n \n \n \n \n \n {{ title }}\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link max} function options.\n */\n\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dates - The dates to compare\n *\n * @returns The latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport function max(dates, options) {\n let result;\n let context = options?.in;\n\n dates.forEach((date) => {\n // Use the first date object as the context function\n if (!context && typeof date === \"object\")\n context = constructFrom.bind(null, date);\n\n const date_ = toDate(date, context);\n if (!result || result < date_ || isNaN(+date_)) result = date_;\n });\n\n return constructFrom(context, result || NaN);\n}\n\n// Fallback for modularized imports:\nexport default max;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfDay} function options.\n */\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfMonth} function options.\n */\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { addLeadingZeros } from \"./_lib/addLeadingZeros.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in local time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nexport function formatISO(date, options) {\n const date_ = toDate(date, options?.in);\n\n if (isNaN(+date_)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = addLeadingZeros(date_.getDate(), 2);\n const month = addLeadingZeros(date_.getMonth() + 1, 2);\n const year = addLeadingZeros(date_.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = date_.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);\n const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = addLeadingZeros(date_.getHours(), 2);\n const minute = addLeadingZeros(date_.getMinutes(), 2);\n const second = addLeadingZeros(date_.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n\n// Fallback for modularized imports:\nexport default formatISO;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n return +toDate(leftDate) === +toDate(rightDate);\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * @param date - The date to check\n *\n * @returns The date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * const result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nexport function isFuture(date) {\n return +toDate(date) > Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isFuture;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n laterDate_.getMonth() === earlierDate_.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameYear} function options.\n */\n\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport function isSameYear(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() === earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default isSameYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isWithinInterval} function options.\n */\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param date - The date to check\n * @param interval - The interval to check\n * @param options - An object with options\n *\n * @returns The date is within the interval\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => false\n *\n * @example\n * // For date equal to the interval start:\n * isWithinInterval(date, { start, end: date })\n * // => true\n *\n * @example\n * // For date equal to the interval end:\n * isWithinInterval(date, { start: date, end })\n * // => true\n */\nexport function isWithinInterval(date, interval, options) {\n const time = +toDate(date, options?.in);\n const [startTime, endTime] = [\n +toDate(interval.start, options?.in),\n +toDate(interval.end, options?.in),\n ].sort((a, b) => a - b);\n\n return time >= startTime && time <= endTime;\n}\n\n// Fallback for modularized imports:\nexport default isWithinInterval;\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const invalidDate = () => constructFrom(options?.in, NaN);\n\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(+date)) return invalidDate();\n\n const timestamp = +date;\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) return invalidDate();\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) return invalidDate();\n } else {\n const tmpDate = new Date(timestamp + time);\n const result = toDate(0, options?.in);\n result.setFullYear(\n tmpDate.getUTCFullYear(),\n tmpDate.getUTCMonth(),\n tmpDate.getUTCDate(),\n );\n result.setHours(\n tmpDate.getUTCHours(),\n tmpDate.getUTCMinutes(),\n tmpDate.getUTCSeconds(),\n tmpDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setYear} function options.\n */\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year, options) {\n const date_ = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+date_)) return constructFrom(options?.in || date, NaN);\n\n date_.setFullYear(year);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","/*!\n * pinia v3.0.1\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","import { rails_fetch } from '../../../../util/rails_fetch'\n\nimport { BankReconciliation, BankTransaction, Match, Posting } from '../module'\nimport { formatISO } from 'date-fns'\n\nexport default {\n async match(\n bankReconciliation: BankReconciliation,\n bankTransactions: Array,\n postings: Array,\n ) {\n const path = `/${(window as any).current_company_id}/bank_accounts/${bankReconciliation.bankAccountId}/bank_transactions/match`\n let response = await rails_fetch(path, {\n method: 'PATCH',\n body: JSON.stringify({\n posting_ids: postings.map((posting) => {\n return posting.id\n }),\n bank_transaction_ids: bankTransactions.map((bankTransaction) => {\n return bankTransaction.id\n }),\n period: formatISO(bankReconciliation.beginningOn),\n }),\n })\n\n if (response.status != 200) {\n window.location.reload()\n }\n\n return response\n },\n\n async unMatch(bankReconciliation: BankReconciliation, match: Match) {\n const path = `/${(window as any).current_company_id}/bank_reconciliation_matches/${match.id}`\n return await rails_fetch(path, {\n method: 'DELETE',\n })\n },\n\n async setReconciled(bankReconciliation: BankReconciliation, reconciled: boolean) {\n if (reconciled) {\n const path = `/${(window as any).current_company_id}/bank_reconciliations/${bankReconciliation.id}/reconcile`\n return await rails_fetch(path, {\n method: 'PATCH',\n })\n } else {\n const path = `/${(window as any).current_company_id}/bank_reconciliations/${bankReconciliation.id}/reopen`\n return await rails_fetch(path, {\n method: 'PATCH',\n body: JSON.stringify({ force_all_reopen: true }),\n })\n }\n },\n}\n","import { BankReconciliation } from '../module'\nimport { formatISO } from 'date-fns'\nimport { rails_fetch } from '../../../../util/rails_fetch'\n\nexport default {\n async create(bankReconciliation: BankReconciliation, postingOn: Date, amountCents: Number, type: String) {\n const path = `/${(window as any).current_company_id}/bank_reconciliations/${bankReconciliation.id}/bank_reconciliation_line_items`\n return await rails_fetch(path, {\n method: 'POST',\n body: JSON.stringify({\n bank_reconciliation_line_item_form_object_base: {\n posting_date: formatISO(postingOn, { representation: 'date' }),\n amount_cents: amountCents,\n type: type,\n skip_transaction_matching: true,\n },\n }),\n })\n },\n async destroy(bankReconciliationLineItemId: String) {\n const path = `/${(window as any).current_company_id}/bank_reconciliation_line_items/${bankReconciliationLineItemId}`\n return await rails_fetch(path, {\n method: 'DELETE',\n })\n },\n}\n","import { rails_fetch } from '../../../../util/rails_fetch'\n\nexport default {\n async match_payments_index(accountId: String, companyId: String, bankTransactionId: String) {\n const url = `/${companyId}/bank_accounts/${accountId}/bank_reconciliations/match_payments_index.json?bank_transaction_id=${bankTransactionId}&no_payment=true`\n return await rails_fetch(url)\n },\n\n async customer_invoices(accountId: String, companyId: String, bankTransactionId: String) {\n const url = `/${companyId}/bank_accounts/${accountId}/bank_reconciliations/sale_invoices?bank_transaction_id=${bankTransactionId}`\n return await rails_fetch(url)\n },\n}\n","import BankReconciliationService from '../services/BankReconciliationService'\nimport {\n BankReconciliation,\n BankTransaction,\n BankTransactionAndElem,\n Match,\n Posting,\n PostingAndCardElem,\n SuggestedMatch,\n} from '../module'\nimport BankReconciliationLineItemService from '../services/BankReconciliationLineItemService'\nimport CustomerInvoiceService from '../services/CustomerInvoiceService'\nimport { defineStore } from 'pinia'\nimport { i18n } from '../../../../libraries/i18n'\n\nexport const useBankReconciliationStore = defineStore('bankReconciliation', {\n state: () => ({\n bankReconciliation: null as BankReconciliation,\n showReconnectIntegrationNotification: false,\n showDataInProgressAlert: false,\n reconnectIntegrationLink: null,\n matchedItems: [],\n suggestedMatchings: {\n postingToBankTransaction: [] as Array,\n bankTransactionToPosting: [] as Array,\n },\n postings: [],\n bankStatementItems: [],\n // unpaidCustomerInvoices is HTML of a invoice table if there are available unpaid invoices\n unpaidCustomerInvoices: undefined,\n // allCustomerInvoices is HTML of a invoice table if there are invoices\n allCustomerInvoices: undefined,\n selectedPostings: [] as Array,\n selectedBankTransactions: [] as Array,\n matchCardBounds: { top: 0, left: 0, height: 0, width: 0 },\n selectedPostingId: null,\n }),\n actions: {\n togglePosting(selected: boolean, posting: Posting, cardElem: Element) {\n if (selected) {\n let elem = { posting, cardElem }\n this.selectedPostings.push(elem)\n } else {\n this.selectedPostings.splice(\n this.selectedPostings.findIndex((item) => item.posting.id === posting.id),\n 1,\n )\n }\n },\n toggleBankStatement(selected: boolean, bankStatementItem: BankTransaction, cardElem: Element) {\n if (selected) {\n this.selectedBankTransactions.push({ bankStatementItem, cardElem })\n } else {\n this.selectedBankTransactions.splice(\n this.selectedBankTransactions.findIndex((item) => item.bankStatementItem.id === bankStatementItem.id),\n 1,\n )\n }\n },\n async match() {\n const postings = this.selectedPostings.map((item) => {\n return item.posting\n })\n const bankTransactions = this.selectedBankTransactions.map((item) => {\n return item.bankStatementItem\n })\n\n const result = await BankReconciliationService.match(this.bankReconciliation, bankTransactions, postings)\n\n let data = await result.json()\n\n this.matchedItems.push({\n id: data.id,\n postings: postings,\n bankTransactions: bankTransactions,\n })\n\n this.selectedPostings.forEach((posting) => {\n this.postings.splice(\n this.postings.findIndex((item) => item.id === posting.posting.id),\n 1,\n )\n })\n\n this.selectedBankTransactions.forEach((bankTransaction) => {\n this.bankStatementItems.splice(\n this.bankStatementItems.findIndex((item) => item.id === bankTransaction.bankStatementItem.id),\n 1,\n )\n })\n this.selectedPostings = []\n this.selectedBankTransactions = []\n },\n\n async unMatch(payload: Match) {\n await BankReconciliationService.unMatch(this.bankReconciliation, payload)\n this.matchedItems.splice(\n this.matchedItems.findIndex((item) => item.id === payload.id),\n 1,\n )\n this.postings.push(...payload.postings)\n this.bankStatementItems.push(...payload.bankTransactions)\n },\n async fetchUnpaidCustomerInvoices(bankTransactionId: string) {\n const ans = await CustomerInvoiceService.match_payments_index(\n this.bankReconciliation.bankAccountId,\n this.bankReconciliation.companyId,\n bankTransactionId,\n )\n\n let data = await ans.json()\n this.unpaidCustomerInvoices = data.html\n },\n async fetchAllCustomerInvoices(bankTransactionId: string) {\n const ans = await CustomerInvoiceService.customer_invoices(\n this.bankReconciliation.bankAccountId,\n this.bankReconciliation.companyId,\n bankTransactionId,\n )\n let data = await ans.json()\n this.allCustomerInvoices = data.html\n },\n async setReconciled(reconciled: boolean) {\n await BankReconciliationService.setReconciled(this.bankReconciliation, reconciled)\n this.bankReconciliation.finalized = reconciled\n if (!reconciled) {\n this.bankReconciliation.canBeReconciled = true\n }\n },\n async addFeeOrInterest(postingOn: Date, amountCents: number, type: string) {\n const ans = await BankReconciliationLineItemService.create(this.bankReconciliation, postingOn, amountCents, type)\n\n let data = await ans.json()\n\n const newPosting = {\n id: data.id,\n postingDate: postingOn,\n description: i18n.t(`posting.source_description.bank_reconciliation.${type}`),\n amountCents: type == 'fee' ? -amountCents : amountCents,\n destroyable: true,\n }\n\n this.postings.push(newPosting)\n\n return newPosting\n },\n async addFeeOrInterestAndMatchItem(\n bankStatementItem: BankTransaction,\n postingOn: Date,\n amountCents: number,\n type: string,\n ) {\n let feeOrInterestPosting = await this.addFeeOrInterest(postingOn, Math.abs(amountCents), type)\n\n this.togglePosting(true, feeOrInterestPosting, null)\n this.toggleBankStatement(true, bankStatementItem, null)\n\n await this.match()\n },\n async destroyPosting(posting: Posting) {\n let res = await BankReconciliationLineItemService.destroy(posting.id)\n\n this.selectedPostings = []\n\n this.postings.splice(\n this.postings.findIndex((item) => item.id === posting.id),\n 1,\n )\n\n // if posting was reversed then we display reversed posting and match it with the original one\n let data = await res.json()\n if (data.status == 'ok' && data.reversed) {\n const reversedPosting = {\n id: data.id,\n postingDate: posting.postingDate,\n description: i18n.t('posting.reverse.description'),\n amountCents: -posting.amountCents,\n destroyable: false,\n }\n\n posting.destroyable = false\n this.postings.push(posting)\n this.postings.push(reversedPosting)\n\n this.togglePosting(true, reversedPosting, null)\n this.togglePosting(true, posting, null)\n\n await this.match()\n }\n },\n },\n getters: {\n showMatchButton(): boolean {\n const postingsLength = this.selectedPostings.length\n const bankTransactionsLength = this.selectedBankTransactions.length\n switch (postingsLength) {\n case 0:\n return false\n case 1:\n return bankTransactionsLength > 0\n default:\n return true\n }\n },\n selectedPostingCards(): Element[] {\n return this.selectedPostings.map((item) => {\n return item.cardElem\n })\n },\n selectedBankTransactionCards(): Element[] {\n return this.selectedBankTransactions.map((item) => {\n return item.cardElem\n })\n },\n selectedPostingSum(): number {\n return this.selectedPostings.reduce((a, b) => a + b.posting.amountCents, 0)\n },\n selectedBankTransactionSum(): number {\n return this.selectedBankTransactions.reduce((a, b) => a + b.bankStatementItem.amountCents, 0)\n },\n postingsSum(): number {\n const active = this.postings.reduce((a: number, b: Posting) => a + b.amountCents, 0)\n\n return (\n active +\n this.matchedItems.reduce((sum: number, match: Match) => {\n return (\n sum +\n match.postings.reduce((sumInner: number, b: Posting) => {\n return sumInner + b.amountCents\n }, 0)\n )\n }, 0)\n )\n },\n bankTransactionsSum(): number {\n const active = this.bankStatementItems.reduce((a: number, b: BankTransaction) => a + b.amountCents, 0)\n\n return (\n active +\n this.matchedItems.reduce((sum: number, match: Match) => {\n return (\n sum +\n match.bankTransactions.reduce((sumInner: number, b: BankTransaction) => {\n return sumInner + b.amountCents\n }, 0)\n )\n }, 0)\n )\n },\n monthFinished(): boolean {\n return true\n },\n reconciledState(): string {\n if (this.bankReconciliation?.finalized) {\n return 'Reconciled'\n }\n if (this.postings.length > 0 || this.bankStatementItems.length > 0) {\n return 'OpenItems'\n }\n return 'ReadyForReconciliation'\n },\n bankTransactionSuggestedMatch(): SuggestedMatch {\n // We only return suggestions if a single posting is chosen\n if (this.selectedPostings.length !== 1) {\n return {\n id: '',\n candidates: [],\n }\n } else {\n let suggestions = this.suggestedMatchings.postingToBankTransaction.find(\n (suggestion) => suggestion.id === this.selectedPostings[0].posting.id,\n )\n if (!suggestions) {\n return {\n id: '',\n candidates: [],\n }\n } else {\n return suggestions\n }\n }\n },\n postingSuggestedMatch(): SuggestedMatch {\n // We only return suggestions if a single bank transaction is chosen\n if (this.selectedBankTransactions.length !== 1) {\n return {\n id: '',\n candidates: [],\n }\n } else {\n let suggestions = this.suggestedMatchings.bankTransactionToPosting.find(\n (suggestion) => suggestion.id === this.selectedBankTransactions[0].bankStatementItem.id,\n )\n if (!suggestions) {\n return {\n id: '',\n candidates: [],\n }\n } else {\n return suggestions\n }\n }\n },\n },\n})\n","\n \n \n \n \n \n {{ this.quantity }} {{ str }}\n \n\n\n","\n \n {{ suggestionList.length }}\n {{ i18n().t('automatic_bank_reconciliation.v2.suggestion_found', { count: suggestionList.length }) }}\n \n \n\n\n\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre enn ett sekund\",\n other: \"mindre enn {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"ett sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"et halvt minutt\",\n\n lessThanXMinutes: {\n one: \"mindre enn ett minutt\",\n other: \"mindre enn {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"ett minutt\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"omtrent en time\",\n other: \"omtrent {{count}} timer\",\n },\n\n xHours: {\n one: \"en time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"en dag\",\n other: \"{{count}} dager\",\n },\n\n aboutXWeeks: {\n one: \"omtrent en uke\",\n other: \"omtrent {{count}} uker\",\n },\n\n xWeeks: {\n one: \"en uke\",\n other: \"{{count}} uker\",\n },\n\n aboutXMonths: {\n one: \"omtrent en måned\",\n other: \"omtrent {{count}} måneder\",\n },\n\n xMonths: {\n one: \"en måned\",\n other: \"{{count}} måneder\",\n },\n\n aboutXYears: {\n one: \"omtrent ett år\",\n other: \"omtrent {{count}} år\",\n },\n\n xYears: {\n one: \"ett år\",\n other: \"{{count}} år\",\n },\n\n overXYears: {\n one: \"over ett år\",\n other: \"over {{count}} år\",\n },\n\n almostXYears: {\n one: \"nesten ett år\",\n other: \"nesten {{count}} år\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'forrige' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"f.Kr.\", \"e.Kr.\"],\n abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n wide: [\"før Kristus\", \"etter Kristus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mars\",\n \"apr.\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"des.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"mars\",\n \"april\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"desember\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"],\n abbreviated: [\"søn\", \"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"lør\"],\n wide: [\n \"søndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lørdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"på morg.\",\n afternoon: \"på etterm.\",\n evening: \"på kvelden\",\n night: \"på natten\",\n },\n abbreviated: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"på morg.\",\n afternoon: \"på etterm.\",\n evening: \"på kvelden\",\n night: \"på natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"på morgenen\",\n afternoon: \"på ettermiddagen\",\n evening: \"på kvelden\",\n night: \"på natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n wide: /^(før Kristus|før vår tid|etter Kristus|vår tid)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^e/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(sø|ma|ti|on|to|fr|lø)/i,\n abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i,\n};\nconst parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,\n any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a(\\.?\\s?m\\.?)?$/i,\n pm: /^p(\\.?\\s?m\\.?)?$/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgen/i,\n afternoon: /ettermiddag/i,\n evening: /kveld/i,\n night: /natt/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./nb/_lib/formatDistance.js\";\nimport { formatLong } from \"./nb/_lib/formatLong.js\";\nimport { formatRelative } from \"./nb/_lib/formatRelative.js\";\nimport { localize } from \"./nb/_lib/localize.js\";\nimport { match } from \"./nb/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Norwegian Bokmål locale.\n * @language Norwegian Bokmål\n * @iso-639-2 nob\n * @author Hans-Kristian Koren [@Hanse](https://github.com/Hanse)\n * @author Mikolaj Grzyb [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Dag Stuan [@dagstuan](https://github.com/dagstuan)\n */\nexport const nb = {\n code: \"nb\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default nb;\n","import {\n endOfDay,\n endOfMonth,\n endOfYear,\n format,\n isEqual,\n isSameMonth,\n isSameYear,\n startOfMonth,\n startOfYear,\n Interval,\n} from 'date-fns'\nimport { enUS, nb } from 'date-fns/locale'\nimport { i18n } from '../libraries/i18n'\n\nconst locales = { enUS, nb }\n\n// Ensure datefns formatting can work with our locales\n// Based on their suggestion on https://github.com/date-fns/date-fns/blob/master/docs/i18n.md\n// Only really useful for formatting where we spell out names such as MMMM (which would give Februar in Norwegian)\n// For normal formatting you should just use datefns format directly with our I18n such as\n// format(date, i18n.t('date.formats.frontend.datefns.short')) (which will give 31.12.2021 in Norwegian,\n// 12/31/2021 in English)\nexport default function (date, formatStr) {\n let localeStr = (window as any).I18n.locale\n localeStr = localeStr.replace('en', 'enUS')\n return format(date, formatStr, { locale: locales[localeStr] })\n}\n\nexport function formatInterval(interval: Interval): string {\n let localeStr = (window as any).I18n.locale\n localeStr = localeStr.replace('en', 'enUS')\n\n if (isExactMonth(interval)) {\n return format(interval.start, 'MMMM yyyy', { locale: locales[localeStr] })\n } else if (isExactYear(interval)) {\n return format(interval.start, 'yyyy', { locale: locales[localeStr] })\n } else {\n return (\n `${format(interval.start, i18n.t('date.formats.frontend.datefns.short'), { locale: locales[localeStr] })} - ` +\n `${format(interval.end, i18n.t('date.formats.frontend.datefns.short'), { locale: locales[localeStr] })}`\n )\n }\n}\n\nfunction isExactMonth(interval: Interval): boolean {\n return (\n isEqual(endOfMonth(interval.end), endOfDay(interval.end)) &&\n isEqual(startOfMonth(interval.start), interval.start) &&\n isSameMonth(interval.start, interval.end)\n )\n}\n\nfunction isExactYear(interval: Interval): boolean {\n return (\n isEqual(endOfYear(interval.end), endOfDay(interval.end)) &&\n isEqual(startOfYear(interval.start), interval.start) &&\n isSameYear(interval.start, interval.end)\n )\n}\n","\n \n \n {{ i18n().t('bank_transaction.transaction_to_match') }}\n \n \n \n \n {{ i18n().t('bank_transaction.description_text') }}\n \n \n \n \n \n {{ i18n().t('bank_transaction.payment_date') }}\n {{ date() }}\n \n \n\n \n \n {{ i18n().t('bank_transaction.amount_field') }}\n \n \n \n \n \n \n {{ i18n().t('bank_transaction.possible_matches.header') }}\n \n \n\n \n {{ i18n().t('bank_transaction.possible_matches.body') }}\n \n {{ i18n().t('bank_transaction.possible_matches.show_all_invoices') }}\n \n \n \n \n \n \n {{ i18n().t('bank_transaction.link') }}\n \n {{ i18n().t('bank_transaction.no_matches_bottom') }}\n \n {{ i18n().t('bank_transaction.showing_all_invoices.set_as_paid') }}\n \n \n \n \n \n {{ i18n().t('bank_transaction.showing_all_invoices.body_top') }}\n\n \n {{ i18n().t('bank_transaction.showing_all_invoices.link') }}\n \n {{ i18n().t('bank_transaction.showing_all_invoices.body_bottom') }}\n \n {{ i18n().t('bank_transaction.showing_all_invoices.set_as_paid') }}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n\n","\n \n \n \n \n \n \n \n \n\n\n","\n \n \n \n \n \n \n \n \n\n\n\n","import { Popover, Tooltip } from 'bootstrap'\nimport { i18n } from '../../../../libraries/i18n'\n\nexport default function createOrUpdateCandidatePopover(\n element,\n selected: boolean,\n suggestionLevel: string,\n placement: Tooltip.PopoverPlacement,\n) {\n Popover.getOrCreateInstance(element)?.dispose()\n if (!selected && suggestionLevel !== 'none') {\n Popover.getOrCreateInstance(element, {\n container: element,\n content: popoverContent(suggestionLevel, placement == 'left' ? 'right' : 'left'),\n customClass: popoverClass(suggestionLevel),\n html: true,\n trigger: 'manual',\n placement: placement,\n }).show()\n }\n}\n\nfunction popoverClass(suggestionLevel: string): string {\n switch (suggestionLevel) {\n case 'exact':\n case 'very_high':\n return 'popover-success'\n case 'high':\n case 'medium':\n return 'popover-warning'\n default:\n return 'popover-info'\n }\n}\n\nfunction popoverContent(suggestionLevel: string, fingerDirection: string): string {\n let level = i18n.t(suggestionLevel, { scope: 'automatic_bank_reconciliation.v2.suggestion_quality' })\n let suggestion = i18n.t('automatic_bank_reconciliation.v2.suggestion.one')\n let text = `${level} ${suggestion}`\n\n if (fingerDirection === 'left') {\n let icon = ``\n return `${icon} ${text}`\n } else {\n let icon = ``\n return `${text} ${icon}`\n }\n}\n","\n \n \n \n {{ formatDate(header) }}\n \n \n \n \n\n\n\n\n","\n \n \n\n \n \n \n \n {{ i18n().t('bank_reconciliation.manual_journal.title') }}\n \n\n \n \n {{\n bankStatementItem.amountCents < 0\n ? i18n().t('bank_reconciliation.register_as_fee')\n : i18n().t('bank_reconciliation.register_as_interest')\n }}\n \n\n 0\"\n v-on:click=\"openMatchInvoiceModal(bankStatementItem.id)\"\n data-test-id=\"view-button\"\n :id=\"`match-invoice-modal-button-${bankStatementItem.id}`\"\n data-action=\"click->popover#hidePopovers\"\n class=\"d-flex justify-content-between\"\n >\n \n {{ i18n().t('customer_invoice.check_invoices') }}\n \n\n \n \n See transaction\n \n \n \n \n \n\n\n\n\n","\n \n suggestion.id === bankStatementItem.id)\n \"\n :suggestionList=\"postingSuggestedMatch.candidates\"\n @toggleSelect=\"toggleBankStatement\"\n :show-initial-popover=\"index === 0 && matchedItems.length === 0\"\n />\n \n\n\n\n\n","\n \n \n\n \n \n \n \n {{ i18n().t('navigation.delete') }}\n \n \n \n \n\n\n\n\n","\n \n \n candidate.id === posting.id)\"\n @toggleSelect=\"togglePosting\"\n />\n \n \n\n\n\n\n","export function getAbsoluteBoundingRect(elem) {\n let offsetX = window.scrollX,\n offsetY = window.scrollY,\n rect = elem.getBoundingClientRect()\n\n if (elem !== document.body) {\n var parent = elem.parentNode\n\n // The element's rect will be affected by the scroll positions of\n // *all* of its scrollable parents, not just the window, so we have\n // to walk up the tree and collect every scroll offset. Good times.\n while (parent !== document.body) {\n offsetX += parent.scrollLeft\n offsetY += parent.scrollTop\n parent = parent.parentNode\n }\n }\n\n return {\n left: rect.left + offsetX,\n top: rect.top + offsetY,\n width: rect.width,\n height: rect.height,\n }\n}\n\nexport function unionBoundingRect(elems) {\n if (elems.length == 0) {\n return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0 }\n }\n\n let resultRect = getAbsoluteBoundingRect(elems[0])\n let bottom = resultRect.top + resultRect.height\n let right = resultRect.left + resultRect.width\n\n for (let i = 1; i < elems.length; i++) {\n let rect = getAbsoluteBoundingRect(elems[i])\n bottom = Math.max(bottom, rect.top + rect.height)\n right = Math.max(right, rect.left + rect.width)\n resultRect.top = Math.min(resultRect.top, rect.top)\n resultRect.left = Math.min(resultRect.left, rect.left)\n }\n resultRect.height = bottom - resultRect.top\n resultRect.width = right - resultRect.left\n\n return resultRect\n}\n\nexport function unionBoundingRectFromObject(object) {\n const array = Object.keys(object).map(function (key) {\n return object[key]\n })\n return unionBoundingRect(array)\n}\n","\n \n \n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.match_items') }}\n \n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.cant_match') }}\n \n \n \n {{ difference }}\n \n {{ i18n().t('automatic_bank_reconciliation.v2.difference') }}\n \n \n \n\n\n","\n \n \n \n \n \n \n \n \n\n\n","\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.month_not_finished_header', { month: this.month }) }}\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.all_items_reconciled', { month: this.month }) }}\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.you_can_mark_as_reconciled') }}\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.month_not_finished') }}\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.reconcile_previous_months') }}\n \n\n \n \n \n {{ i18n().t('bank_reconciliation.reconcile') }}\n \n \n \n\n\n","\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.click_any_item') }}\n \n \n \n {{ i18n().t('automatic_bank_reconciliation.mass_match') }}\n \n\n \n \n {{ i18n().t('bank_reconciliation.reconcile') }}\n \n \n \n\n\n","\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.all_items_reconciled', { month: this.month }) }}\n \n \n \n \n {{ i18n().t('bank_reconciliation.reopen') }}\n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.are_you_sure_you_want_to_reopen') }}\n \n \n \n {{ reopenText }}\n \n \n \n \n \n\n\n","\n \n \n \n {{ this.month }}\n \n \n \n \n \n \n \n\n\n","\n \n \n \n {{ i18n().t('automatic_bank_reconciliation.v2.unmatch_items') }}\n \n \n\n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","\n \n \n 0\">\n {{ i18n().t('automatic_bank_reconciliation.v2.matched_items') }}\n \n \n \n \n \n \n\n\n\n\n","\n \n \n \n \n {{ header }}\n \n \n \n \n \n \n \n {{ i18n().t('bank_reconciliation.opening_balance') }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ i18n().t('bank_reconciliation.closing_balance') }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","\n \n \n \n \n \n \n \n \n\n\n\n","\n \n \n {{ i18n().t('bank_transaction.in_progress.body', { days: daysBeforeFinalization() }) }}\n \n \n \n\n\n","\n \n \n \n {{ i18n().t('automatic_bank_reconciliation.page_header') }}\n \n \n \n \n {{ i18n().t('navigation.back') }}\n \n \n \n {{ i18n().t('navigation.more') }}\n \n \n \n \n \n {{ i18n().t('export_data.button') }}\n \n \n \n \n \n {{ i18n().t('bank_reconciliation.change_type.change_to_manual') }}\n \n \n \n \n \n \n {{ i18n().t('automatic_bank_reconciliation.page_description') }}\n \n \n \n {{ bankAccountName }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import { createApp, App } from 'vue'\nimport BankReconciliationApp from './components/App.vue'\nimport { parseISO } from 'date-fns'\nimport { createPinia } from 'pinia'\nimport { useBankReconciliationStore } from './store'\n\nexport default (data): App => {\n const pinia = createPinia()\n\n const app = createApp(BankReconciliationApp)\n app.use(pinia)\n\n const store = useBankReconciliationStore()\n store.postings = []\n data.postings.forEach((posting) => {\n posting.postingDate = parseISO(posting.postingDate)\n store.postings.push(posting)\n })\n store.bankStatementItems = []\n data.bankTransactions.forEach((bankTransaction) => {\n bankTransaction.transactionOn = parseISO(bankTransaction.transactionOn)\n store.bankStatementItems.push(bankTransaction)\n })\n store.bankReconciliation = data.bankReconciliation\n store.showReconnectIntegrationNotification = data.showReconnectIntegrationNotification\n store.reconnectIntegrationLink = data.reconnectIntegrationLink\n store.bankReconciliation.beginningOn = parseISO(data.bankReconciliation.beginningOn)\n store.bankReconciliation.endingOn = parseISO(data.bankReconciliation.endingOn)\n store.bankReconciliation.finalizedTransactionsOn = parseISO(data.bankReconciliation.finalizedTransactionsOn)\n store.showDataInProgressAlert = data.showDataInProgressAlert\n\n store.selectedPostingId = data.selectedPostingId\n\n store.matchedItems = []\n data.matchedItems.forEach((item) => {\n item.postings.forEach((posting) => {\n posting.postingDate = parseISO(posting.postingDate)\n })\n item.bankTransactions.forEach((bankTransaction) => {\n bankTransaction.transactionOn = parseISO(bankTransaction.transactionOn)\n })\n store.matchedItems.push(item)\n })\n store.suggestedMatchings = data.suggestedMatchings\n\n return app\n}\n","\n \n \n \n \n \n {{ linkText() }} \n \n {{ hint }}\n \n \n \n\n\n\n","\n \n {{ code() }}\n {{ account.description }}\n \n\n\n\n","\n \n {{ description() }}\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","\n \n \n \n \n \n\n\n\n","\n \n \n \n \n \n\n\n\n","import { rails_fetch } from '../../../util/rails_fetch'\n\nexport default {\n async pullAccounts(favorite, searchValue, filters, abortSignal): Promise | null> {\n let url = `/${(window as any).current_company_id}/accounts/search.json?favourite=${favorite}&group=true`\n\n if (searchValue) {\n url += `&term=${searchValue}`\n }\n\n const purchaseType = () => {\n const purchase_type_selector = document.querySelector('#supplier_invoice_purchase_type') as HTMLSelectElement\n\n if (purchase_type_selector && filters.onlyAccrual != true) {\n return (purchase_type_selector[purchase_type_selector.selectedIndex] as HTMLOptionElement).value\n }\n return null\n }\n\n if (filters.onlyDepreciationAccounts) {\n url += `&only_depreciation_accounts=true`\n }\n if (filters.onlyBalanceAccounts) {\n url += `&only_balance_accounts=true`\n }\n if (filters.onlyCostAccounts) {\n url += `&only_cost_accounts=true`\n }\n if (filters.onlyWithVatCodes) {\n url += `&only_with_vat_codes=true`\n }\n if (purchaseType()) {\n url += `&purchase_type=${purchaseType()}`\n }\n if (filters.onlyAccrual) {\n url += `&only_accrual=true`\n }\n\n const response = await rails_fetch(url, {\n method: 'GET',\n signal: abortSignal,\n })\n\n if (response.ok) {\n if (searchValue != '' && searchValue != new URL(response.url).searchParams.get('term')) {\n return []\n }\n\n const data = await response.json()\n\n if (data.length === 0) {\n return []\n } else {\n return data[0].text ? data : data[0].children\n }\n } else {\n const data = await response.json()\n console.error(data)\n return []\n }\n },\n}\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n let htmlX = 0;\n let htmlY = 0;\n if (documentElement && !isOffsetParentAnElement && !isFixed) {\n const htmlRect = documentElement.getBoundingClientRect();\n htmlY = htmlRect.top + scroll.scrollTop;\n htmlX = htmlRect.left + scroll.scrollLeft -\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect);\n }\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlX;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlY;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","\n \n \n\n \n \n \n\n \n \n \n \n \n \n {{ i18n().t('account.no_hits', { hits: hits }) }}\n {{\n i18n().t('account.show_all')\n }}\n \n \n {{ i18n().t('bank_transaction.no_match') }}\n \n \n \n 900\"\n :description-header=\"hoverAccount.name\"\n :description-body=\"hoverAccount.description\"\n class=\"col-sm\"\n />\n \n \n \n \n\n\n\n","import { App, createApp } from 'vue'\nimport AccountSelectorApp from './components/App.vue'\nimport { i18n } from '../../libraries/i18n'\n\nexport default (data): App => {\n let showSwitch = true\n let favorite = true\n let placeholder = null\n\n if (data.showSwitch !== undefined) {\n showSwitch = data.showSwitch\n favorite = false\n }\n if (data.attributes['data-placeholder'] !== undefined) {\n placeholder = data.attributes['data-placeholder']\n } else {\n placeholder = i18n.t('account.new_search_placeholder')\n }\n\n return createApp(AccountSelectorApp, {\n attributes: data.attributes,\n initialSelectedAccount: { id: data.selectedAccount.id, name: data.selectedAccount.text },\n filters: {\n onlyDepreciationAccounts: data.onlyDepreciationAccounts,\n onlyBalanceAccounts: data.onlyBalanceAccounts,\n onlyCostAccounts: data.onlyCostAccounts,\n onlyWithVatCodes: data.onlyWithVatCodes,\n onlyAccrual: data.onlyAccrual,\n },\n showSwitch: showSwitch,\n initialFavorite: favorite,\n placeholder: placeholder,\n })\n}\n","\n \n \n {{ label }}\n \n formatted-amount#parseExpression focus->formatted-amount#clear\"\n type=\"text\"\n />\n {{ hint }}\n \n\n\n","\n \n \n \n %\n \n {{ label }}\n \n\n\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.default = {}));\n}(this, (function (exports) { 'use strict';\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n exports.default = english;\n exports.english = english;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.no = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Norwegian = {\n weekdays: {\n shorthand: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"],\n longhand: [\n \"Søndag\",\n \"Mandag\",\n \"Tirsdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lørdag\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ],\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"Uke\",\n scrollTitle: \"Scroll for å endre\",\n toggleTitle: \"Klikk for å veksle\",\n time_24hr: true,\n ordinal: function () {\n return \".\";\n },\n };\n fp.l10ns.no = Norwegian;\n var no = fp.l10ns;\n\n exports.Norwegian = Norwegian;\n exports.default = no;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","var __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};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","const includedEvents = [\n 'onChange',\n 'onClose',\n 'onDestroy',\n 'onMonthChange',\n 'onOpen',\n 'onYearChange',\n];\n// Let's not emit these events by default\nconst excludedEvents = [\n 'onValueUpdate',\n 'onDayCreate',\n 'onParseConfig',\n 'onReady',\n 'onPreCalendarPosition',\n 'onKeyDown',\n];\nexport { includedEvents, excludedEvents };\n","function camelToKebab(string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction arrayify(obj) {\n return obj instanceof Array\n ? obj\n : [obj];\n}\nfunction nullify(value) {\n return (value && value.length)\n ? value\n : null;\n}\nexport { camelToKebab, nullify, arrayify };\n","import flatpickr from 'flatpickr';\nimport { defineComponent, h, nextTick } from 'vue';\nimport { excludedEvents, includedEvents } from './events';\nimport { camelToKebab, nullify, arrayify } from './util';\n// Keep a copy of all events for later use\nconst allEvents = [...includedEvents, ...excludedEvents];\n// Passing these properties in `fp.set()` method will cause flatpickr to trigger some callbacks\nconst configCallbacks = ['locale', 'showMonths'];\nexport default defineComponent({\n name: 'FlatPickr',\n compatConfig: {\n MODE: 3,\n },\n render() {\n return h('input', {\n type: 'text',\n 'data-input': true,\n disabled: this.disabled,\n onInput: this.onInput,\n });\n },\n emits: [\n 'blur',\n 'update:modelValue',\n ...allEvents.map(camelToKebab)\n ],\n props: {\n modelValue: {\n type: [String, Number, Date, Array, null],\n required: true,\n },\n // https://flatpickr.js.org/options/\n config: {\n type: Object,\n default: () => ({\n defaultDate: null,\n wrap: false,\n })\n },\n events: {\n type: Array,\n default: () => includedEvents\n },\n disabled: {\n type: Boolean,\n default: false\n },\n },\n data() {\n return {\n fp: null, //todo make it non-reactive\n };\n },\n mounted() {\n // Return early if flatpickr is already loaded\n /* istanbul ignore if */\n if (this.fp)\n return;\n // Init flatpickr\n this.fp = flatpickr(this.getElem(), this.prepareConfig());\n // Attach blur event\n this.fpInput().addEventListener('blur', this.onBlur);\n // Immediate watch will fail before fp is set,\n // so we need to start watching after mount\n this.$watch('disabled', this.watchDisabled, {\n immediate: true\n });\n },\n methods: {\n prepareConfig() {\n // Don't mutate original object on parent component\n let safeConfig = Object.assign({}, this.config);\n this.events.forEach((hook) => {\n // Respect global callbacks registered via setDefault() method\n let globalCallbacks = flatpickr.defaultConfig[hook] || [];\n // Inject our own method along with user's callbacks\n let localCallback = (...args) => {\n this.$emit(camelToKebab(hook), ...args);\n };\n // Overwrite with merged array\n safeConfig[hook] = arrayify(safeConfig[hook] || []).concat(globalCallbacks, localCallback);\n });\n const onCloseCb = this.onClose.bind(this);\n safeConfig['onClose'] = arrayify(safeConfig['onClose'] || []).concat(onCloseCb);\n // Set initial date without emitting any event\n safeConfig.defaultDate = this.modelValue || safeConfig.defaultDate;\n return safeConfig;\n },\n /**\n * Get the HTML node where flatpickr to be attached\n * Bind on parent element if wrap is true\n */\n getElem() {\n return this.config.wrap ? this.$el.parentNode : this.$el;\n },\n /**\n * Watch for value changed by date-picker itself and notify parent component\n */\n onInput(event) {\n const input = event.target;\n // Let's wait for DOM to be updated\n nextTick().then(() => {\n this.$emit('update:modelValue', nullify(input.value));\n });\n },\n fpInput() {\n return this.fp.altInput || this.fp.input;\n },\n /**\n * Blur event is required by many validation libraries\n */\n onBlur(event) {\n this.$emit('blur', nullify(event.target.value));\n },\n /**\n * Flatpickr does not emit input event in some cases\n */\n onClose(selectedDates, dateStr) {\n this.$emit('update:modelValue', dateStr);\n },\n /**\n * Watch for the disabled property and sets the value to the real input.\n */\n watchDisabled(newState) {\n if (newState) {\n this.fpInput().setAttribute('disabled', '');\n }\n else {\n this.fpInput().removeAttribute('disabled');\n }\n }\n },\n watch: {\n /**\n * Watch for any config changes and redraw date-picker\n */\n config: {\n deep: true,\n handler(newConfig) {\n if (!this.fp)\n return;\n let safeConfig = Object.assign({}, newConfig);\n // Workaround: Don't pass hooks to configs again otherwise\n // previously registered hooks will stop working\n // Notice: we are looping through all events\n // This also means that new callbacks can not be passed once component has been initialized\n allEvents.forEach((hook) => {\n delete safeConfig[hook];\n });\n this.fp.set(safeConfig);\n // Workaround: Allow to change locale dynamically\n configCallbacks.forEach((name) => {\n if (typeof safeConfig[name] !== 'undefined') {\n this.fp.set(name, safeConfig[name]);\n }\n });\n }\n },\n /**\n * Watch for changes from parent component and update DOM\n */\n modelValue(newValue) {\n var _a;\n // Prevent updates if v-model value is same as input's current value\n if (!this.$el || newValue === nullify(this.$el.value))\n return;\n // Notify flatpickr instance that there is a change in value\n (_a = this.fp) === null || _a === void 0 ? void 0 : _a.setDate(newValue, true);\n }\n },\n beforeUnmount() {\n /* istanbul ignore else */\n if (!this.fp)\n return;\n this.fpInput().removeEventListener('blur', this.onBlur);\n this.fp.destroy();\n this.fp = null;\n }\n});\n","\n \n \n {{ label }}\n \n \n \n\n\n","\n \n {{ label }}\n \n \n \n \n \n {{ hint }}\n \n\n\n","\n \n \n \n {{ full_name }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ i18n().t('found_company.share_capital.modal.remove') }}\n \n \n \n \n\n\n","import { rails_fetch } from '../../../../../util/rails_fetch'\n\nimport { Owner } from '../module'\n\nexport default {\n async create(owner: Owner) {\n return await rails_fetch(this.path(owner), {\n method: 'POST',\n body: JSON.stringify({ found_company_owner: owner }),\n })\n },\n async update(owner: Owner) {\n return await rails_fetch(`${this.path(owner)}/${owner.id}`, {\n method: 'PATCH',\n body: JSON.stringify({ found_company_owner: owner }),\n })\n },\n async destroy(owner: Owner) {\n return await rails_fetch(`${this.path(owner)}/${owner.id}`, {\n method: 'DELETE',\n })\n },\n path(owner) {\n return `/found_company/submissions/${owner.found_company_submission_id}/owners`\n },\n}\n","import { rails_fetch } from '../../../../../util/rails_fetch'\n\nexport default {\n async update(params) {\n const url = `/found_company/submissions/${params.found_company_submission.id}`\n\n return await rails_fetch(url, {\n method: 'PATCH',\n body: JSON.stringify(params),\n })\n },\n}\n","/*!\r\n * decimal.js v10.5.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2025 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n inexact, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n // See https://github.com/MikeMcl/decimal.js/pull/217\r\n x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, -1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|bigint|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|bigint|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|bigint|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` (`n` is -1) and `min` (`n` is 1).\r\n */\r\nfunction maxOrMin(Ctor, args, n) {\r\n var k, y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n\r\n // NaN?\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n }\r\n\r\n k = x.cmp(y);\r\n\r\n if (k === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // TODO BigInt str: no need to check for decimal point, exponential form or leading zeros.\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|bigint|Decimal} The y-coordinate.\r\n * x {number|string|bigint|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|bigint|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Infinity or NaN?\r\n if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n if (t === 'string') {\r\n if ((i = v.charCodeAt(0)) === 45) { // minus sign\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n if (i === 43) v = v.slice(1); // plus sign\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n if (t === 'bigint') {\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|bigint|Decimal} The argument of the logarithm.\r\n * y {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n return maxOrMin(this, arguments, -1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n return maxOrMin(this, arguments, 1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The base.\r\n * y {number|string|bigint|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\nexport default Decimal;\r\n","import Decimal from 'decimal.js'\nimport { Exception } from 'sass'\n\n/*\n * Helper method which allows us to accept:\n * - formulas (such as 1 + 1)\n * - norwegian numbers (such as 1234,56)\n * Accepts both . and , as decimal separator and therefore does NOT accept , as thousands separator\n * It returns a \"Decimal\"\n * It returns Decimal NaN if we are not able to parse the syntax. This can be changed by setting error_value\n * * Parts of this code is adopted from https://jorendorff.github.io/calc/docs/calculator-parser.html\n */\n\nexport function parseDecimal(code: string, error_value: Decimal = new Decimal(NaN)): Decimal {\n if (code == null || code.trim() === '') {\n return error_value\n }\n\n try {\n let parser = new Parser(code.replaceAll(/\\s/g, ''))\n let parseTree = parser.parseExpr()\n if (!parser.consumedAll()) {\n const peek = parser.peek()\n if (peek === ',' || peek === '.') {\n // The user has given us numbers with multiple decimal separators, we don`t allow that:\n throw new SyntaxError('multiple decimal separators')\n } else {\n console.log(\"unexpected '\" + parser.peek() + \"' Input value:'\" + code + \"'\")\n }\n }\n return evaluate(parseTree)\n } catch (e) {\n if (e instanceof SyntaxError) {\n return error_value\n } else {\n throw e\n }\n }\n}\n\nfunction evaluate(obj): Decimal {\n switch (obj.type) {\n case 'number':\n return parseNumber(obj.value)\n case '+':\n return evaluate(obj.left).plus(evaluate(obj.right))\n case '-':\n return evaluate(obj.left).minus(evaluate(obj.right))\n case '*':\n return evaluate(obj.left).times(evaluate(obj.right))\n case '/':\n return evaluate(obj.left).div(evaluate(obj.right))\n case 'infix_minus':\n return evaluate(obj.right).times(-1)\n }\n throw new SyntaxError('Unknown object type:' + obj.type)\n}\n\nfunction parseNumber(val): Decimal {\n return new Decimal(val.replace(',', '.'))\n}\n\nfunction isNumber(token) {\n return token !== undefined && token.match(/^\\d+[\\.,]?\\d*$/) !== null\n}\n\nfunction isName(token) {\n return token !== undefined && token.match(/^[A-Za-z]+$/) !== null\n}\n\nfunction tokenize(code: string): string[] {\n let results = []\n let tokenRegExp = /\\s*([A-Za-z]+|\\d+[\\.,]?\\d*|\\S)\\s*/g\n\n let m\n while ((m = tokenRegExp.exec(code)) !== null) results.push(m[1])\n return results\n}\n\nclass Parser {\n position: number\n tokens: string[]\n\n constructor(code) {\n this.position = 0\n this.tokens = tokenize(code)\n }\n\n peek() {\n return this.tokens[this.position]\n }\n\n consume(token) {\n if (token !== this.tokens[this.position]) {\n throw new Error(`Expected ${token} to eq ${this.tokens[this.position]}`)\n }\n this.position++\n }\n\n parsePrimaryExpr() {\n let t = this.peek()\n\n if (isNumber(t)) {\n this.consume(t)\n return { type: 'number', value: t }\n } else if (isName(t)) {\n this.consume(t)\n return { type: 'name', id: t }\n } else if (t === '-') {\n // Poor mans prefix support:\n this.consume(t)\n return { type: 'infix_minus', id: t, right: this.parseExpr() }\n } else if (t === '(') {\n this.consume(t)\n let expr = this.parseExpr()\n if (this.peek() !== ')') throw new SyntaxError('expected )')\n this.consume(')')\n return expr\n } else {\n throw new SyntaxError('expected a number, or parentheses')\n }\n }\n\n parseMulExpr() {\n let expr = this.parsePrimaryExpr()\n let t = this.peek()\n while (t === '*' || t === '/') {\n this.consume(t)\n let rhs = this.parsePrimaryExpr()\n expr = { type: t, left: expr, right: rhs }\n t = this.peek()\n }\n return expr\n }\n\n parseExpr() {\n let expr = this.parseMulExpr()\n let t = this.peek()\n while (t === '+' || t === '-') {\n this.consume(t)\n let rhs = this.parseMulExpr()\n expr = { type: t, left: expr, right: rhs }\n t = this.peek()\n }\n return expr\n }\n\n consumedAll(): boolean {\n return this.position === this.tokens.length\n }\n}\n","import OwnerService from '../../../submissions/edit/services/OwnerService'\nimport SubmissionService from '../../../submissions/edit/services/SubmissionService'\nimport { parseDecimal } from '../../../../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { defineStore } from 'pinia'\n\nexport const useFoundCompanySubmissionStore = defineStore('foundCompanySubmission', {\n state: () => ({\n submission_id: '',\n total_share_capital_cents: 30_000_00,\n company_name: '',\n owners: [],\n }),\n getters: {\n totalAmountCents: (state) => {\n return state.owners.reduce((a, b) => a + b.share_capital_cents, 0)\n },\n totalPercent: (state) => {\n let total_cents = state.owners.reduce(\n (a, b) => parseDecimal(b.share_capital_cents.toString()).plus(a),\n new Decimal(0),\n )\n return total_cents.div(parseDecimal(state.total_share_capital_cents.toString())).times(100).toNumber()\n },\n },\n actions: {\n async setTotalShareCapitalCents(amountCents) {\n let response = await SubmissionService.update({\n found_company_submission: {\n total_share_capital_cents: amountCents,\n id: this.submission_id,\n current_page: 'share_capital',\n },\n })\n\n if (response.status == 200) {\n this.total_share_capital_cents = amountCents\n this.owners.forEach((owner) => {\n owner.share_capital_cents = amountCents * (owner.percent / 100)\n this.updateOwner(owner)\n })\n }\n\n return response\n },\n async addOwner(owner) {\n let responce = await OwnerService.create(owner)\n if (responce.status == 200) {\n let { owner } = await responce.json()\n this.owners.push(owner)\n this.updateOwners()\n }\n\n return responce\n },\n async updateOwner(owner) {\n let responce = await OwnerService.update(owner)\n if (responce.status == 200) {\n let index = this.owners.findIndex((obj, index) => obj.id === owner.id)\n let data = await responce.json()\n this.owners[index] = data.owner\n }\n\n return responce\n },\n async destroyOwner(owner) {\n const ans = await OwnerService.destroy(owner)\n if (ans.status === 200) {\n this.owners.splice(this.owners.indexOf(owner), 1)\n this.updateOwners()\n } else {\n // TODO: Handle errors\n let { errors } = await ans.json()\n console.log(errors)\n }\n },\n updateOwners() {\n let total_amount_cents = this.total_share_capital_cents\n let owner_count = this.owners.length\n this.owners.forEach((owner) => {\n owner.share_capital_cents = total_amount_cents / owner_count\n owner.percent = Number(((owner.share_capital_cents / total_amount_cents) * 100).toFixed(3))\n this.updateOwner(owner)\n })\n },\n async nextStep(payload) {\n let ans = await SubmissionService.update({ commit: 'commit', ...payload })\n if (ans.status == 200) {\n window.location.href = `/found_company/submissions/${payload.found_company_submission.id}/edit`\n }\n },\n },\n})\n","\n \n \n \n \n \n {{ i18n().t(`found_company.share_capital.save`) }}\n \n \n \n \n\n\n","\n \n \n \n\n\n\n\n\n","\n \n \n {{ i18n().t('found_company.share_capital.find_company') }}\n \n \n \n \n {{ `${ownerTemplate.company_name} (org.no: ${ownerTemplate.organisation_number})` }}\n \n \n 1\"\n :ref=\"`signatoryForm${index}`\"\n />\n \n \n {{ i18n().t('found_company.share_capital.add_company_contact') }}\n \n \n \n \n \n {{ i18n().t(`found_company.share_capital.save`) }}\n \n \n \n \n\n\n\n","\n \n \n \n {{ nameLabel() }}\n \n \n \n \n {{ i18n().t('found_company.share_capital.modal.edit') }}\n \n \n \n {{ i18n().t('found_company.share_capital.modal.remove') }}\n \n \n \n \n \n \n \n \n \n \n \n \n {{ i18n().l('number', owner.share_capital_cents / 100, { delimiter: ' ' }) }}\n \n {{ i18n().t('found_company.share_capital.investment') }}\n \n \n \n \n \n \n\n\n","\n \n \n \n {{ i18n().t('found_company.share_capital.page_header') }}\n \n \n \n \n {{ i18n().t('currency.nok') }}\n \n \n \n \n \n \n {{ i18n().t('found_company.share_capital.info_share.title') }}\n \n \n \n \n \n \n \n {{ i18n().t('found_company.share_capital.title', { name: company_name }) }}\n \n \n \n \n \n {{ i18n().t('found_company.share_capital.info_company.title') }}\n \n \n {{ i18n().t('found_company.share_capital.info_company.description') }}\n \n \n \n \n \n \n \n \n {{ i18n().t('found_company.share_capital.total_percent', { percent: percentStr() }) }}\n \n \n {{\n i18n().l('number', totalAmountCents / 100, { delimiter: ' ' })\n }}\n {{ i18n().t('found_company.share_capital.total_investment') }}\n \n \n \n\n \n \n {{ i18n().t('found_company.share_capital.modal.person.title') }}\n \n \n {{ i18n().t('found_company.share_capital.modal.company.title') }}\n \n \n \n \n {{ i18n().t('found_company.continue') }}\n \n \n \n \n \n\n\n\n","import FoundCompanySubmissionApp from './components/App.vue'\nimport { useFoundCompanySubmissionStore } from './store'\nimport { createPinia } from 'pinia'\nimport { App, createApp } from 'vue'\n\nexport default (data): App => {\n const pinia = createPinia()\n\n const app = createApp(FoundCompanySubmissionApp)\n app.use(pinia)\n\n const store = useFoundCompanySubmissionStore()\n\n store.submission_id = data.submission.id\n store.total_share_capital_cents = data.submission.total_share_capital_cents\n store.company_name = data.submission.company_name\n store.owners = data.submission.owners\n\n store.owners.forEach((owner) => {\n owner.percent = Number(((owner.share_capital_cents / store.total_share_capital_cents) * 100).toFixed(3))\n })\n\n return app\n}\n","import TurbolinksAdapter from 'vue-turbolinks'\nimport './../libraries/fontawesome'\nimport { FontAwesomeIcon, FontAwesomeLayers } from '@fortawesome/vue-fontawesome'\nimport Amount from './components/Amount.vue'\nimport BootstrapModal from './components/BootstrapModal.vue'\n\nimport bankReconciliationEdit from './bank_reconciliations/edit/index'\nimport accountSelector from './account_selector/index'\nimport foundCompanyShareCapital from './found_company/submissions/edit/index'\n\nclass VueApp extends HTMLElement {\n constructor() {\n super()\n let App = this.getApp(this.dataset.component)\n let data = JSON.parse(this.dataset.store)\n const app = App(data)\n\n app.component('font-awesome-icon', FontAwesomeIcon)\n app.component('font-awesome-layers', FontAwesomeLayers)\n app.component('amount', Amount)\n app.component('b-modal', BootstrapModal)\n\n app.use(TurbolinksAdapter)\n\n app.mount(this)\n }\n\n getApp(component) {\n let rootComponents = {\n bankReconciliationEdit: bankReconciliationEdit,\n foundCompanyShareCapital: foundCompanyShareCapital,\n accountSelector: accountSelector,\n }\n return rootComponents[component]\n }\n}\n\nwindow.customElements.define('vue-app', VueApp)\n","/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.4.8\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, fontString as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, overrideTextDirection as aA, _textX as aB, restoreTextDirection as aC, drawPointLegend as aD, distanceBetweenPoints as aE, noop as aF, _setMinAndMaxByKey as aG, niceNum as aH, almostWhole as aI, almostEquals as aJ, _decimalPlaces as aK, Ticks as aL, log10 as aM, _longestText as aN, _filterBetween as aO, _lookup as aP, isPatternOrGradient as aQ, getHoverColor as aR, clone as aS, _merger as aT, _mergerIf as aU, _deprecated as aV, _splitKey as aW, toFontString as aX, splineCurve as aY, splineCurveMonotone as aZ, getStyle as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, _elementsEqual as ah, _isClickEvent as ai, _isBetween as aj, _readValueToProps as ak, _updateBezierControlPoints as al, _computeSegments as am, _boundSegments as an, _steppedInterpolation as ao, _bezierInterpolation as ap, _pointInLine as aq, _steppedLineTo as ar, _bezierCurveTo as as, drawPoint as at, addRoundedRectPath as au, toTRBL as av, toTRBLCorners as aw, _boundSegment as ax, _normalizeAngle as ay, getRtlAdapter as az, isArray as b, toLineHeight as b0, PITAU as b1, INFINITY as b2, RAD_PER_DEG as b3, QUARTER_PI as b4, TWO_THIRDS_PI as b5, _angleDiff as b6, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.segment.js.map\n","/*!\n * Chart.js v4.4.8\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as _elementsEqual, ai as _isClickEvent, aj as _isBetween, ak as _readValueToProps, al as _updateBezierControlPoints, am as _computeSegments, an as _boundSegments, ao as _steppedInterpolation, ap as _bezierInterpolation, aq as _pointInLine, ar as _steppedLineTo, as as _bezierCurveTo, at as drawPoint, au as addRoundedRectPath, av as toTRBL, aw as toTRBLCorners, ax as _boundSegment, ay as _normalizeAngle, az as getRtlAdapter, aA as overrideTextDirection, aB as _textX, aC as restoreTextDirection, aD as drawPointLegend, aE as distanceBetweenPoints, aF as noop, aG as _setMinAndMaxByKey, aH as niceNum, aI as almostWhole, aJ as almostEquals, aK as _decimalPlaces, aL as Ticks, aM as log10, aN as _longestText, aO as _filterBetween, aP as _lookup } from './chunks/helpers.segment.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.4.8\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const { top , bottom } = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","/*\nTrix 2.1.13\nCopyright © 2025 37signals, LLC\n */\nvar t=\"2.1.13\";const e=\"[data-trix-attachment]\",i={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},n={default:{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,htmlAttributes:[\"language\"],text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}},r=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},o=navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),s=o&&parseInt(o[1]);var a={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:s&&s>12,samsungAndroid:s&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:\"undefined\"!=typeof InputEvent&&[\"data\",\"getTargetRanges\",\"inputType\"].every((t=>t in InputEvent.prototype))},l={ADD_ATTR:[\"language\"],SAFE_FOR_XML:!1,RETURN_DOM:!0},c={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",byte:\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption…\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL…\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"};const u=[c.bytes,c.KB,c.MB,c.GB,c.TB,c.PB];var h={prefix:\"IEC\",precision:2,formatter(t){switch(t){case 0:return\"0 \".concat(c.bytes);case 1:return\"1 \".concat(c.byte);default:let e;\"SI\"===this.prefix?e=1e3:\"IEC\"===this.prefix&&(e=1024);const i=Math.floor(Math.log(t)/Math.log(e)),n=(t/Math.pow(e,i)).toFixed(this.precision).replace(/0*$/,\"\").replace(/\\.$/,\"\");return\"\".concat(n,\" \").concat(u[i])}}};const d=\"\\ufeff\",g=\" \",m=function(t){for(const e in t){const i=t[e];this[e]=i}return this},p=document.documentElement,f=p.matches,b=function(t){let{onElement:e,matchingSelector:i,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=e||p,l=i,c=\"capturing\"===r,u=function(t){null!=s&&0==--s&&u.destroy();const e=y(t.target,{matchingSelector:l});null!=e&&(null==n||n.call(e,t,e),o&&t.preventDefault())};return u.destroy=()=>a.removeEventListener(t,u,c),a.addEventListener(t,u,c),u},v=function(t){let{onElement:e,bubbles:i,cancelable:n,attributes:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=null!=e?e:p;i=!1!==i,n=!1!==n;const s=document.createEvent(\"Events\");return s.initEvent(t,i,n),null!=r&&m.call(s,r),o.dispatchEvent(s)},A=function(t,e){if(1===(null==t?void 0:t.nodeType))return f.call(t,e)},y=function(t){let{matchingSelector:e,untilNode:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==e)return t;if(t.closest&&null==i)return t.closest(e);for(;t&&t!==i;){if(A(t,e))return t;t=t.parentNode}}},x=t=>document.activeElement!==t&&C(t,document.activeElement),C=function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},E=function(t){var e;if(null===(e=t)||void 0===e||!e.parentNode)return;let i=0;for(t=t.previousSibling;t;)i++,t=t.previousSibling;return i},S=t=>{var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)},R=function(t){let{onlyNodesOfType:e,usingFilter:i,expandEntityReferences:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(()=>{switch(e){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(t,r,null!=i?i:null,!0===n)},k=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},T=function(t){let e,i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof t?(n=t,t=n.tagName):n={attributes:n};const r=document.createElement(t);if(null!=n.editable&&(null==n.attributes&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(e in n.attributes)i=n.attributes[e],r.setAttribute(e,i);if(n.style)for(e in n.style)i=n.style[e],r.style[e]=i;if(n.data)for(e in n.data)i=n.data[e],r.dataset[e]=i;return n.className&&n.className.split(\" \").forEach((t=>{r.classList.add(t)})),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach((t=>{r.appendChild(t)})),r};let w;const L=function(){if(null!=w)return w;w=[];for(const t in n){const e=n[t];e.tagName&&w.push(e.tagName)}return w},D=t=>I(null==t?void 0:t.firstChild),N=function(t){let{strict:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{strict:!0};return e?I(t):I(t)||!I(t.firstChild)&&function(t){return L().includes(k(t))&&!L().includes(k(t.firstChild))}(t)},I=t=>O(t)&&\"block\"===(null==t?void 0:t.data),O=t=>(null==t?void 0:t.nodeType)===Node.COMMENT_NODE,F=function(t){let{name:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t)return B(t)?t.data===d?!e||t.parentNode.dataset.trixCursorTarget===e:void 0:F(t.firstChild)},P=t=>A(t,e),M=t=>B(t)&&\"\"===(null==t?void 0:t.data),B=t=>(null==t?void 0:t.nodeType)===Node.TEXT_NODE,_={level2Enabled:!0,getLevel(){return this.level2Enabled&&a.supportsInputEvents?2:0},pickFiles(t){const e=T(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId});e.addEventListener(\"change\",(()=>{t(e.files),S(e)})),S(document.getElementById(this.fileInputId)),document.body.appendChild(e),e.click()}};var j={removeBlankTableCells:!1,tableCellSeparator:\" | \",tableRowSeparator:\"\\n\"},W={bold:{tagName:\"strong\",inheritable:!0,parser(t){const e=window.getComputedStyle(t);return\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:t=>\"italic\"===window.getComputedStyle(t).fontStyle},href:{groupTagName:\"a\",parser(t){const i=\"a:not(\".concat(e,\")\"),n=t.closest(i);if(n)return n.getAttribute(\"href\")}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}},U={getDefaultHTML:()=>'\\n \\n ').concat(c.bold,'\\n ').concat(c.italic,'\\n ').concat(c.strike,'\\n ').concat(c.link,'\\n \\n\\n \\n ').concat(c.heading1,'\\n ').concat(c.quote,'\\n ').concat(c.code,'\\n ').concat(c.bullets,'\\n ').concat(c.numbers,'\\n ').concat(c.outdent,'\\n ').concat(c.indent,'\\n \\n\\n \\n ').concat(c.attachFiles,'\\n \\n\\n \\n\\n \\n ').concat(c.undo,'\\n ').concat(c.redo,'\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ')};const V={interval:5e3};var z=Object.freeze({__proto__:null,attachments:i,blockAttributes:n,browser:a,css:{attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"},dompurify:l,fileSize:h,input:_,keyNames:{8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"},lang:c,parser:j,textAttributes:W,toolbar:U,undo:V});class q{static proxyMethod(t){const{name:e,toMethod:i,toProperty:n,optional:r}=H(t);this.prototype[e]=function(){let t,o;var s,a;i?o=r?null===(s=this[i])||void 0===s?void 0:s.call(this):this[i]():n&&(o=this[n]);return r?(t=null===(a=o)||void 0===a?void 0:a[e],t?J.call(t,o,arguments):void 0):(t=o[e],J.call(t,o,arguments))}}}const H=function(t){const e=t.match(K);if(!e)throw new Error(\"can't parse @proxyMethod expression: \".concat(t));const i={name:e[4]};return null!=e[2]?i.toMethod=e[1]:i.toProperty=e[1],null!=e[3]&&(i.optional=!0),i},{apply:J}=Function.prototype,K=new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");var G,Y,$;class X extends q{static box(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return t instanceof this?t:this.fromUCS2String(null==t?void 0:t.toString())}static fromUCS2String(t){return new this(t,et(t))}static fromCodepoints(t){return new this(it(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return it(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return et(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}}const Z=1===(null===(G=Array.from)||void 0===G?void 0:G.call(Array,\"👼\").length),Q=null!=(null===(Y=\" \".codePointAt)||void 0===Y?void 0:Y.call(\" \",0)),tt=\" 👼\"===(null===($=String.fromCodePoint)||void 0===$?void 0:$.call(String,32,128124));let et,it;et=Z&&Q?t=>Array.from(t).map((t=>t.codePointAt(0))):function(t){const e=[];let i=0;const{length:n}=t;for(;iString.fromCodePoint(...Array.from(t||[])):function(t){return(()=>{const e=[];return Array.from(t).forEach((t=>{let i=\"\";t>65535&&(t-=65536,i+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e.push(i+String.fromCharCode(t))})),e})().join(\"\")};let nt=0;class rt extends q{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++nt}hasSameConstructorAs(t){return this.constructor===(null==t?void 0:t.constructor)}isEqualTo(t){return this===t}inspect(){const t=[],e=this.contentsForInspection()||{};for(const i in e){const n=e[i];t.push(\"\".concat(i,\"=\").concat(n))}return\"#<\".concat(this.constructor.name,\":\").concat(this.id).concat(t.length?\" \".concat(t.join(\", \")):\"\",\">\")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return X.box(this)}getCacheKey(){return this.id.toString()}}const ot=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;for(let i=0;i1?i-1:0),r=1;r(ct||(ct=bt().concat(pt())),ct),mt=t=>n[t],pt=()=>(ut||(ut=Object.keys(n)),ut),ft=t=>W[t],bt=()=>(ht||(ht=Object.keys(W)),ht),vt=function(t,e){At(t).textContent=e.replace(/%t/g,t)},At=function(t){const e=document.createElement(\"style\");e.setAttribute(\"type\",\"text/css\"),e.setAttribute(\"data-tag-name\",t.toLowerCase());const i=yt();return i&&e.setAttribute(\"nonce\",i),document.head.insertBefore(e,document.head.firstChild),e},yt=function(){const t=xt(\"trix-csp-nonce\")||xt(\"csp-nonce\");if(t){const{nonce:e,content:i}=t;return\"\"==e?i:e}},xt=t=>document.head.querySelector(\"meta[name=\".concat(t,\"]\")),Ct={\"application/x-trix-feature-detection\":\"test\"},Et=function(t){const e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null==e?void 0:e.length;{const{body:t}=(new DOMParser).parseFromString(i,\"text/html\");if(t.textContent===e)return!t.querySelector(\"*\")}},St=/Mac|^iP/.test(navigator.platform)?t=>t.metaKey:t=>t.ctrlKey;const Rt=t=>setTimeout(t,1),kt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={};for(const i in t){const n=t[i];e[i]=n}return e},Tt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const i in t){if(t[i]!==e[i])return!1}return!0},wt=function(t){if(null!=t)return Array.isArray(t)||(t=[t,t]),[Nt(t[0]),Nt(null!=t[1]?t[1]:t[0])]},Lt=function(t){if(null==t)return;const[e,i]=wt(t);return It(e,i)},Dt=function(t,e){if(null==t||null==e)return;const[i,n]=wt(t),[r,o]=wt(e);return It(i,r)&&It(n,o)},Nt=function(t){return\"number\"==typeof t?t:kt(t)},It=function(t,e){return\"number\"==typeof t?t===e:Tt(t,e)};class Ot extends q{constructor(){super(...arguments),this.update=this.update.bind(this),this.selectionManagers=[]}start(){this.started||(this.started=!0,document.addEventListener(\"selectionchange\",this.update,!0))}stop(){if(this.started)return this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter((e=>e!==t)),0===this.selectionManagers.length)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map((t=>t.selectionDidChange()))}update(){this.notifySelectionManagersOfSelectionChange()}reset(){this.update()}}const Ft=new Ot,Pt=function(){const t=window.getSelection();if(t.rangeCount>0)return t},Mt=function(){var t;const e=null===(t=Pt())||void 0===t?void 0:t.getRangeAt(0);if(e&&!_t(e))return e},Bt=function(t){const e=window.getSelection();return e.removeAllRanges(),e.addRange(t),Ft.update()},_t=t=>jt(t.startContainer)||jt(t.endContainer),jt=t=>!Object.getPrototypeOf(t),Wt=t=>t.replace(new RegExp(\"\".concat(d),\"g\"),\"\").replace(new RegExp(\"\".concat(g),\"g\"),\" \"),Ut=new RegExp(\"[^\\\\S\".concat(g,\"]\")),Vt=t=>t.replace(new RegExp(\"\".concat(Ut.source),\"g\"),\" \").replace(/\\ {2,}/g,\" \"),zt=function(t,e){if(t.isEqualTo(e))return[\"\",\"\"];const i=qt(t,e),{length:n}=i.utf16String;let r;if(n){const{offset:o}=i,s=t.codepoints.slice(0,o).concat(t.codepoints.slice(o+n));r=qt(e,X.fromCodepoints(s))}else r=qt(e,t);return[i.utf16String.toString(),r.utf16String.toString()]},qt=function(t,e){let i=0,n=t.length,r=e.length;for(;ii+1&&t.charAt(n-1).isEqualTo(e.charAt(r-1));)n--,r--;return{utf16String:t.slice(i,n),offset:i}};class Ht extends rt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!t.length)return new this;let e=Yt(t[0]),i=e.getKeys();return t.slice(1).forEach((t=>{i=e.getKeysCommonToHash(Yt(t)),e=e.slice(i)})),e}static box(t){return Yt(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(...arguments),this.values=Gt(t)}add(t,e){return this.merge(Jt(t,e))}remove(t){return new Ht(Gt(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new Ht(Kt(this.values,$t(t)))}slice(t){const e={};return Array.from(t).forEach((t=>{this.has(t)&&(e[t]=this.values[t])})),new Ht(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=Yt(t),this.getKeys().filter((e=>this.values[e]===t.values[e]))}isEqualTo(t){return ot(this.toArray(),Yt(t).toArray())}isEmpty(){return 0===this.getKeys().length}toArray(){if(!this.array){const t=[];for(const e in this.values){const i=this.values[e];t.push(t.push(e,i))}this.array=t.slice(0)}return this.array}toObject(){return Gt(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}}const Jt=function(t,e){const i={};return i[t]=e,i},Kt=function(t,e){const i=Gt(t);for(const t in e){const n=e[t];i[t]=n}return i},Gt=function(t,e){const i={};return Object.keys(t).sort().forEach((n=>{n!==e&&(i[n]=t[n])})),i},Yt=function(t){return t instanceof Ht?t:new Ht(t)},$t=function(t){return t instanceof Ht?t.values:t};class Xt{static groupObjects(){let t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:i,asTree:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n&&null==i&&(i=0);const r=[];return Array.from(e).forEach((e=>{var o;if(t){var s,a,l;if(null!==(s=e.canBeGrouped)&&void 0!==s&&s.call(e,i)&&null!==(a=(l=t[t.length-1]).canBeGroupedWith)&&void 0!==a&&a.call(l,e,i))return void t.push(e);r.push(new this(t,{depth:i,asTree:n})),t=null}null!==(o=e.canBeGrouped)&&void 0!==o&&o.call(e,i)?t=[e]:r.push(e)})),t&&r.push(new this(t,{depth:i,asTree:n})),r}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:e,asTree:i}=arguments.length>1?arguments[1]:void 0;this.objects=t,i&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:i,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){const t=[\"objectGroup\"];return Array.from(this.getObjects()).forEach((e=>{t.push(e.getCacheKey())})),t.join(\"/\")}}class Zt extends q{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach((t=>{const e=JSON.stringify(t);null==this.objects[e]&&(this.objects[e]=t)}))}find(t){const e=JSON.stringify(t);return this.objects[e]}}class Qt{constructor(t){this.reset(t)}add(t){const e=te(t);this.elements[e]=t}remove(t){const e=te(t),i=this.elements[e];if(i)return delete this.elements[e],i}reset(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.elements={},Array.from(t).forEach((t=>{this.add(t)})),t}}const te=t=>t.dataset.trixStoreKey;class ee extends q{isPerforming(){return!0===this.performing}hasPerformed(){return!0===this.performed}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise(((t,e)=>(this.performing=!0,this.perform(((i,n)=>{this.succeeded=i,this.performing=!1,this.performed=!0,this.succeeded?t(n):e(n)})))))),this.promise}perform(t){return t(!1)}release(){var t,e;null===(t=this.promise)||void 0===t||null===(e=t.cancel)||void 0===e||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}}ee.proxyMethod(\"getPromise().then\"),ee.proxyMethod(\"getPromise().catch\");class ie extends q{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map((t=>t.cloneNode(!0)))}invalidate(){var t;return this.nodes=null,this.childViews=[],null===(t=this.parentView)||void 0===t?void 0:t.invalidate()}invalidateViewForObject(t){var e;return null===(e=this.findViewForObject(t))||void 0===e?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,i){let n=this.getCachedViewForObject(e);return n?this.recordChildView(n):(n=this.createChildView(...arguments),this.cacheViewForObject(n,e)),n}createChildView(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e instanceof Xt&&(i.viewClass=t,t=ne);const n=new t(e,i);return this.recordChildView(n)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach((e=>{t.push(e),t=t.concat(e.getAllChildViews())})),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){const e=null==t?void 0:t.id;if(e)return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e,\"']\"))}findViewForObject(t){for(const e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return!1!==this.shouldCacheViews}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return null===(e=this.getViewCache())||void 0===e?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){const i=this.getViewCache();i&&(i[e.getCacheKey()]=t)}garbageCollectCachedViews(){const t=this.getViewCache();if(t){const e=this.getAllChildViews().concat(this).map((t=>t.object.getCacheKey()));for(const i in t)e.includes(i)||delete t[i]}}}class ne extends ie{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach((t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)})),this.childViews}createNodes(){const t=this.createContainerElement();return this.getChildViews().forEach((e=>{Array.from(e.getNodes()).forEach((e=>{t.appendChild(e)}))})),[t]}createContainerElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}}\n/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */const{entries:re,setPrototypeOf:oe,isFrozen:se,getPrototypeOf:ae,getOwnPropertyDescriptor:le}=Object;let{freeze:ce,seal:ue,create:he}=Object,{apply:de,construct:ge}=\"undefined\"!=typeof Reflect&&Reflect;ce||(ce=function(t){return t}),ue||(ue=function(t){return t}),de||(de=function(t,e,i){return t.apply(e,i)}),ge||(ge=function(t,e){return new t(...e)});const me=Te(Array.prototype.forEach),pe=Te(Array.prototype.pop),fe=Te(Array.prototype.push),be=Te(String.prototype.toLowerCase),ve=Te(String.prototype.toString),Ae=Te(String.prototype.match),ye=Te(String.prototype.replace),xe=Te(String.prototype.indexOf),Ce=Te(String.prototype.trim),Ee=Te(Object.prototype.hasOwnProperty),Se=Te(RegExp.prototype.test),Re=(ke=TypeError,function(){for(var t=arguments.length,e=new Array(t),i=0;i1?i-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:be;oe&&oe(t,null);let n=e.length;for(;n--;){let r=e[n];if(\"string\"==typeof r){const t=i(r);t!==r&&(se(e)||(e[n]=t),r=t)}t[r]=!0}return t}function Le(t){for(let e=0;e/gm),He=ue(/\\$\\{[\\w\\W]*}/gm),Je=ue(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/),Ke=ue(/^aria-[\\-\\w]+$/),Ge=ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),Ye=ue(/^(?:\\w+script|data):/i),$e=ue(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),Xe=ue(/^html$/i),Ze=ue(/^[a-z][.\\w]*(-[.\\w]+)+$/i);var Qe=Object.freeze({__proto__:null,ARIA_ATTR:Ke,ATTR_WHITESPACE:$e,CUSTOM_ELEMENT:Ze,DATA_ATTR:Je,DOCTYPE_NAME:Xe,ERB_EXPR:qe,IS_ALLOWED_URI:Ge,IS_SCRIPT_OR_DATA:Ye,MUSTACHE_EXPR:ze,TMPLIT_EXPR:He});const ti=1,ei=3,ii=7,ni=8,ri=9,oi=function(){return\"undefined\"==typeof window?null:window};var si=function t(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:oi();const i=e=>t(e);if(i.version=\"3.2.3\",i.removed=[],!e||!e.document||e.document.nodeType!==ri)return i.isSupported=!1,i;let{document:n}=e;const r=n,o=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:a,Node:l,Element:c,NodeFilter:u,NamedNodeMap:h=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:g,trustedTypes:m}=e,p=c.prototype,f=Ne(p,\"cloneNode\"),b=Ne(p,\"remove\"),v=Ne(p,\"nextSibling\"),A=Ne(p,\"childNodes\"),y=Ne(p,\"parentNode\");if(\"function\"==typeof a){const t=n.createElement(\"template\");t.content&&t.content.ownerDocument&&(n=t.content.ownerDocument)}let x,C=\"\";const{implementation:E,createNodeIterator:S,createDocumentFragment:R,getElementsByTagName:k}=n,{importNode:T}=r;let w={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};i.isSupported=\"function\"==typeof re&&\"function\"==typeof y&&E&&void 0!==E.createHTMLDocument;const{MUSTACHE_EXPR:L,ERB_EXPR:D,TMPLIT_EXPR:N,DATA_ATTR:I,ARIA_ATTR:O,IS_SCRIPT_OR_DATA:F,ATTR_WHITESPACE:P,CUSTOM_ELEMENT:M}=Qe;let{IS_ALLOWED_URI:B}=Qe,_=null;const j=we({},[...Ie,...Oe,...Fe,...Me,..._e]);let W=null;const U=we({},[...je,...We,...Ue,...Ve]);let V=Object.seal(he(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,q=null,H=!0,J=!0,K=!1,G=!0,Y=!1,$=!0,X=!1,Z=!1,Q=!1,tt=!1,et=!1,it=!1,nt=!0,rt=!1,ot=!0,st=!1,at={},lt=null;const ct=we({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]);let ut=null;const ht=we({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let dt=null;const gt=we({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),mt=\"http://www.w3.org/1998/Math/MathML\",pt=\"http://www.w3.org/2000/svg\",ft=\"http://www.w3.org/1999/xhtml\";let bt=ft,vt=!1,At=null;const yt=we({},[mt,pt,ft],ve);let xt=we({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),Ct=we({},[\"annotation-xml\"]);const Et=we({},[\"title\",\"style\",\"font\",\"a\",\"script\"]);let St=null;const Rt=[\"application/xhtml+xml\",\"text/html\"];let kt=null,Tt=null;const wt=n.createElement(\"form\"),Lt=function(t){return t instanceof RegExp||t instanceof Function},Dt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Tt||Tt!==t){if(t&&\"object\"==typeof t||(t={}),t=De(t),St=-1===Rt.indexOf(t.PARSER_MEDIA_TYPE)?\"text/html\":t.PARSER_MEDIA_TYPE,kt=\"application/xhtml+xml\"===St?ve:be,_=Ee(t,\"ALLOWED_TAGS\")?we({},t.ALLOWED_TAGS,kt):j,W=Ee(t,\"ALLOWED_ATTR\")?we({},t.ALLOWED_ATTR,kt):U,At=Ee(t,\"ALLOWED_NAMESPACES\")?we({},t.ALLOWED_NAMESPACES,ve):yt,dt=Ee(t,\"ADD_URI_SAFE_ATTR\")?we(De(gt),t.ADD_URI_SAFE_ATTR,kt):gt,ut=Ee(t,\"ADD_DATA_URI_TAGS\")?we(De(ht),t.ADD_DATA_URI_TAGS,kt):ht,lt=Ee(t,\"FORBID_CONTENTS\")?we({},t.FORBID_CONTENTS,kt):ct,z=Ee(t,\"FORBID_TAGS\")?we({},t.FORBID_TAGS,kt):{},q=Ee(t,\"FORBID_ATTR\")?we({},t.FORBID_ATTR,kt):{},at=!!Ee(t,\"USE_PROFILES\")&&t.USE_PROFILES,H=!1!==t.ALLOW_ARIA_ATTR,J=!1!==t.ALLOW_DATA_ATTR,K=t.ALLOW_UNKNOWN_PROTOCOLS||!1,G=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Y=t.SAFE_FOR_TEMPLATES||!1,$=!1!==t.SAFE_FOR_XML,X=t.WHOLE_DOCUMENT||!1,tt=t.RETURN_DOM||!1,et=t.RETURN_DOM_FRAGMENT||!1,it=t.RETURN_TRUSTED_TYPE||!1,Q=t.FORCE_BODY||!1,nt=!1!==t.SANITIZE_DOM,rt=t.SANITIZE_NAMED_PROPS||!1,ot=!1!==t.KEEP_CONTENT,st=t.IN_PLACE||!1,B=t.ALLOWED_URI_REGEXP||Ge,bt=t.NAMESPACE||ft,xt=t.MATHML_TEXT_INTEGRATION_POINTS||xt,Ct=t.HTML_INTEGRATION_POINTS||Ct,V=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&Lt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(V.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Lt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(V.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&\"boolean\"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(V.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Y&&(J=!1),et&&(tt=!0),at&&(_=we({},_e),W=[],!0===at.html&&(we(_,Ie),we(W,je)),!0===at.svg&&(we(_,Oe),we(W,We),we(W,Ve)),!0===at.svgFilters&&(we(_,Fe),we(W,We),we(W,Ve)),!0===at.mathMl&&(we(_,Me),we(W,Ue),we(W,Ve))),t.ADD_TAGS&&(_===j&&(_=De(_)),we(_,t.ADD_TAGS,kt)),t.ADD_ATTR&&(W===U&&(W=De(W)),we(W,t.ADD_ATTR,kt)),t.ADD_URI_SAFE_ATTR&&we(dt,t.ADD_URI_SAFE_ATTR,kt),t.FORBID_CONTENTS&&(lt===ct&&(lt=De(lt)),we(lt,t.FORBID_CONTENTS,kt)),ot&&(_[\"#text\"]=!0),X&&we(_,[\"html\",\"head\",\"body\"]),_.table&&(we(_,[\"tbody\"]),delete z.tbody),t.TRUSTED_TYPES_POLICY){if(\"function\"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(\"function\"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');x=t.TRUSTED_TYPES_POLICY,C=x.createHTML(\"\")}else void 0===x&&(x=function(t,e){if(\"object\"!=typeof t||\"function\"!=typeof t.createPolicy)return null;let i=null;const n=\"data-tt-policy-suffix\";e&&e.hasAttribute(n)&&(i=e.getAttribute(n));const r=\"dompurify\"+(i?\"#\"+i:\"\");try{return t.createPolicy(r,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn(\"TrustedTypes policy \"+r+\" could not be created.\"),null}}(m,o)),null!==x&&\"string\"==typeof C&&(C=x.createHTML(\"\"));ce&&ce(t),Tt=t}},Nt=we({},[...Oe,...Fe,...Pe]),It=we({},[...Me,...Be]),Ot=function(t){fe(i.removed,{element:t});try{y(t).removeChild(t)}catch(e){b(t)}},Ft=function(t,e){try{fe(i.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){fe(i.removed,{attribute:null,from:e})}if(e.removeAttribute(t),\"is\"===t)if(tt||et)try{Ot(e)}catch(t){}else try{e.setAttribute(t,\"\")}catch(t){}},Pt=function(t){let e=null,i=null;if(Q)t=\"\"+t;else{const e=Ae(t,/^[\\r\\n\\t ]+/);i=e&&e[0]}\"application/xhtml+xml\"===St&&bt===ft&&(t=''+t+\"\");const r=x?x.createHTML(t):t;if(bt===ft)try{e=(new g).parseFromString(r,St)}catch(t){}if(!e||!e.documentElement){e=E.createDocument(bt,\"template\",null);try{e.documentElement.innerHTML=vt?C:r}catch(t){}}const o=e.body||e.documentElement;return t&&i&&o.insertBefore(n.createTextNode(i),o.childNodes[0]||null),bt===ft?k.call(e,X?\"html\":\"body\")[0]:X?e.documentElement:o},Mt=function(t){return S.call(t.ownerDocument||t,t,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Bt=function(t){return t instanceof d&&(\"string\"!=typeof t.nodeName||\"string\"!=typeof t.textContent||\"function\"!=typeof t.removeChild||!(t.attributes instanceof h)||\"function\"!=typeof t.removeAttribute||\"function\"!=typeof t.setAttribute||\"string\"!=typeof t.namespaceURI||\"function\"!=typeof t.insertBefore||\"function\"!=typeof t.hasChildNodes)},_t=function(t){return\"function\"==typeof l&&t instanceof l};function jt(t,e,n){me(t,(t=>{t.call(i,e,n,Tt)}))}const Wt=function(t){let e=null;if(jt(w.beforeSanitizeElements,t,null),Bt(t))return Ot(t),!0;const n=kt(t.nodeName);if(jt(w.uponSanitizeElement,t,{tagName:n,allowedTags:_}),t.hasChildNodes()&&!_t(t.firstElementChild)&&Se(/<[/\\w]/g,t.innerHTML)&&Se(/<[/\\w]/g,t.textContent))return Ot(t),!0;if(t.nodeType===ii)return Ot(t),!0;if($&&t.nodeType===ni&&Se(/<[/\\w]/g,t.data))return Ot(t),!0;if(!_[n]||z[n]){if(!z[n]&&Vt(n)){if(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,n))return!1;if(V.tagNameCheck instanceof Function&&V.tagNameCheck(n))return!1}if(ot&&!lt[n]){const e=y(t)||t.parentNode,i=A(t)||t.childNodes;if(i&&e){for(let n=i.length-1;n>=0;--n){const r=f(i[n],!0);r.__removalCount=(t.__removalCount||0)+1,e.insertBefore(r,v(t))}}}return Ot(t),!0}return t instanceof c&&!function(t){let e=y(t);e&&e.tagName||(e={namespaceURI:bt,tagName:\"template\"});const i=be(t.tagName),n=be(e.tagName);return!!At[t.namespaceURI]&&(t.namespaceURI===pt?e.namespaceURI===ft?\"svg\"===i:e.namespaceURI===mt?\"svg\"===i&&(\"annotation-xml\"===n||xt[n]):Boolean(Nt[i]):t.namespaceURI===mt?e.namespaceURI===ft?\"math\"===i:e.namespaceURI===pt?\"math\"===i&&Ct[n]:Boolean(It[i]):t.namespaceURI===ft?!(e.namespaceURI===pt&&!Ct[n])&&!(e.namespaceURI===mt&&!xt[n])&&!It[i]&&(Et[i]||!Nt[i]):!(\"application/xhtml+xml\"!==St||!At[t.namespaceURI]))}(t)?(Ot(t),!0):\"noscript\"!==n&&\"noembed\"!==n&&\"noframes\"!==n||!Se(/<\\/no(script|embed|frames)/i,t.innerHTML)?(Y&&t.nodeType===ei&&(e=t.textContent,me([L,D,N],(t=>{e=ye(e,t,\" \")})),t.textContent!==e&&(fe(i.removed,{element:t.cloneNode()}),t.textContent=e)),jt(w.afterSanitizeElements,t,null),!1):(Ot(t),!0)},Ut=function(t,e,i){if(nt&&(\"id\"===e||\"name\"===e)&&(i in n||i in wt))return!1;if(J&&!q[e]&&Se(I,e));else if(H&&Se(O,e));else if(!W[e]||q[e]){if(!(Vt(t)&&(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,t)||V.tagNameCheck instanceof Function&&V.tagNameCheck(t))&&(V.attributeNameCheck instanceof RegExp&&Se(V.attributeNameCheck,e)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(e))||\"is\"===e&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,i)||V.tagNameCheck instanceof Function&&V.tagNameCheck(i))))return!1}else if(dt[e]);else if(Se(B,ye(i,P,\"\")));else if(\"src\"!==e&&\"xlink:href\"!==e&&\"href\"!==e||\"script\"===t||0!==xe(i,\"data:\")||!ut[t]){if(K&&!Se(F,ye(i,P,\"\")));else if(i)return!1}else;return!0},Vt=function(t){return\"annotation-xml\"!==t&&Ae(t,M)},zt=function(t){jt(w.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||Bt(t))return;const n={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:W,forceKeepAttr:void 0};let r=e.length;for(;r--;){const o=e[r],{name:s,namespaceURI:a,value:l}=o,c=kt(s);let u=\"value\"===s?l:Ce(l);if(n.attrName=c,n.attrValue=u,n.keepAttr=!0,n.forceKeepAttr=void 0,jt(w.uponSanitizeAttribute,t,n),u=n.attrValue,!rt||\"id\"!==c&&\"name\"!==c||(Ft(s,t),u=\"user-content-\"+u),$&&Se(/((--!?|])>)|<\\/(style|title)/i,u)){Ft(s,t);continue}if(n.forceKeepAttr)continue;if(Ft(s,t),!n.keepAttr)continue;if(!G&&Se(/\\/>/i,u)){Ft(s,t);continue}Y&&me([L,D,N],(t=>{u=ye(u,t,\" \")}));const h=kt(t.nodeName);if(Ut(h,c,u)){if(x&&\"object\"==typeof m&&\"function\"==typeof m.getAttributeType)if(a);else switch(m.getAttributeType(h,c)){case\"TrustedHTML\":u=x.createHTML(u);break;case\"TrustedScriptURL\":u=x.createScriptURL(u)}try{a?t.setAttributeNS(a,s,u):t.setAttribute(s,u),Bt(t)?Ot(t):pe(i.removed)}catch(t){}}}jt(w.afterSanitizeAttributes,t,null)},qt=function t(e){let i=null;const n=Mt(e);for(jt(w.beforeSanitizeShadowDOM,e,null);i=n.nextNode();)jt(w.uponSanitizeShadowNode,i,null),Wt(i),zt(i),i.content instanceof s&&t(i.content);jt(w.afterSanitizeShadowDOM,e,null)};return i.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,o=null,a=null,c=null;if(vt=!t,vt&&(t=\"\\x3c!--\\x3e\"),\"string\"!=typeof t&&!_t(t)){if(\"function\"!=typeof t.toString)throw Re(\"toString is not a function\");if(\"string\"!=typeof(t=t.toString()))throw Re(\"dirty is not a string, aborting\")}if(!i.isSupported)return t;if(Z||Dt(e),i.removed=[],\"string\"==typeof t&&(st=!1),st){if(t.nodeName){const e=kt(t.nodeName);if(!_[e]||z[e])throw Re(\"root node is forbidden and cannot be sanitized in-place\")}}else if(t instanceof l)n=Pt(\"\\x3c!----\\x3e\"),o=n.ownerDocument.importNode(t,!0),o.nodeType===ti&&\"BODY\"===o.nodeName||\"HTML\"===o.nodeName?n=o:n.appendChild(o);else{if(!tt&&!Y&&!X&&-1===t.indexOf(\"<\"))return x&&it?x.createHTML(t):t;if(n=Pt(t),!n)return tt?null:it?C:\"\"}n&&Q&&Ot(n.firstChild);const u=Mt(st?t:n);for(;a=u.nextNode();)Wt(a),zt(a),a.content instanceof s&&qt(a.content);if(st)return t;if(tt){if(et)for(c=R.call(n.ownerDocument);n.firstChild;)c.appendChild(n.firstChild);else c=n;return(W.shadowroot||W.shadowrootmode)&&(c=T.call(r,c,!0)),c}let h=X?n.outerHTML:n.innerHTML;return X&&_[\"!doctype\"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&Se(Xe,n.ownerDocument.doctype.name)&&(h=\"\\n\"+h),Y&&me([L,D,N],(t=>{h=ye(h,t,\" \")})),x&&it?x.createHTML(h):h},i.setConfig=function(){Dt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Z=!0},i.clearConfig=function(){Tt=null,Z=!1},i.isValidAttribute=function(t,e,i){Tt||Dt({});const n=kt(t),r=kt(e);return Ut(n,r,i)},i.addHook=function(t,e){\"function\"==typeof e&&fe(w[t],e)},i.removeHook=function(t){return pe(w[t])},i.removeHooks=function(t){w[t]=[]},i.removeAllHooks=function(){w={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},i}();si.addHook(\"uponSanitizeAttribute\",(function(t,e){/^data-trix-/.test(e.attrName)&&(e.forceKeepAttr=!0)}));const ai=\"style href src width height language class\".split(\" \"),li=\"javascript:\".split(\" \"),ci=\"script iframe form noscript\".split(\" \");class ui extends q{static setHTML(t,e){const i=new this(e).sanitize(),n=i.getHTML?i.getHTML():i.outerHTML;t.innerHTML=n}static sanitize(t,e){const i=new this(t,e);return i.sanitize(),i}constructor(t){let{allowedAttributes:e,forbiddenProtocols:i,forbiddenElements:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.allowedAttributes=e||ai,this.forbiddenProtocols=i||li,this.forbiddenElements=n||ci,this.body=hi(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting(),si.setConfig(l),this.body=si.sanitize(this.body),this.body}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){const t=R(this.body),e=[];for(;t.nextNode();){const i=t.currentNode;switch(i.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(i)?e.push(i):this.sanitizeElement(i);break;case Node.COMMENT_NODE:e.push(i)}}return e.forEach((t=>S(t))),this.body}sanitizeElement(t){return t.hasAttribute(\"href\")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute(\"href\"),Array.from(t.attributes).forEach((e=>{let{name:i}=e;this.allowedAttributes.includes(i)||0===i.indexOf(\"data-trix\")||t.removeAttribute(i)})),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach((t=>{const e=t.previousElementSibling;e&&\"li\"===k(e)&&e.appendChild(t)})),this.body}elementIsRemovable(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(k(t))}elementIsntSerializable(t){return\"false\"===t.getAttribute(\"data-trix-serialize\")&&!P(t)}}const hi=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";t=t.replace(/<\\/html[^>]*>[^]*$/i,\"\");const e=document.implementation.createHTMLDocument(\"\");return e.documentElement.innerHTML=t,Array.from(e.head.querySelectorAll(\"style\")).forEach((t=>{e.body.appendChild(t)})),e.body},{css:di}=z;class gi extends ie{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t;const e=t=T({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),i=this.getHref();return i&&(t=T({tagName:\"a\",editable:!1,attributes:{href:i,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?ui.setHTML(t,this.attachment.getContent()):this.createContentNodes().forEach((e=>{t.appendChild(e)})),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=T({tagName:\"progress\",attributes:{class:di.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[mi(\"left\"),e,mi(\"right\")]}createCaptionElement(){const t=T({tagName:\"figcaption\",className:di.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add(\"\".concat(di.attachmentCaption,\"--edited\")),t.textContent=e;else{let e,i;const n=this.getCaptionConfig();if(n.name&&(e=this.attachment.getFilename()),n.size&&(i=this.attachment.getFormattedFilesize()),e){const i=T({tagName:\"span\",className:di.attachmentName,textContent:e});t.appendChild(i)}if(i){e&&t.appendChild(document.createTextNode(\" \"));const n=T({tagName:\"span\",className:di.attachmentSize,textContent:i});t.appendChild(n)}}return t}getClassName(){const t=[di.attachment,\"\".concat(di.attachment,\"--\").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push(\"\".concat(di.attachment,\"--\").concat(e)),t.join(\" \")}getData(){const t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!pi(this.attachment.getContent(),\"a\"))return this.attachment.getHref()}getCaptionConfig(){var t;const e=this.attachment.getType(),n=kt(null===(t=i[e])||void 0===t?void 0:t.caption);return\"file\"===e&&(n.name=!0),n}findProgressElement(){var t;return null===(t=this.findElement())||void 0===t?void 0:t.querySelector(\"progress\")}attachmentDidChangeUploadProgress(){const t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}}const mi=t=>T({tagName:\"span\",textContent:d,data:{trixCursorTarget:t,trixSerialize:!1}}),pi=function(t,e){const i=T(\"div\");return ui.setHTML(i,t||\"\"),i.querySelector(e)};class fi extends gi{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=T({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){const t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute(\"data-trix-placeholder\",c.captionPlaceholder),t}refresh(t){var e;t||(t=null===(e=this.findElement())||void 0===e?void 0:e.querySelector(\"img\"));if(t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){const e=this.attachment.getURL(),i=this.attachment.getPreviewURL();if(t.src=i||e,i===e)t.removeAttribute(\"data-trix-serialized-attributes\");else{const i=JSON.stringify({src:e});t.setAttribute(\"data-trix-serialized-attributes\",i)}const n=this.attachment.getWidth(),r=this.attachment.getHeight();null!=n&&(t.width=n),null!=r&&(t.height=r);const o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\");t.dataset.trixStoreKey=o}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}}class bi extends ie{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes();const e=this.createElement();if(e){const i=function(t){for(;null!==(e=t)&&void 0!==e&&e.firstElementChild;){var e;t=t.firstElementChild}return t}(e);Array.from(t).forEach((t=>{i.appendChild(t)})),t=[e]}return t}createAttachmentNodes(){const t=this.attachment.isPreviewable()?fi:gi;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if(null!==(t=this.textConfig)&&void 0!==t&&t.plaintext)return[document.createTextNode(this.string)];{const t=[],e=this.string.split(\"\\n\");for(let i=0;i0){const e=T(\"br\");t.push(e)}if(n.length){const e=document.createTextNode(this.preserveSpaces(n));t.push(e)}}return t}}createElement(){let t,e,i;const n={};for(e in this.attributes){i=this.attributes[e];const o=ft(e);if(o){if(o.tagName){var r;const e=T(o.tagName);r?(r.appendChild(e),r=e):t=r=e}if(o.styleProperty&&(n[o.styleProperty]=i),o.style)for(e in o.style)i=o.style[e],n[e]=i}}if(Object.keys(n).length)for(e in t||(t=T(\"span\")),n)i=n[e],t.style[e]=i;return t}createContainerElement(){for(const t in this.attributes){const e=this.attributes[t],i=ft(t);if(i&&i.groupTagName){const n={};return n[t]=e,T(i.groupTagName,n)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\\ $/,g)),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \".concat(g,\" $2\")).replace(/\\ {2}/g,\"\".concat(g,\" \")).replace(/\\ {2}/g,\" \".concat(g)),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,g)),t}}class vi extends ie{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){const t=[],e=Xt.groupObjects(this.getPieces()),i=e.length-1;for(let r=0;r!t.hasAttribute(\"blockBreak\")))}}const Ai=t=>/\\s$/.test(null==t?void 0:t.toString()),{css:yi}=z;class xi extends ie{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){const t=[document.createComment(\"block\")];if(this.block.isEmpty())t.push(T(\"br\"));else{var e;const i=null===(e=mt(this.block.getLastAttribute()))||void 0===e?void 0:e.text,n=this.findOrCreateCachedChildView(vi,this.block.text,{textConfig:i});t.push(...Array.from(n.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(T(\"br\"))}if(this.attributes.length)return t;{let e;const{tagName:i}=n.default;this.block.isRTL()&&(e={dir:\"rtl\"});const r=T({tagName:i,attributes:e});return t.forEach((t=>r.appendChild(t))),[r]}}createContainerElement(t){const e={};let i;const n=this.attributes[t],{tagName:r,htmlAttributes:o=[]}=mt(n);if(0===t&&this.block.isRTL()&&Object.assign(e,{dir:\"rtl\"}),\"attachmentGallery\"===n){const t=this.block.getBlockBreakPosition();i=\"\".concat(yi.attachmentGallery,\" \").concat(yi.attachmentGallery,\"--\").concat(t)}return Object.entries(this.block.htmlAttributes).forEach((t=>{let[i,n]=t;o.includes(i)&&(e[i]=n)})),T({tagName:r,className:i,attributes:e})}shouldAddExtraNewlineElement(){return/\\n\\n$/.test(this.block.toString())}}class Ci extends ie{static render(t){const e=T(\"div\"),i=new this(t,{element:e});return i.render(),i.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new Qt,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=T(\"div\"),!this.document.isEmpty()){const t=Xt.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach((t=>{const e=this.findOrCreateCachedChildView(xi,t);Array.from(e.getNodes()).map((t=>this.shadowElement.appendChild(t)))}))}}isSynced(){return Si(this.shadowElement,this.element)}sync(){const t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(Ei(this.element)),Rt((()=>this.garbageCollectCachedViews()))}createDocumentFragmentForSync(){const t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),Array.from(Ei(t)).forEach((t=>{const e=this.elementStore.remove(t);e&&t.parentNode.replaceChild(e,t)})),t}}const Ei=t=>t.querySelectorAll(\"[data-trix-store-key]\"),Si=(t,e)=>Ri(t.innerHTML)===Ri(e.innerHTML),Ri=t=>t.replace(/ /g,\" \");function ki(t){var e,i;function n(e,i){try{var o=t[e](i),s=o.value,a=s instanceof Ti;Promise.resolve(a?s.v:s).then((function(i){if(a){var l=\"return\"===e?\"return\":\"next\";if(!s.k||i.done)return n(l,i);i=t[l](i).value}r(o.done?\"return\":\"normal\",i)}),(function(t){n(\"throw\",t)}))}catch(t){r(\"throw\",t)}}function r(t,r){switch(t){case\"return\":e.resolve({value:r,done:!0});break;case\"throw\":e.reject(r);break;default:e.resolve({value:r,done:!1})}(e=e.next)?n(e.key,e.arg):i=null}this._invoke=function(t,r){return new Promise((function(o,s){var a={key:t,arg:r,resolve:o,reject:s,next:null};i?i=i.next=a:(e=i=a,n(t,r))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function Ti(t,e){this.v=t,this.k=e}function wi(t,e,i){return(e=Li(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function Li(t){var e=function(t,e){if(\"object\"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:String(e)}ki.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},ki.prototype.next=function(t){return this._invoke(\"next\",t)},ki.prototype.throw=function(t){return this._invoke(\"throw\",t)},ki.prototype.return=function(t){return this._invoke(\"return\",t)};function Di(t,e){return Oi(t,Ii(t,e,\"get\"))}function Ni(t,e,i){return Fi(t,Ii(t,e,\"set\"),i),i}function Ii(t,e,i){if(!e.has(t))throw new TypeError(\"attempted to \"+i+\" private field on non-instance\");return e.get(t)}function Oi(t,e){return e.get?e.get.call(t):e.value}function Fi(t,e,i){if(e.set)e.set.call(t,i);else{if(!e.writable)throw new TypeError(\"attempted to set read only private field\");e.value=i}}function Pi(t,e,i){if(!e.has(t))throw new TypeError(\"attempted to get private field on non-instance\");return i}function Mi(t,e){if(e.has(t))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")}function Bi(t,e,i){Mi(t,e),e.set(t,i)}class _i extends rt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){const e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.attributes=Ht.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return 0===this.length}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute(\"href\")}canBeGroupedWith(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}}wi(_i,\"types\",{});class ji extends ee{constructor(t){super(...arguments),this.url=t}perform(t){const e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}}class Wi extends rt{static attachmentForFile(t){const e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new Ht({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=Ht.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this.attributes.merge(t);var i,n,r,o;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),null===(i=this.previewDelegate)||void 0===i||null===(n=i.attachmentDidChangeAttributes)||void 0===n||n.call(i,this),null===(r=this.delegate)||void 0===r||null===(o=r.attachmentDidChangeAttributes)||void 0===o?void 0:o.call(r,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return null!=this.file&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):Wi.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"}getURL(){return this.attributes.get(\"url\")}getHref(){return this.attributes.get(\"href\")}getFilename(){return this.attributes.get(\"filename\")||\"\"}getFilesize(){return this.attributes.get(\"filesize\")}getFormattedFilesize(){const t=this.attributes.get(\"filesize\");return\"number\"==typeof t?h.formatter(t):\"\"}getExtension(){var t;return null===(t=this.getFilename().match(/\\.(\\w+)$/))||void 0===t?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get(\"contentType\")}hasContent(){return this.attributes.has(\"content\")}getContent(){return this.attributes.get(\"content\")}getWidth(){return this.attributes.get(\"width\")}getHeight(){return this.attributes.get(\"height\")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return null!=this.uploadProgress?this.uploadProgress:0}setUploadProgress(t){var e,i;if(this.uploadProgress!==t)return this.uploadProgress=t,null===(e=this.uploadProgressDelegate)||void 0===e||null===(i=e.attachmentDidChangeUploadProgress)||void 0===i?void 0:i.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,i,n,r;if(t!==this.getPreviewURL())return this.previewURL=t,null===(e=this.previewDelegate)||void 0===e||null===(i=e.attachmentDidChangeAttributes)||void 0===i||i.call(e,this),null===(n=this.delegate)||void 0===n||null===(r=n.attachmentDidChangePreviewURL)||void 0===r?void 0:r.call(n,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL()){this.preloadingURL=t;return new ji(t).then((i=>{let{width:n,height:r}=i;return this.getWidth()&&this.getHeight()||this.setAttributes({width:n,height:r}),this.preloadingURL=null,this.setPreviewURL(t),null==e?void 0:e()})).catch((()=>(this.preloadingURL=null,null==e?void 0:e())))}}}wi(Wi,\"previewablePattern\",/^image(\\/(gif|png|webp|jpe?g)|$)/);class Ui extends _i{static fromJSON(t){return new this(Wi.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){const t=this.attributes.slice(Ui.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get(\"caption\")||\"\"}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(null==t||null===(e=t.attachment)||void 0===e?void 0:e.id)}toString(){return\"\"}toJSON(){const t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join(\"/\")}toConsole(){return JSON.stringify(this.toString())}}wi(Ui,\"permittedAttributes\",[\"caption\",\"presentation\"]),_i.registerType(\"attachment\",Ui);class Vi extends _i{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(t=>t.replace(/\\r\\n?/g,\"\\n\"))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return\"\\n\"===this.toString()&&!0===this.getAttribute(\"blockBreak\")}toJSON(){const t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.length?(e=this,i=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),i=new this.constructor(this.string.slice(t),this.attributes)),[e,i]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+\"…\"),JSON.stringify(t.toString())}}_i.registerType(\"string\",Vi);class zi extends rt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),i=0;it(e,i)))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){const[i,n]=this.splitObjectAtPosition(e);return new this.constructor(i).insertSplittableListAtIndex(t,n)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(i,n+1))}selectSplittableList(t){const e=this.objects.filter((e=>t(e)));return new this.constructor(e)}removeObjectsInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(i,n-i+1)}transformObjectsInRange(t,e){const[i,n,r]=this.splitObjectsAtRange(t),o=i.map(((t,i)=>n<=i&&i<=r?e(t):t));return new this.constructor(o)}splitObjectsAtRange(t){let e,[i,n,r]=this.splitObjectAtPosition(Hi(t));return[i,e]=new this.constructor(i).splitObjectAtPosition(Ji(t)+r),[i,n,e-1]}getObjectAtPosition(t){const{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,i;const{index:n,offset:r}=this.findIndexAndOffsetAtPosition(t),o=this.objects.slice(0);if(null!=n)if(0===r)e=n,i=0;else{const t=this.getObjectAtIndex(n),[s,a]=t.splitAtOffset(r);o.splice(n,1,s,a),e=n+1,i=s.getLength()-r}else e=o.length,i=0;return[o,e,i]}consolidate(){const t=[];let e=this.objects[0];return this.objects.slice(1).forEach((i=>{var n,r;null!==(n=(r=e).canBeConsolidatedWith)&&void 0!==n&&n.call(r,i)?e=e.consolidateWith(i):(t.push(e),e=i)})),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){const i=this.objects.slice(0).slice(t,e+1),n=new this.constructor(i).consolidate().toArray();return this.splice(t,i.length,...n)}findIndexAndOffsetAtPosition(t){let e,i=0;for(e=0;ethis.endPosition+=t.getLength()))),this.endPosition}toString(){return this.objects.join(\"\")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||qi(this.objects,null==t?void 0:t.objects)}contentsForInspection(){return{objects:\"[\".concat(this.objects.map((t=>t.inspect())).join(\", \"),\"]\")}}}const qi=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;let i=!0;for(let n=0;nt[0],Ji=t=>t[1];class Ki extends rt{static textForAttachmentWithAttributes(t,e){return new this([new Ui(t,e)])}static textForStringWithAttributes(t,e){return new this([new Vi(t,e)])}static fromJSON(t){return new this(Array.from(t).map((t=>_i.fromJSON(t))))}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments);const e=t.filter((t=>!t.isEmpty()));this.pieceList=new zi(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){const e=this.getPieces().map((e=>t.find(e)||e));return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;const i=this.getTextAtRange(t),n=i.getLength();return t[0]e.copyWithAdditionalAttributes(t))))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithoutAttribute(t))))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAttributes(t))))}getAttributesAtPosition(t){var e;return(null===(e=this.pieceList.getObjectAtPosition(t))||void 0===e?void 0:e.getAttributes())||{}}getCommonAttributes(){const t=Array.from(this.pieceList.toArray()).map((t=>t.getAttributes()));return Ht.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let i,n=i=e;const r=this.getLength();for(;n>0&&this.getCommonAttributesAtRange([n-1,i])[t];)n--;for(;i!!t.attachment))}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getAttachmentAndPositionById(t){let e=0;for(const n of this.pieceList.toArray()){var i;if((null===(i=n.attachment)||void 0===i?void 0:i.id)===t)return{attachment:n.attachment,position:e};e+=n.length}return{attachment:null,position:null}}getAttachmentById(t){const{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){const e=this.getAttachmentAndPositionById(t.id),i=e.position;if(t=e.attachment)return[i,i+1]}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e);return i?this.addAttributesAtRange(t,i):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return 0===this.getLength()}isEqualTo(t){var e;return super.isEqualTo(t)||(null==t||null===(e=t.pieceList)||void 0===e?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){const t=this.pieceList.selectSplittableList((t=>t.isSerializable()));return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map((t=>JSON.parse(t.toConsole()))))}getDirection(){return lt(this.toString())}isRTL(){return\"rtl\"===this.getDirection()}}class Gi extends rt{static fromJSON(t){return new this(Ki.fromJSON(t.text),t.attributes,t.htmlAttributes)}constructor(t,e,i){super(...arguments),this.text=Yi(t||new Ki),this.attributes=e||[],this.htmlAttributes=i||{}}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(null==t?void 0:t.text)&&ot(this.attributes,null==t?void 0:t.attributes)&&Tt(this.htmlAttributes,null==t?void 0:t.htmlAttributes)}copyWithText(t){return new Gi(t,this.attributes,this.htmlAttributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new Gi(this.text,t,this.htmlAttributes)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){const e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){const e=this.attributes.concat(en(t));return this.copyWithAttributes(e)}addHTMLAttribute(t,e){const i=Object.assign({},this.htmlAttributes,{[t]:e});return new Gi(this.text,this.attributes,i)}removeAttribute(t){const{listAttribute:e}=mt(t),i=rn(rn(this.attributes,t),e);return this.copyWithAttributes(i)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return nn(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return nn(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter((t=>mt(t).nestable))}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){const t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){const t=this.getLastNestableAttribute();if(t){const e=this.attributes.lastIndexOf(t),i=st(this.attributes,e+1,0,...en(t));return this.copyWithAttributes(i)}return this}getListItemAttributes(){return this.attributes.filter((t=>mt(t).listAttribute))}isListItem(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.listAttribute}isTerminalBlock(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.terminal}breaksOnReturn(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){const i=this.toString();let n;switch(t){case\"forward\":n=i.indexOf(\"\\n\",e);break;case\"backward\":n=i.slice(0,e).lastIndexOf(\"\\n\")}if(-1!==n)return n}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes,htmlAttributes:this.htmlAttributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){const e=Ki.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(i.appendText(t.text))}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.getLength()?(e=this,i=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),i=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,i]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Qi(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,e){const i=t.getAttributes(),r=i[e],o=this.attributes[e];return o===r&&!(!1===mt(o).group&&!(()=>{if(!dt){dt=[];for(const t in n){const{listAttribute:e}=n[t];null!=e&&dt.push(e)}}return dt})().includes(i[e+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}}const Yi=function(t){return t=$i(t),t=Zi(t)},$i=function(t){let e=!1;const i=t.getPieces();let n=i.slice(0,i.length-1);const r=i[i.length-1];return r?(n=n.map((t=>t.isBlockBreak()?(e=!0,tn(t)):t)),e?new Ki([...n,r]):t):t},Xi=Ki.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),Zi=function(t){return Qi(t)?t:t.appendText(Xi)},Qi=function(t){const e=t.getLength();if(0===e)return!1;return t.getTextAtRange([e-1,e]).isBlockBreak()},tn=t=>t.copyWithoutAttribute(\"blockBreak\"),en=function(t){const{listAttribute:e}=mt(t);return e?[e,t]:[t]},nn=t=>t.slice(-1)[0],rn=function(t,e){const i=t.lastIndexOf(e);return-1===i?t:st(t,i,1)};class on extends rt{static fromJSON(t){return new this(Array.from(t).map((t=>Gi.fromJSON(t))))}static fromString(t,e){const i=Ki.textForStringWithAttributes(t,e);return new this([new Gi(i)])}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),0===t.length&&(t=[new Gi]),this.blockList=zi.box(t)}isEmpty(){const t=this.getBlockAtIndex(0);return 1===this.blockList.length&&t.isEmpty()&&!t.hasAttributes()}copy(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){const e=new Zt(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){const e=this.getBlocks().map((e=>t.find(e)||e.copyUsingObjectMap(t)));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.getBlocks().map((e=>{const i=t.concat(e.getAttributes());return e.copyWithAttributes(i)}));return new this.constructor(e)}replaceBlock(t,e){const i=this.blockList.indexOf(t);return-1===i?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,i))}insertDocumentAtRange(t,e){const{blockList:i}=t;e=wt(e);let[n]=e;const{index:r,offset:o}=this.locationFromPosition(n);let s=this;const a=this.getBlockAtPosition(n);return Lt(e)&&a.isEmpty()&&!a.hasAttributes()?s=new this.constructor(s.blockList.removeObjectAtIndex(r)):a.getBlockBreakPosition()===o&&n++,s=s.removeTextAtRange(e),new this.constructor(s.blockList.insertSplittableListAtPosition(i,n))}mergeDocumentAtRange(t,e){let i,n;e=wt(e);const[r]=e,o=this.locationFromPosition(r),s=this.getBlockAtIndex(o.index).getAttributes(),a=t.getBaseBlockAttributes(),l=s.slice(-a.length);if(ot(a,l)){const e=s.slice(0,-a.length);i=t.copyWithBaseBlockAttributes(e)}else i=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(s);const c=i.getBlockCount(),u=i.getBlockAtIndex(0);if(ot(s,u.getAttributes())){const t=u.getTextWithoutBlockBreak();if(n=this.insertTextAtRange(t,e),c>1){i=new this.constructor(i.getBlocks().slice(1));const e=r+t.getLength();n=n.insertDocumentAtRange(i,e)}}else n=this.insertDocumentAtRange(i,e);return n}insertTextAtRange(t,e){e=wt(e);const[i]=e,{index:n,offset:r}=this.locationFromPosition(i),o=this.removeTextAtRange(e);return new this.constructor(o.blockList.editObjectAtIndex(n,(e=>e.copyWithText(e.text.insertTextAtPosition(t,r)))))}removeTextAtRange(t){let e;t=wt(t);const[i,n]=t;if(Lt(t))return this;const[r,o]=Array.from(this.locationRangeFromRange(t)),s=r.index,a=r.offset,l=this.getBlockAtIndex(s),c=o.index,u=o.offset,h=this.getBlockAtIndex(c);if(n-i==1&&l.getBlockBreakPosition()===a&&h.getBlockBreakPosition()!==u&&\"\\n\"===h.text.getStringAtPosition(u))e=this.blockList.editObjectAtIndex(c,(t=>t.copyWithText(t.text.removeTextAtRange([u,u+1]))));else{let t;const i=l.text.getTextAtRange([0,a]),n=h.text.getTextAtRange([u,h.getLength()]),r=i.appendText(n);t=s!==c&&0===a&&l.getAttributeLevel()>=h.getAttributeLevel()?h.copyWithText(r):l.copyWithText(r);const o=c+1-s;e=this.blockList.splice(s,o,t)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let i;t=wt(t);const[n,r]=t;if(n<=e&&e<=r)return this;let o=this.getDocumentAtRange(t),s=this.removeTextAtRange(t);const a=nn=n.editObjectAtIndex(o,(function(){return mt(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})))),new this.constructor(n)}addAttribute(t,e){let{blockList:i}=this;return this.eachBlock(((n,r)=>i=i.editObjectAtIndex(r,(()=>n.addAttribute(t,e))))),new this.constructor(i)}removeAttributeAtRange(t,e){let{blockList:i}=this;return this.eachBlockAtRange(e,(function(e,n,r){mt(t)?i=i.editObjectAtIndex(r,(()=>e.removeAttribute(t))):n[0]!==n[1]&&(i=i.editObjectAtIndex(r,(()=>e.copyWithText(e.text.removeAttributeAtRange(t,n)))))})),new this.constructor(i)}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e),[n]=Array.from(i),{index:r}=this.locationFromPosition(n),o=this.getTextAtIndex(r);return new this.constructor(this.blockList.editObjectAtIndex(r,(i=>i.copyWithText(o.updateAttributesForAttachment(t,e)))))}removeAttributeForAttachment(t,e){const i=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,i)}setHTMLAttributeAtPosition(t,e,i){const n=this.getBlockAtPosition(t),r=n.addHTMLAttribute(e,i);return this.replaceBlock(n,r)}insertBlockBreakAtRange(t){let e;t=wt(t);const[i]=t,{offset:n}=this.locationFromPosition(i),r=this.removeTextAtRange(t);return 0===n&&(e=[new Gi]),new this.constructor(r.blockList.insertSplittableListAtPosition(new zi(e),i))}applyBlockAttributeAtRange(t,e,i){const n=this.expandRangeToLineBreaksAndSplitBlocks(i);let r=n.document;i=n.range;const o=mt(t);if(o.listAttribute){r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t});const e=r.convertLineBreaksToBlockBreaksInRange(i);r=e.document,i=e.range}else r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i);return r.addAttributeAtRange(t,e,i)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{blockList:i}=this;return this.eachBlockAtRange(t,(function(t,n,r){const o=t.getLastAttribute();o&&mt(o).listAttribute&&o!==e.exceptAttributeName&&(i=i.editObjectAtIndex(r,(()=>t.removeAttribute(o))))})),new this.constructor(i)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){const r=t.getLastAttribute();r&&mt(r).terminal&&(e=e.editObjectAtIndex(n,(()=>t.removeAttribute(r))))})),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){t.hasAttributes()&&(e=e.editObjectAtIndex(n,(()=>t.copyWithoutAttributes())))})),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=wt(t);let[i,n]=t;const r=this.locationFromPosition(i),o=this.locationFromPosition(n);let s=this;const a=s.getBlockAtIndex(r.index);if(r.offset=a.findLineBreakInDirectionFromPosition(\"backward\",r.offset),null!=r.offset&&(e=s.positionFromLocation(r),s=s.insertBlockBreakAtRange([e,e+1]),o.index+=1,o.offset-=s.getBlockAtIndex(r.index).getLength(),r.index+=1),r.offset=0,0===o.offset&&o.index>r.index)o.index-=1,o.offset=s.getBlockAtIndex(o.index).getBlockBreakPosition();else{const t=s.getBlockAtIndex(o.index);\"\\n\"===t.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=t.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==t.getBlockBreakPosition()&&(e=s.positionFromLocation(o),s=s.insertBlockBreakAtRange([e,e+1]))}return i=s.positionFromLocation(r),n=s.positionFromLocation(o),{document:s,range:t=wt([i,n])}}convertLineBreaksToBlockBreaksInRange(t){t=wt(t);let[e]=t;const i=this.getStringAtRange(t).slice(0,-1);let n=this;return i.replace(/.*?\\n/g,(function(t){e+=t.length,n=n.insertBlockBreakAtRange([e-1,e])})),{document:n,range:t}}consolidateBlocksAtRange(t){t=wt(t);const[e,i]=t,n=this.locationFromPosition(e).index,r=this.locationFromPosition(i).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(n,r))}getDocumentAtRange(t){t=wt(t);const e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e;const i=t=wt(t);return i[i.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return null===(e=this.getBlockAtIndex(t))||void 0===e?void 0:e.text}getTextAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(i)}getCharacterAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([i,i+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let i,n;t=wt(t);const[r,o]=t,s=this.locationFromPosition(r),a=this.locationFromPosition(o);if(s.index===a.index)return i=this.getBlockAtIndex(s.index),n=[s.offset,a.offset],e(i,n,s.index);for(let t=s.index;t<=a.index;t++)if(i=this.getBlockAtIndex(t),i){switch(t){case s.index:n=[s.offset,i.text.getLength()];break;case a.index:n=[0,a.offset];break;default:n=[0,i.text.getLength()]}e(i,n,t)}}getCommonAttributesAtRange(t){t=wt(t);const[e]=t;if(Lt(t))return this.getCommonAttributesAtPosition(e);{const e=[],i=[];return this.eachBlockAtRange(t,(function(t,n){if(n[0]!==n[1])return e.push(t.text.getCommonAttributesAtRange(n)),i.push(sn(t))})),Ht.fromCommonAttributesOfObjects(e).merge(Ht.fromCommonAttributesOfObjects(i)).toObject()}}getCommonAttributesAtPosition(t){let e,i;const{index:n,offset:r}=this.locationFromPosition(t),o=this.getBlockAtIndex(n);if(!o)return{};const s=sn(o),a=o.text.getAttributesAtPosition(r),l=o.text.getAttributesAtPosition(r-1),c=Object.keys(W).filter((t=>W[t].inheritable));for(e in l)i=l[e],(i===a[e]||c.includes(e))&&(s[e]=i);return s}getRangeOfCommonAttributeAtPosition(t,e){const{index:i,offset:n}=this.locationFromPosition(e),r=this.getTextAtIndex(i),[o,s]=Array.from(r.getExpandedRangeForAttributeAtOffset(t,n)),a=this.positionFromLocation({index:i,offset:o}),l=this.positionFromLocation({index:i,offset:s});return wt([a,l])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e{const e=[];for(let r=0;r{let{text:i}=e;return t=t.concat(i.getAttachmentPieces())})),t}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getRangeOfAttachment(t){let e=0;const i=this.blockList.toArray();for(let n=0;n{const r=n.getLength();n.hasAttribute(t)&&i.push([e,e+r]),e+=r})),i}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=0,n=[];const r=[];return this.getPieces().forEach((o=>{const s=o.getLength();(function(i){return e?i.getAttribute(t)===e:i.hasAttribute(t)})(o)&&(n[1]===i?n[1]=i+s:r.push(n=[i,i+s])),i+=s})),r}locationFromPosition(t){const e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(null!=e.index)return e;{const t=this.getBlocks();return{index:t.length-1,offset:t[t.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return wt(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=wt(t)))return;const[e,i]=Array.from(t),n=this.locationFromPosition(e),r=this.locationFromPosition(i);return wt([n,r])}rangeFromLocationRange(t){let e;t=wt(t);const i=this.positionFromLocation(t[0]);return Lt(t)||(e=this.positionFromLocation(t[1])),wt([i,e])}isEqualTo(t){return this.blockList.isEqualTo(null==t?void 0:t.blockList)}getTexts(){return this.getBlocks().map((t=>t.text))}getPieces(){const t=[];return Array.from(this.getTexts()).forEach((e=>{t.push(...Array.from(e.getPieces()||[]))})),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){const t=[];return this.blockList.eachObject((e=>t.push(e.copyWithText(e.text.toSerializableText())))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray().map((t=>JSON.parse(t.text.toConsole()))))}}const sn=function(t){const e={},i=t.getLastAttribute();return i&&(e[i]=!0),e},an=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{string:t=Wt(t),attributes:e,type:\"string\"}},ln=(t,e)=>{try{return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)))}catch(t){return{}}};class cn extends q{static parse(t,e){const i=new this(t,e);return i.parse(),i}constructor(t){let{referenceElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return on.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer(),ui.setHTML(this.containerElement,this.html);const t=R(this.containerElement,{usingFilter:gn});for(;t.nextNode();)this.processNode(t.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=T({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return S(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){const e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(\"\\n\");if(e===this.containerElement||this.isBlockElement(e)){var i;const t=this.getBlockAttributes(e),n=this.getBlockHTMLAttributes(e);ot(t,null===(i=this.currentBlock)||void 0===i?void 0:i.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(t,e,n),this.currentBlockElement=e)}}appendBlockForElement(t){const e=this.isBlockElement(t),i=C(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){const e=this.getBlockAttributes(t),n=this.getBlockHTMLAttributes(t);if(t.firstChild){if(i&&ot(e,this.currentBlock.attributes))return this.appendStringWithAttributes(\"\\n\");this.currentBlock=this.appendBlockForAttributesWithElement(e,t,n),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!i&&!e){const e=this.findParentBlockElement(t);if(e)return this.appendBlockForElement(e);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var i;un(t.parentNode)||(e=Vt(e),fn(null===(i=t.previousSibling)||void 0===i?void 0:i.textContent)&&(e=mn(e)));return this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(P(t)){if(e=ln(t,\"attachment\"),Object.keys(e).length){const i=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,i),t.innerHTML=\"\"}return this.processedElements.push(t)}switch(k(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"};const i=(t=>{const e=t.getAttribute(\"width\"),i=t.getAttribute(\"height\"),n={};return e&&(n.width=parseInt(e,10)),i&&(n.height=parseInt(i,10)),n})(t);for(const t in i){const n=i[t];e[t]=n}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableRowSeparator);break;case\"td\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.blockElements.push(e);const n=function(){return{text:[],attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},htmlAttributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}}}(t,i);return this.blocks.push(n),n}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(an(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(t){return{attachment:t,attributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},type:\"attachment\"}}(t,e))}appendPiece(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[i.length-1];if(\"string\"!==(null==n?void 0:n.type))return i.push(an(t));n.string+=t}prependStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[0];if(\"string\"!==(null==n?void 0:n.type))return i.unshift(an(t));n.string=t+n.string}getTextAttributes(t){let e;const i={};for(const n in W){const r=W[n];if(r.tagName&&y(t,{matchingSelector:r.tagName,untilNode:this.containerElement}))i[n]=!0;else if(r.parser){if(e=r.parser(t),e){let o=!1;for(const i of this.findBlockElementAncestors(t))if(r.parser(i)===e){o=!0;break}o||(i[n]=e)}}else r.styleProperty&&(e=t.style[r.styleProperty],e&&(i[n]=e))}if(P(t)){const n=ln(t,\"attributes\");for(const t in n)e=n[t],i[t]=e}return i}getBlockAttributes(t){const e=[];for(;t&&t!==this.containerElement;){for(const r in n){const o=n[r];var i;if(!1!==o.parse)if(k(t)===o.tagName)(null!==(i=o.test)&&void 0!==i&&i.call(o,t)||!o.test)&&(e.push(r),o.listAttribute&&e.push(o.listAttribute))}t=t.parentNode}return e.reverse()}getBlockHTMLAttributes(t){const e={},i=Object.values(n).find((e=>e.tagName===k(t)));return((null==i?void 0:i.htmlAttributes)||[]).forEach((i=>{t.hasAttribute(i)&&(e[i]=t.getAttribute(i))})),e}findBlockElementAncestors(t){const e=[];for(;t&&t!==this.containerElement;){const i=k(t);L().includes(i)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE&&!P(t)&&!y(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return L().includes(k(t))||\"block\"===window.getComputedStyle(t).display}isInsignificantTextNode(t){if((null==t?void 0:t.nodeType)!==Node.TEXT_NODE)return;if(!pn(t.data))return;const{parentNode:e,previousSibling:i,nextSibling:n}=t;return hn(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||un(e)?void 0:!i||this.isBlockElement(i)||!n||this.isBlockElement(n)}isExtraBR(t){return\"br\"===k(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(j.removeBlankTableCells){var e;const i=null===(e=t.previousSibling)||void 0===e?void 0:e.textContent;return i&&/\\S/.test(i)}return t.previousSibling}translateBlockElementMarginsToNewlines(){const t=this.getMarginOfDefaultBlockElement();for(let e=0;e2*t.top&&this.prependStringToTextAtIndex(\"\\n\",e),i.bottom>2*t.bottom&&this.appendStringToTextAtIndex(\"\\n\",e))}}getMarginOfBlockElementAtIndex(t){const e=this.blockElements[t];if(e&&e.textContent&&!L().includes(k(e))&&!this.processedElements.includes(e))return dn(e)}getMarginOfDefaultBlockElement(){const t=T(n.default.tagName);return this.containerElement.appendChild(t),dn(t)}}const un=function(t){const{whiteSpace:e}=window.getComputedStyle(t);return[\"pre\",\"pre-wrap\",\"pre-line\"].includes(e)},hn=t=>t&&!fn(t.textContent),dn=function(t){const e=window.getComputedStyle(t);if(\"block\"===e.display)return{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}},gn=function(t){return\"style\"===k(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},mn=t=>t.replace(new RegExp(\"^\".concat(Ut.source,\"+\")),\"\"),pn=t=>new RegExp(\"^\".concat(Ut.source,\"*$\")).test(t),fn=t=>/\\s$/.test(t),bn=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],vn=\"data-trix-serialized-attributes\",An=\"[\".concat(vn,\"]\"),yn=new RegExp(\"\\x3c!--block--\\x3e\",\"g\"),xn={\"application/json\":function(t){let e;if(t instanceof on)e=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=cn.parse(t.innerHTML).getDocument()}return e.toSerializableDocument().toJSONString()},\"text/html\":function(t){let e;if(t instanceof on)e=Ci.render(t);else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=t.cloneNode(!0)}return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach((t=>{S(t)})),bn.forEach((t=>{Array.from(e.querySelectorAll(\"[\".concat(t,\"]\"))).forEach((e=>{e.removeAttribute(t)}))})),Array.from(e.querySelectorAll(An)).forEach((t=>{try{const e=JSON.parse(t.getAttribute(vn));t.removeAttribute(vn);for(const i in e){const n=e[i];t.setAttribute(i,n)}}catch(t){}})),e.innerHTML.replace(yn,\"\")}};var Cn=Object.freeze({__proto__:null});class En extends q{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}}En.proxyMethod(\"attachment.getAttribute\"),En.proxyMethod(\"attachment.hasAttribute\"),En.proxyMethod(\"attachment.setAttribute\"),En.proxyMethod(\"attachment.getAttributes\"),En.proxyMethod(\"attachment.setAttributes\"),En.proxyMethod(\"attachment.isPending\"),En.proxyMethod(\"attachment.isPreviewable\"),En.proxyMethod(\"attachment.getURL\"),En.proxyMethod(\"attachment.getHref\"),En.proxyMethod(\"attachment.getFilename\"),En.proxyMethod(\"attachment.getFilesize\"),En.proxyMethod(\"attachment.getFormattedFilesize\"),En.proxyMethod(\"attachment.getExtension\"),En.proxyMethod(\"attachment.getContentType\"),En.proxyMethod(\"attachment.getFile\"),En.proxyMethod(\"attachment.setFile\"),En.proxyMethod(\"attachment.releaseFile\"),En.proxyMethod(\"attachment.getUploadProgress\"),En.proxyMethod(\"attachment.setUploadProgress\");class Sn extends q{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach((t=>{this.manageAttachment(t)}))}getAttachments(){const t=[];for(const e in this.managedAttachments){const i=this.managedAttachments[e];t.push(i)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new En(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,i;if(this.attachmentIsManaged(t))return null===(e=this.delegate)||void 0===e||null===(i=e.attachmentManagerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}unmanageAttachment(t){const e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}}class Rn{constructor(t){this.composition=t,this.document=this.composition.document;const e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}}class kn extends q{constructor(){super(...arguments),this.document=new on,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,i;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeDocument)||void 0===i?void 0:i.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,i,n,r;let{document:o,selectedRange:s}=t;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionWillLoadSnapshot)||void 0===i||i.call(e),this.setDocument(null!=o?o:new on),this.setSelection(null!=s?s:[0,0]),null===(n=this.delegate)||void 0===n||null===(r=n.compositionDidLoadSnapshot)||void 0===r?void 0:r.call(n)}insertText(t){let{updatePosition:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{updatePosition:!0};const i=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,i));const n=i[0],r=n+t.getLength();return e&&this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertBlock(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Gi;const e=new on([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new on;const e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));const i=e[0],n=i+t.getLength();return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([i,n])}insertString(t,e){const i=this.getCurrentTextAttributes(),n=Ki.textForStringWithAttributes(t,i);return this.insertText(n,e)}insertBlockBreak(){const t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));const e=t[0],i=e+1;return this.setSelection(i),this.notifyDelegateOfInsertionAtRange([e,i])}insertLineBreak(){const t=new Rn(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){const e=new on([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(\"\\n\")}insertHTML(t){const e=cn.parse(t).getDocument(),i=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,i));const n=i[0],r=n+e.getLength()-1;return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}replaceHTML(t){const e=cn.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),n=this.document.rangeFromLocationRange(i);return this.setDocument(e),this.setSelection(n)}insertFile(t){return this.insertFiles([t])}insertFiles(t){const e=[];return Array.from(t).forEach((t=>{var i;if(null!==(i=this.delegate)&&void 0!==i&&i.compositionShouldAcceptFile(t)){const i=Wi.attachmentForFile(t);e.push(i)}})),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(t){let e=new Ki;return Array.from(t).forEach((t=>{var n;const r=t.getType(),o=null===(n=i[r])||void 0===n?void 0:n.presentation,s=this.getCurrentTextAttributes();o&&(s.presentation=o);const a=Ki.textForAttachmentWithAttributes(t,s);e=e.appendText(a)})),this.insertText(e)}shouldManageDeletingInDirection(t){const e=this.getLocationRange();if(Lt(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,i,n,{length:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=this.getLocationRange();let s=this.getSelectedRange();const a=Lt(s);if(a?i=\"backward\"===t&&0===o[0].offset:n=o[0].index!==o[1].index,i&&this.canDecreaseBlockAttributeLevel()){const t=this.getBlock();if(t.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(s[0]),t.isEmpty())return!1}return a&&(s=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(e=this.getAttachmentAtRange(s))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(s)),this.setSelection(s[0]),!i&&!n&&void 0)}moveTextFromRange(t){const[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){const e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){const[t,e]=Array.from(this.getSelectedRange()),i=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(i.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(\" \")}selectPlaceholder(){if(null!=this.placeholderPosition)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+1]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){const e=this.currentAttributes[t];return null!=e&&!1!==e}toggleCurrentAttribute(t){const e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return mt(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){const e=this.getSelectedDocument();if(e){for(const t of Array.from(e.getAttachments()))if(!t.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){const e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return mt(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setHTMLAtributeAtPosition(t,e,i){var n;const r=this.document.getBlockAtPosition(t),o=null===(n=mt(r.getLastAttribute()))||void 0===n?void 0:n.htmlAttributes;if(r&&null!=o&&o.includes(e)){const n=this.document.setHTMLAttributeAtPosition(t,e,i);this.setDocument(n)}}setTextAttribute(t,e){const i=this.getSelectedRange();if(!i)return;const[n,r]=Array.from(i);if(n!==r)return this.setDocument(this.document.addAttributeAtRange(t,e,i));if(\"href\"===t){const t=Ki.textForStringWithAttributes(e,{href:e});return this.insertText(t)}}setBlockAttribute(t,e){const i=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)}removeCurrentAttribute(t){return mt(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;const e=this.getBlock();if(e){if(null===(t=mt(e.getLastNestableAttribute()))||void 0===t||!t.listAttribute)return e.getNestingLevel()>0;{const t=this.getPreviousBlock();if(t)return function(){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return ot((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).slice(0,t.length),t)}(t.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;const e=null===(t=this.getBlock())||void 0===t?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange());const{index:e}=this.document.locationFromPosition(t);let i=e;const n=this.getBlock().getAttributeLevel();let r=this.document.getBlockAtIndex(i+1);for(;r&&r.isListItem()&&!(r.getAttributeLevel()<=n);)i++,r=this.document.getBlockAtIndex(i+1);t=this.document.positionFromLocation({index:e,offset:0});const o=this.document.positionFromLocation({index:i,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,o]))}updateCurrentAttributes(){const t=this.getSelectedRange({ignoreLock:!0});if(t){const e=this.document.getCommonAttributesAtRange(t);if(Array.from(gt()).forEach((t=>{e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1)})),!Tt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return m.call({},this.currentAttributes)}getCurrentTextAttributes(){const t={};for(const e in this.currentAttributes){const i=this.currentAttributes[e];!1!==i&&ft(e)&&(t[e]=i)}return t}freezeSelection(){return this.setCurrentAttribute(\"frozen\",!0)}thawSelection(){return this.removeCurrentAttribute(\"frozen\")}hasFrozenSelection(){return this.hasCurrentAttribute(\"frozen\")}setSelection(t){var e;const i=this.document.locationRangeFromRange(t);return null===(e=this.delegate)||void 0===e?void 0:e.compositionDidRequestChangingSelectionToLocationRange(i)}getSelectedRange(){const t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){const e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){const t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||wt({index:0,offset:0})}withTargetLocationRange(t,e){let i;this.targetLocationRange=t;try{i=e()}finally{this.targetLocationRange=null}return i}withTargetRange(t,e){const i=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(i,e)}withTargetDOMRange(t,e){const i=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(i,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n]=Array.from(this.getSelectedRange());return\"backward\"===t?e?i-=e:i=this.translateUTF16PositionFromOffset(i,-1):e?n+=e:n=this.translateUTF16PositionFromOffset(n,1),wt([i,n])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;const e=this.getExpandedRangeInDirection(t);return null!=this.getAttachmentAtRange(e)}moveCursorInDirection(t){let e,i;if(this.editingAttachment)i=this.document.getRangeOfAttachment(this.editingAttachment);else{const n=this.getSelectedRange();i=this.getExpandedRangeInDirection(t),e=!Dt(n,i)}if(\"backward\"===t?this.setSelectedRange(i[0]):this.setSelectedRange(i[1]),e){const t=this.getAttachmentAtRange(i);if(t)return this.editAttachment(t)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(i)}expandSelectionForEditing(){if(this.hasCurrentAttribute(\"href\"))return this.expandSelectionAroundCommonAttribute(\"href\")}expandSelectionAroundCommonAttribute(t){const e=this.getPosition(),i=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(i)}selectionContainsAttachments(){var t;return(null===(t=this.getSelectedAttachments())||void 0===t?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){const e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return null===(e=this.document.getPieceAtPosition(t))||void 0===e?void 0:e.isBlockBreak()}getSelectedDocument(){const t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return null===(t=this.getSelectedDocument())||void 0===t?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){const t=this.document.getAttachments(),{added:e,removed:i}=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=[],n=[],r=new Set;t.forEach((t=>{r.add(t)}));const o=new Set;return e.forEach((t=>{o.add(t),r.has(t)||i.push(t)})),t.forEach((t=>{o.has(t)||n.push(t)})),{added:i,removed:n}}(this.attachments,t);return this.attachments=t,Array.from(i).forEach((t=>{var e,i;t.delegate=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidRemoveAttachment)||void 0===i||i.call(e,t)})),(()=>{const t=[];return Array.from(e).forEach((e=>{var i,n;e.delegate=this,t.push(null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidAddAttachment)||void 0===n?void 0:n.call(i,e))})),t})()}attachmentDidChangeAttributes(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidEditAttachment)||void 0===i?void 0:i.call(e,t)}attachmentDidChangePreviewURL(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeAttachmentPreviewURL)||void 0===i?void 0:i.call(e,t)}editAttachment(t,e){var i,n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidStartEditingAttachment)||void 0===n?void 0:n.call(i,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&(null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidStopEditingAttachment)||void 0===e||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t;const{block:i}=t;let n=t.startPosition,r=[n-1,n];i.getBlockBreakPosition()===t.startLocation.offset?(i.breaksOnReturn()&&\"\\n\"===t.nextCharacter?n+=1:e=e.removeTextAtRange(r),r=[n,n]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?r=[n-1,n+1]:(r=[n,n+1],n+=1):t.startLocation.offset-1!=0&&(n+=1);const o=new on([i.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(o,r)),this.setSelection(n)}getPreviousBlock(){const t=this.getLocationRange();if(t){const{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){const t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){const e=this.document.getDocumentAtRange(t);if(e.toString()===\"\".concat(\"\",\"\\n\"))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidChangeCurrentAttributes)||void 0===e?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidPerformInsertionAtRange)||void 0===i?void 0:i.call(e,t)}translateUTF16PositionFromOffset(t,e){const i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t);return i.offsetToUCS2Offset(n+e)}}kn.proxyMethod(\"getSelectionManager().getPointRange\"),kn.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),kn.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),kn.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),kn.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),kn.proxyMethod(\"delegate?.getSelectionManager\");class Tn extends q{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.undoEntries.slice(-1)[0];if(!i||!wn(n,t,e)){const i=this.createEntry({description:t,context:e});this.undoEntries.push(i),this.redoEntries=[]}}undo(){const t=this.undoEntries.pop();if(t){const e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){const t=this.redoEntries.pop();if(t){const e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{description:null==t?void 0:t.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}}const wn=(t,e,i)=>(null==t?void 0:t.description)===(null==e?void 0:e.toString())&&(null==t?void 0:t.context)===JSON.stringify(i),Ln=\"attachmentGallery\";class Dn{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map((t=>this.document=this.document.removeAttributeAtRange(Ln,t)))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach((e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,\"\\n\"!==this.document.getCharacterAtPosition(e[1])&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]0&&void 0!==arguments[0]?arguments[0]:\"\";const e=cn.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:i}=t;return e=on.fromJSON(e),this.loadSnapshot({document:e,selectedRange:i})}loadSnapshot(t){return this.undoManager=new Tn(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){const e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}setHTMLAtributeAtPosition(t,e,i){this.composition.setHTMLAtributeAtPosition(t,e,i)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:i})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}}class Fn{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{strict:!0},n=0,r=!1;const o={index:0,offset:0},s=this.findAttachmentElementParentForNode(t);s&&(t=s.parentNode,e=E(s));const a=R(this.element,{usingFilter:_n});for(;a.nextNode();){const s=a.currentNode;if(s===t&&B(t)){F(s)||(o.offset+=e);break}if(s.parentNode===t){if(n++===e)break}else if(!C(t,s)&&n>0)break;N(s,{strict:i})?(r&&o.index++,o.offset=0,r=!0):o.offset+=Pn(s)}return o}findContainerAndOffsetFromLocation(t){let e,i;if(0===t.index&&0===t.offset){for(e=this.element,i=0;e.firstChild;)if(e=e.firstChild,D(e)){i=1;break}return[e,i]}let[n,r]=this.findNodeAndOffsetFromLocation(t);if(n){if(B(n))0===Pn(n)?(e=n.parentNode.parentNode,i=E(n.parentNode),F(n,{name:\"right\"})&&i++):(e=n,i=t.offset-r);else{if(e=n.parentNode,!N(n.previousSibling)&&!D(e))for(;n===e.lastChild&&(n=e,e=e.parentNode,!D(e)););i=E(n),0!==t.offset&&i++}return[e,i]}}findNodeAndOffsetFromLocation(t){let e,i,n=0;for(const r of this.getSignificantNodesForIndex(t.index)){const o=Pn(r);if(t.offset<=n+o)if(B(r)){if(e=r,i=n,t.offset===i&&F(e))break}else e||(e=r,i=n);if(n+=o,n>t.offset)break}return[e,i]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(P(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){const e=[],i=R(this.element,{usingFilter:Mn});let n=!1;for(;i.nextNode();){const o=i.currentNode;var r;if(I(o)){if(null!=r?r++:r=0,r===t)n=!0;else if(n)break}else n&&e.push(o)}return e}}const Pn=function(t){if(t.nodeType===Node.TEXT_NODE){if(F(t))return 0;return t.textContent.length}return\"br\"===k(t)||P(t)?1:0},Mn=function(t){return Bn(t)===NodeFilter.FILTER_ACCEPT?_n(t):NodeFilter.FILTER_REJECT},Bn=function(t){return M(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},_n=function(t){return P(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT};class jn{createDOMRangeFromPoint(t){let e,{x:i,y:n}=t;if(document.caretPositionFromPoint){const{offsetNode:t,offset:r}=document.caretPositionFromPoint(i,n);return e=document.createRange(),e.setStart(t,r),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(i,n);if(document.body.createTextRange){const t=Mt();try{const t=document.body.createTextRange();t.moveToPoint(i,n),t.select()}catch(t){}return e=Mt(),Bt(t),e}}getClientRectsForDOMRange(t){const e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}}class Wn extends q{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new Fn(this.element),this.pointMapper=new jn,this.lockCount=0,b(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!1===t.strict?this.createLocationRangeFromDOMRange(Mt()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=wt(t);const e=this.createDOMRangeFromLocationRange(t);e&&(Bt(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=wt(t);const e=this.getLocationAtPoint(t[0]),i=this.getLocationAtPoint(t[1]);this.setLocationRange([e,i])}getClientRectAtLocationRange(t){const e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){const e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return F(e)}lock(){0==this.lockCount++&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(0==--this.lockCount){const{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,null!=t)return this.setLocationRange(t)}}clearSelection(){var t;return null===(t=Pt())||void 0===t?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return!0===(null===(t=Mt())||void 0===t?void 0:t.collapsed)}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(null==t||!this.domRangeWithinElement(t))return;const i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!i)return;const n=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return wt([i,n])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;const e=()=>{if(this.paused=!1,clearTimeout(i),Array.from(t).forEach((t=>{t.destroy()})),C(document,this.element))return this.selectionDidChange()},i=setTimeout(e,200);t=[\"mousemove\",\"keydown\"].map((t=>b(t,{onElement:document,withCallback:e})))}selectionDidChange(){if(!this.paused&&!x(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,i;if((null!=t?t:t=this.createLocationRangeFromDOMRange(Mt()))&&!Dt(t,this.currentLocationRange))return this.currentLocationRange=t,null===(e=this.delegate)||void 0===e||null===(i=e.locationRangeDidChange)||void 0===i?void 0:i.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){const e=this.findContainerAndOffsetFromLocation(t[0]),i=Lt(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(null!=e&&null!=i){const t=document.createRange();return t.setStart(...Array.from(e||[])),t.setEnd(...Array.from(i||[])),t}}getLocationAtPoint(t){const e=this.createDOMRangeFromPoint(t);var i;if(e)return null===(i=this.createLocationRangeFromDOMRange(e))||void 0===i?void 0:i[0]}domRangeWithinElement(t){return t.collapsed?C(this.element,t.startContainer):C(this.element,t.startContainer)&&C(this.element,t.endContainer)}}Wn.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),Wn.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),Wn.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),Wn.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),Wn.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");var Un=Object.freeze({__proto__:null,Attachment:Wi,AttachmentManager:Sn,AttachmentPiece:Ui,Block:Gi,Composition:kn,Document:on,Editor:On,HTMLParser:cn,HTMLSanitizer:ui,LineBreakInsertion:Rn,LocationMapper:Fn,ManagedAttachment:En,Piece:_i,PointMapper:jn,SelectionManager:Wn,SplittableList:zi,StringPiece:Vi,Text:Ki,UndoManager:Tn}),Vn=Object.freeze({__proto__:null,ObjectView:ie,AttachmentView:gi,BlockView:xi,DocumentView:Ci,PieceView:bi,PreviewableAttachmentView:fi,TextView:vi});const{lang:zn,css:qn,keyNames:Hn}=z,Jn=function(t){return function(){const e=t.apply(this,arguments);e.do(),this.undos||(this.undos=[]),this.undos.push(e.undo)}};class Kn extends q{constructor(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(...arguments),wi(this,\"makeElementMutable\",Jn((()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable})))),wi(this,\"addToolbar\",Jn((()=>{const t=T({tagName:\"div\",className:qn.attachmentToolbar,data:{trixMutable:!0},childNodes:T({tagName:\"div\",className:\"trix-button-row\",childNodes:T({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:T({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:zn.remove,attributes:{title:zn.remove},data:{trixAction:\"remove\"}})})})});return this.attachment.isPreviewable()&&t.appendChild(T({tagName:\"div\",className:qn.attachmentMetadataContainer,childNodes:T({tagName:\"span\",className:qn.attachmentMetadata,childNodes:[T({tagName:\"span\",className:qn.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),T({tagName:\"span\",className:qn.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),b(\"click\",{onElement:t,withCallback:this.didClickToolbar}),b(\"click\",{onElement:t,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),v(\"trix-attachment-before-toolbar\",{onElement:this.element,attributes:{toolbar:t,attachment:this.attachment}}),{do:()=>this.element.appendChild(t),undo:()=>S(t)}}))),wi(this,\"installCaptionEditor\",Jn((()=>{const t=T({tagName:\"textarea\",className:qn.attachmentCaptionEditor,attributes:{placeholder:zn.captionPlaceholder},data:{trixMutable:!0}});t.value=this.attachmentPiece.getCaption();const e=t.cloneNode();e.classList.add(\"trix-autoresize-clone\"),e.tabIndex=-1;const i=function(){e.value=t.value,t.style.height=e.scrollHeight+\"px\"};b(\"input\",{onElement:t,withCallback:i}),b(\"input\",{onElement:t,withCallback:this.didInputCaption}),b(\"keydown\",{onElement:t,withCallback:this.didKeyDownCaption}),b(\"change\",{onElement:t,withCallback:this.didChangeCaption}),b(\"blur\",{onElement:t,withCallback:this.didBlurCaption});const n=this.element.querySelector(\"figcaption\"),r=n.cloneNode();return{do:()=>{if(n.style.display=\"none\",r.appendChild(t),r.appendChild(e),r.classList.add(\"\".concat(qn.attachmentCaption,\"--editing\")),n.parentElement.insertBefore(r,n),i(),this.options.editCaption)return Rt((()=>t.focus()))},undo(){S(r),n.style.display=null}}}))),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=i,this.options=n,this.attachment=this.attachmentPiece.attachment,\"a\"===k(this.element)&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();null===(t=this.delegate)||void 0===t||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(null!=this.pendingCaption){const r=this.pendingCaption;var t,e,i,n;if(this.pendingCaption=null,r)null===(t=this.delegate)||void 0===t||null===(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)||void 0===e||e.call(t,{caption:r},this.attachment);else null===(i=this.delegate)||void 0===i||null===(n=i.attachmentEditorDidRequestRemovingAttributeForAttachment)||void 0===n||n.call(i,\"caption\",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(\"remove\"===t.target.getAttribute(\"data-trix-action\"))return null===(e=this.delegate)||void 0===e?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,i;if(\"return\"===Hn[t.keyCode])return t.preventDefault(),this.savePendingCaption(),null===(e=this.delegate)||void 0===e||null===(i=e.attachmentEditorDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}}class Gn extends q{constructor(t,i){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=i,this.documentView=new Ci(this.composition.document,{element:this.element}),b(\"focus\",{onElement:this.element,withCallback:this.didFocus}),b(\"blur\",{onElement:this.element,withCallback:this.didBlur}),b(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),b(\"mousedown\",{onElement:this.element,matchingSelector:e,withCallback:this.didClickAttachment}),b(\"click\",{onElement:this.element,matchingSelector:\"a\".concat(e),preventDefault:!0})}didFocus(t){var e;const i=()=>{var t,e;if(!this.focused)return this.focused=!0,null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidFocus)||void 0===e?void 0:e.call(t)};return(null===(e=this.blurPromise)||void 0===e?void 0:e.then(i))||i()}didBlur(t){this.blurPromise=new Promise((t=>Rt((()=>{var e,i;x(this.element)||(this.focused=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidBlur)||void 0===i||i.call(e));return this.blurPromise=null,t()}))))}didClickAttachment(t,e){var i,n;const r=this.findAttachmentForElement(e),o=!!y(t.target,{matchingSelector:\"figcaption\"});return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerDidSelectAttachment)||void 0===n?void 0:n.call(i,r,{editCaption:o})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,i,n,r,o;(this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced())&&(null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillSyncDocumentView)||void 0===n||n.call(i),this.documentView.sync(),null===(r=this.delegate)||void 0===r||null===(o=r.compositionControllerDidSyncDocumentView)||void 0===o||o.call(r));return null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidRender)||void 0===e?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var i;if((null===(i=this.attachmentEditor)||void 0===i?void 0:i.attachment)===t)return;const n=this.documentView.findElementForObject(t);if(!n)return;this.uninstallAttachmentEditor();const r=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new Kn(r,n,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return null===(t=this.attachmentEditor)||void 0===t?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}}class Yn extends q{}const $n=\"data-trix-mutable\",Xn=\"[\".concat($n,\"]\"),Zn={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0};class Qn extends q{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,Zn)}stop(){return this.observer.disconnect()}didMutate(t){var e,i;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return null===(e=this.delegate)||void 0===e||null===(i=e.elementDidMutate)||void 0===i||i.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter((t=>this.mutationIsSignificant(t)))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(const e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!M(t)}nodeIsMutable(t){return y(t,{matchingSelector:Xn})}nodesModifiedByMutation(t){const e=[];switch(t.type){case\"attributes\":t.attributeName!==$n&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){const{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),i=this.getTextChangesFromChildList();Array.from(i.additions).forEach((e=>{Array.from(t).includes(e)||t.push(e)})),e.push(...Array.from(i.deletions||[]));const n={},r=t.join(\"\");r&&(n.textAdded=r);const o=e.join(\"\");return o&&(n.textDeleted=o),n}getMutationsByType(t){return Array.from(this.mutations).filter((e=>e.type===t))}getTextChangesFromChildList(){let t,e;const i=[],n=[];Array.from(this.getMutationsByType(\"childList\")).forEach((t=>{i.push(...Array.from(t.addedNodes||[])),n.push(...Array.from(t.removedNodes||[]))}));0===i.length&&1===n.length&&I(n[0])?(t=[],e=[\"\\n\"]):(t=tr(i),e=tr(n));const r=t.filter(((t,i)=>t!==e[i])).map(Wt),o=e.filter(((e,i)=>e!==t[i])).map(Wt);return{additions:r,deletions:o}}getTextChangesFromCharacterData(){let t,e;const i=this.getMutationsByType(\"characterData\");if(i.length){const n=i[0],r=i[i.length-1],o=function(t,e){let i,n;return t=X.box(t),(e=X.box(e)).length0&&void 0!==arguments[0]?arguments[0]:[];const e=[];for(const i of Array.from(t))switch(i.nodeType){case Node.TEXT_NODE:e.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===k(i)?e.push(\"\\n\"):e.push(...Array.from(tr(i.childNodes)||[]))}return e};class er extends ee{constructor(t){super(...arguments),this.file=t}perform(t){const e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch(t){}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}}class ir{constructor(t){this.element=t}shouldIgnore(t){return!!a.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&nr(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&\"insertText\"!==this.event.inputType&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&(null===(t=this.event.data)||void 0===t?void 0:t.length)>50}isBeforeInputInsertText(){return\"beforeinput\"===this.event.type&&\"insertText\"===this.event.inputType}previousEventWasUnidentifiedKeydown(){var t,e;return\"keydown\"===(null===(t=this.previousEvent)||void 0===t?void 0:t.type)&&\"Unidentified\"===(null===(e=this.previousEvent)||void 0===e?void 0:e.key)}}const nr=(t,e)=>or(t)===or(e),rr=new RegExp(\"(\".concat(\"\",\"|\").concat(d,\"|\").concat(g,\"|\\\\s)+\"),\"g\"),or=t=>t.replace(rr,\" \").trim();class sr extends q{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new Qn(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new ir(this.element);for(const t in this.constructor.events)b(t,{onElement:this.element,withCallback:this.handlerFor(t)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestRender)||void 0===e?void 0:e.call(t)}requestReparse(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestReparse)||void 0===e||e.call(t),this.requestRender()}attachFiles(t){const e=Array.from(t).map((t=>new er(t)));return Promise.all(e).then((t=>{this.handleInput((function(){var e,i;return null===(e=this.delegate)||void 0===e||e.inputControllerWillAttachFiles(),null===(i=this.responder)||void 0===i||i.insertFiles(t),this.requestRender()}))}))}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput((()=>{if(!x(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}}))}}handleInput(t){try{var e;null===(e=this.delegate)||void 0===e||e.inputControllerWillHandleInput(),t.call(this)}finally{var i;null===(i=this.delegate)||void 0===i||i.inputControllerDidHandleInput()}}createLinkHTML(t,e){const i=document.createElement(\"a\");return i.href=t,i.textContent=e||t,i.outerHTML}}var ar;wi(sr,\"events\",{});const{browser:lr,keyNames:cr}=z;let ur=0;class hr extends sr{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(const e in t){const i=t[e];this.inputSummary[e]=i}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),Ft.reset()}elementDidMutate(t){var e,i;return this.isComposing()?null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidAllowUnhandledInput)||void 0===i?void 0:i.call(e):this.handleInput((function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()}))}mutationIsExpected(t){let{textAdded:e,textDeleted:i}=t;if(this.inputSummary.preferDocument)return!0;const n=null!=e?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,r=null!=i?this.inputSummary.didDelete:!this.inputSummary.didDelete,o=[\"\\n\",\" \\n\"].includes(e)&&!n,s=\"\\n\"===i&&!r;if(o&&!s||s&&!o){const t=this.getSelectedRange();if(t){var a;const i=o?e.replace(/\\n$/,\"\").length||-1:(null==e?void 0:e.length)||1;if(null!==(a=this.responder)&&void 0!==a&&a.positionIsBlockBreak(t[1]+i))return!0}}return n&&r}mutationIsSignificant(t){var e;const i=Object.keys(t).length>0,n=\"\"===(null===(e=this.compositionInput)||void 0===e?void 0:e.getEndData());return i||!n}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new fr(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var i;return!1!==(null===(i=this.responder)||void 0===i?void 0:i.deleteInDirection(t))?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(t){if(null==t||!t.setData)return!1;for(const e in Ct){const i=Ct[e];try{if(t.setData(e,i),!t.getData(e)===i)return!1}catch(t){return!1}}return!0}(t))return;const i=null===(e=this.responder)||void 0===e?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData(\"application/x-trix-document\",JSON.stringify(i)),t.setData(\"text/html\",Ci.render(i).innerHTML),t.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\")),!0}canAcceptDataTransfer(t){const e={};return Array.from((null==t?void 0:t.types)||[]).forEach((t=>{e[t]=!0})),e.Files||e[\"application/x-trix-document\"]||e[\"text/html\"]||e[\"text/plain\"]}getPastedHTMLUsingHiddenElement(t){const e=this.getSelectedRange(),i={position:\"absolute\",left:\"\".concat(window.pageXOffset,\"px\"),top:\"\".concat(window.pageYOffset,\"px\"),opacity:0},n=T({style:i,tagName:\"div\",editable:!0});return document.body.appendChild(n),n.focus(),requestAnimationFrame((()=>{const i=n.innerHTML;return S(n),this.setSelectedRange(e),t(i)}))}}wi(hr,\"events\",{keydown(t){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;const e=cr[t.keyCode];if(e){var i;let n=this.keys;[\"ctrl\",\"alt\",\"shift\",\"meta\"].forEach((e=>{var i;t[\"\".concat(e,\"Key\")]&&(\"ctrl\"===e&&(e=\"control\"),n=null===(i=n)||void 0===i?void 0:i[e])})),null!=(null===(i=n)||void 0===i?void 0:i[e])&&(this.setInputSummary({keyName:e}),Ft.reset(),n[e].call(this,t))}if(St(t)){const e=String.fromCharCode(t.keyCode).toLowerCase();if(e){var n;const i=[\"alt\",\"shift\"].map((e=>{if(t[\"\".concat(e,\"Key\")])return e})).filter((t=>t));i.push(e),null!==(n=this.delegate)&&void 0!==n&&n.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}}},keypress(t){if(null!=this.inputSummary.eventName)return;if(t.metaKey)return;if(t.ctrlKey&&!t.altKey)return;const e=mr(t);var i,n;return e?(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping(),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e,didDelete:this.selectionIsExpanded()})):void 0},textInput(t){const{data:e}=t,{textAdded:i}=this.inputSummary;if(i&&i!==e&&i.toUpperCase()===e){var n;const t=this.getSelectedRange();return this.setSelectedRange([t[0],t[1]+i.length]),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(t)}},dragenter(t){t.preventDefault()},dragstart(t){var e,i;return this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidStartDrag)||void 0===i?void 0:i.call(e)},dragover(t){if(this.draggedRange||this.canAcceptDataTransfer(t.dataTransfer)){t.preventDefault();const n={x:t.clientX,y:t.clientY};var e,i;if(!Tt(n,this.draggingPoint))return this.draggingPoint=n,null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidReceiveDragOverPoint)||void 0===i?void 0:i.call(e,this.draggingPoint)}},dragend(t){var e,i;null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidCancelDrag)||void 0===i||i.call(e),this.draggedRange=null,this.draggingPoint=null},drop(t){var e,i;t.preventDefault();const n=null===(e=t.dataTransfer)||void 0===e?void 0:e.files,r=t.dataTransfer.getData(\"application/x-trix-document\"),o={x:t.clientX,y:t.clientY};if(null===(i=this.responder)||void 0===i||i.setLocationRangeFromPointRange(o),null!=n&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,a;null===(s=this.delegate)||void 0===s||s.inputControllerWillMoveText(),null===(a=this.responder)||void 0===a||a.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var l;const t=on.fromJSONString(r);null===(l=this.responder)||void 0===l||l.insertDocument(t),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(t){var e,i;if(null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null===(i=this.delegate)||void 0===i||i.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented))return this.requestRender()},copy(t){var e;null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault()},paste(t){const e=t.clipboardData||t.testClipboardData,i={clipboard:e};if(!e||pr(t))return void this.getPastedHTMLUsingHiddenElement((t=>{var e,n,r;return i.type=\"text/html\",i.html=t,null===(e=this.delegate)||void 0===e||e.inputControllerWillPaste(i),null===(n=this.responder)||void 0===n||n.insertHTML(i.html),this.requestRender(),null===(r=this.delegate)||void 0===r?void 0:r.inputControllerDidPaste(i)}));const n=e.getData(\"URL\"),r=e.getData(\"text/html\"),o=e.getData(\"public.url-name\");if(n){var s,a,l;let t;i.type=\"text/html\",t=o?Vt(o).trim():n,i.html=this.createLinkHTML(n,t),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()}),null===(a=this.responder)||void 0===a||a.insertHTML(i.html),this.requestRender(),null===(l=this.delegate)||void 0===l||l.inputControllerDidPaste(i)}else if(Et(e)){var c,u,h;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(c=this.delegate)||void 0===c||c.inputControllerWillPaste(i),this.setInputSummary({textAdded:i.string,didDelete:this.selectionIsExpanded()}),null===(u=this.responder)||void 0===u||u.insertString(i.string),this.requestRender(),null===(h=this.delegate)||void 0===h||h.inputControllerDidPaste(i)}else if(r){var d,g,m;i.type=\"text/html\",i.html=r,null===(d=this.delegate)||void 0===d||d.inputControllerWillPaste(i),null===(g=this.responder)||void 0===g||g.insertHTML(i.html),this.requestRender(),null===(m=this.delegate)||void 0===m||m.inputControllerDidPaste(i)}else if(Array.from(e.types).includes(\"Files\")){var p,f;const t=null===(p=e.items)||void 0===p||null===(p=p[0])||void 0===p||null===(f=p.getAsFile)||void 0===f?void 0:f.call(p);if(t){var b,v,A;const e=dr(t);!t.name&&e&&(t.name=\"pasted-file-\".concat(++ur,\".\").concat(e)),i.type=\"File\",i.file=t,null===(b=this.delegate)||void 0===b||b.inputControllerWillAttachFiles(),null===(v=this.responder)||void 0===v||v.insertFile(i.file),this.requestRender(),null===(A=this.delegate)||void 0===A||A.inputControllerDidPaste(i)}}t.preventDefault()},compositionstart(t){return this.getCompositionInput().start(t.data)},compositionupdate(t){return this.getCompositionInput().update(t.data)},compositionend(t){return this.getCompositionInput().end(t.data)},beforeinput(t){this.inputSummary.didInput=!0},input(t){return this.inputSummary.didInput=!0,t.stopPropagation()}}),wi(hr,\"keys\",{backspace(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},delete(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},return(t){var e,i;return this.setInputSummary({preferDocument:!0}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i?void 0:i.insertLineBreak()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canIncreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.increaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},right(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},control:{d(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o(t){var e,i;return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{return(t){var e,i;null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canDecreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.decreaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"backward\")},right(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"forward\")}},alt:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}},meta:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}}}),hr.proxyMethod(\"responder?.getSelectedRange\"),hr.proxyMethod(\"responder?.setSelectedRange\"),hr.proxyMethod(\"responder?.expandSelectionInDirection\"),hr.proxyMethod(\"responder?.selectionIsInCursorTarget\"),hr.proxyMethod(\"responder?.selectionIsExpanded\");const dr=t=>{var e;return null===(e=t.type)||void 0===e||null===(e=e.match(/\\/(\\w+)$/))||void 0===e?void 0:e[1]},gr=!(null===(ar=\" \".codePointAt)||void 0===ar||!ar.call(\" \",0)),mr=function(t){if(t.key&&gr&&t.key.codePointAt(0)===t.keyCode)return t.key;{let e;if(null===t.which?e=t.keyCode:0!==t.which&&0!==t.charCode&&(e=t.charCode),null!=e&&\"escape\"!==cr[e])return X.fromCodepoints([e]).toString()}},pr=function(t){const e=t.clipboardData;if(e){if(e.types.includes(\"text/html\")){for(const t of e.types){const i=/^CorePasteboardFlavorType/.test(t),n=/^dyn\\./.test(t)&&e.getData(t);if(i||n)return!0}return!1}{const t=e.types.includes(\"com.apple.webarchive\"),i=e.types.includes(\"com.apple.flat-rtfd\");return t||i}}};class fr extends q{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,i;if(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded)null===(i=this.responder)||void 0===i||i.deleteInDirection(\"left\");this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null===(e=this.responder)||void 0===e?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){const t=this.selectPlaceholder();t&&(this.forgetPlaceholder(),this.range=t)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.setSelectedRange(this.range),null===(n=this.responder)||void 0===n||n.insertString(this.data.end),null===(r=this.responder)||void 0===r?void 0:r.setSelectedRange(this.range[0]+this.data.end.length)):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,i,n,r}getEndData(){return this.data.end}isEnded(){return null!=this.getEndData()}isSignificant(){return!lr.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return 0===(null===(t=this.data.start)||void 0===t?void 0:t.length)&&(null===(e=this.data.end)||void 0===e?void 0:e.length)>0&&this.range}}fr.proxyMethod(\"inputController.setInputSummary\"),fr.proxyMethod(\"inputController.requestRender\"),fr.proxyMethod(\"inputController.requestReparse\"),fr.proxyMethod(\"responder?.selectionIsExpanded\"),fr.proxyMethod(\"responder?.insertPlaceholder\"),fr.proxyMethod(\"responder?.selectPlaceholder\"),fr.proxyMethod(\"responder?.forgetPlaceholder\");class br extends sr{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidAllowUnhandledInput)||void 0===e?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;(cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing)||(null===(e=this.delegate)||void 0===e||e.render());null===(t=this.afterRender)||void 0===t||t.call(this),this.afterRender=null}reparse(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",i=arguments.length>1?arguments[1]:void 0;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e,i)}))}toggleAttributeIfSupported(t){var e;if(gt().includes(t))return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.toggleCurrentAttribute(t)}))}activateAttributeIfSupported(t,e){var i;if(gt().includes(t))return null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var i;return null===(i=this.responder)||void 0===i?void 0:i.setCurrentAttribute(t,e)}))}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{recordUndoEntry:!0};var i;e&&(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping());const n=()=>{var e;return null===(e=this.responder)||void 0===e?void 0:e.deleteInDirection(t)},r=this.getTargetDOMRange({minLength:this.composing?1:2});return r?this.withTargetDOMRange(r,n):n()}withTargetDOMRange(t,e){var i;return\"function\"==typeof t&&(e=t,t=this.getTargetDOMRange()),t?null===(i=this.responder)||void 0===i?void 0:i.withTargetDOMRange(t,e.bind(this)):(Ft.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{minLength:0};const n=null===(t=(e=this.event).getTargetRanges)||void 0===t?void 0:t.call(e);if(n&&n.length){const t=vr(n[0]);if(0===i||t.toString().length>=i)return t}}withEvent(t,e){let i;this.event=t;try{i=e.call(this)}finally{this.event=null}return i}}wi(br,\"events\",{keydown(t){if(St(t)){var e;const i=Er(t);null!==(e=this.delegate)&&void 0!==e&&e.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}else{let e=t.key;t.altKey&&(e+=\"+Alt\"),t.shiftKey&&(e+=\"+Shift\");const i=this.constructor.keys[e];if(i)return this.withEvent(t,i)}},paste(t){var e;let i;const n=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"URL\");return xr(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):Cr(t)?(t.preventDefault(),i={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(i),null===(o=this.responder)||void 0===o||o.insertString(i.string),this.render(),null===(s=this.delegate)||void 0===s?void 0:s.inputControllerDidPaste(i)):n?(t.preventDefault(),i={type:\"text/html\",html:this.createLinkHTML(n)},null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),null===(l=this.responder)||void 0===l||l.insertHTML(i.html),this.render(),null===(c=this.delegate)||void 0===c?void 0:c.inputControllerDidPaste(i)):void 0;var r,o,s,a,l,c},beforeinput(t){const e=this.constructor.inputTypes[t.inputType],i=(n=t,!(!/iPhone|iPad/.test(navigator.userAgent)||n.inputType&&\"insertParagraph\"!==n.inputType));var n;e&&(this.withEvent(t,e),i||this.scheduleRender()),i&&this.render()},input(t){Ft.reset()},dragstart(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.selectionContainsAttachments()&&(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null===(i=this.responder)||void 0===i?void 0:i.getSelectedRange(),point:Sr(t)})},dragenter(t){Ar(t)&&t.preventDefault()},dragover(t){if(this.dragging){t.preventDefault();const i=Sr(t);var e;if(!Tt(i,this.dragging.point))return this.dragging.point=i,null===(e=this.responder)||void 0===e?void 0:e.setLocationRangeFromPointRange(i)}else Ar(t)&&t.preventDefault()},drop(t){var e,i;if(this.dragging)return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),null===(i=this.responder)||void 0===i||i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(Ar(t)){var n;t.preventDefault();const e=Sr(t);return null===(n=this.responder)||void 0===n||n.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)}},dragend(){var t;this.dragging&&(null===(t=this.responder)||void 0===t||t.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(t){this.composing&&(this.composing=!1,a.recentAndroid||this.scheduleRender())}}),wi(br,\"keys\",{ArrowLeft(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},ArrowRight(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"forward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},Backspace(){var t,e,i;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageDeletingInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.deleteInDirection(\"backward\"),this.render()},Tab(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.increaseNestingLevel(),this.render()},\"Tab+Shift\"(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.decreaseNestingLevel(),this.render()}}),wi(br,\"inputTypes\",{deleteByComposition(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection(\"backward\")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange((function(){var t;this.deleteByDragRange=null===(t=this.responder)||void 0===t?void 0:t.getSelectedRange()}))},deleteCompositionText(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection(\"backward\")},deleteContentBackward(){return this.deleteInDirection(\"backward\")},deleteContentForward(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward(){return this.deleteInDirection(\"backward\")},deleteHardLineForward(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward(){return this.deleteInDirection(\"forward\")},deleteWordBackward(){return this.deleteInDirection(\"backward\")},deleteWordForward(){return this.deleteInDirection(\"forward\")},formatBackColor(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.increaseNestingLevel()}))},formatItalic(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.decreaseNestingLevel()}))},formatRemove(){this.withTargetDOMRange((function(){for(const i in null===(t=this.responder)||void 0===t?void 0:t.getCurrentAttributes()){var t,e;null===(e=this.responder)||void 0===e||e.removeCurrentAttribute(i)}}))},formatSetBlockTextDirection(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformRedo()},historyUndo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){const t=this.deleteByDragRange;var e;if(t)return this.deleteByDragRange=null,null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.moveTextFromRange(t)}))},insertFromPaste(){const{dataTransfer:t}=this.event,e={dataTransfer:t},i=t.getData(\"URL\"),n=t.getData(\"text/html\");if(i){var r;let n;this.event.preventDefault(),e.type=\"text/html\";const o=t.getData(\"public.url-name\");n=o?Vt(o).trim():i,e.html=this.createLinkHTML(i,n),null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(e.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(Et(t)){var o;e.type=\"text/plain\",e.string=t.getData(\"text/plain\"),null===(o=this.delegate)||void 0===o||o.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e.string)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(yr(this.event)){var s;e.type=\"File\",e.file=t.files[0],null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertFile(e.file)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(n){var a;this.event.preventDefault(),e.type=\"text/html\",e.html=n,null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(e.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(\"\\n\")},insertLink(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph(){var t;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertLineBreak()}))},insertReplacementText(){const t=this.event.dataTransfer.getData(\"text/plain\"),e=this.event.getTargetRanges()[0];this.withTargetDOMRange(e,(()=>{this.insertString(t,{updatePosition:!1})}))},insertText(){var t;return this.insertString(this.event.data||(null===(t=this.event.dataTransfer)||void 0===t?void 0:t.getData(\"text/plain\")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported(\"bullet\")}});const vr=function(t){const e=document.createRange();return e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},Ar=t=>{var e;return Array.from((null===(e=t.dataTransfer)||void 0===e?void 0:e.types)||[]).includes(\"Files\")},yr=t=>{var e;return(null===(e=t.dataTransfer.files)||void 0===e?void 0:e[0])&&!xr(t)&&!(t=>{let{dataTransfer:e}=t;return e.types.includes(\"Files\")&&e.types.includes(\"text/html\")&&e.getData(\"text/html\").includes(\"urn:schemas-microsoft-com:office:office\")})(t)},xr=function(t){const e=t.clipboardData;if(e){return Array.from(e.types).filter((t=>t.match(/file/i))).length===e.types.length&&e.files.length>=1}},Cr=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"text/plain\")&&1===e.types.length},Er=function(t){const e=[];return t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},Sr=t=>({x:t.clientX,y:t.clientY}),Rr=\"[data-trix-attribute]\",kr=\"[data-trix-action]\",Tr=\"\".concat(Rr,\", \").concat(kr),wr=\"[data-trix-dialog]\",Lr=\"\".concat(wr,\"[data-trix-active]\"),Dr=\"\".concat(wr,\" [data-trix-method]\"),Nr=\"\".concat(wr,\" [data-trix-input]\"),Ir=(t,e)=>(e||(e=Fr(t)),t.querySelector(\"[data-trix-input][name='\".concat(e,\"']\"))),Or=t=>t.getAttribute(\"data-trix-action\"),Fr=t=>t.getAttribute(\"data-trix-attribute\")||t.getAttribute(\"data-trix-dialog-attribute\");class Pr extends q{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),b(\"mousedown\",{onElement:this.element,matchingSelector:kr,withCallback:this.didClickActionButton}),b(\"mousedown\",{onElement:this.element,matchingSelector:Rr,withCallback:this.didClickAttributeButton}),b(\"click\",{onElement:this.element,matchingSelector:Tr,preventDefault:!0}),b(\"click\",{onElement:this.element,matchingSelector:Dr,withCallback:this.didClickDialogButton}),b(\"keydown\",{onElement:this.element,matchingSelector:Nr,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=Or(e);return this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r?void 0:r.toolbarDidInvokeAction(n,e);var r}didClickAttributeButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=Fr(e);var r;this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r||r.toolbarDidToggleAttribute(n);return this.refreshAttributeButtons()}didClickDialogButton(t,e){const i=y(e,{matchingSelector:wr});return this[e.getAttribute(\"data-trix-method\")].call(this,i)}didKeyDownDialogInput(t,e){if(13===t.keyCode){t.preventDefault();const i=e.getAttribute(\"name\"),n=this.getDialog(i);this.setAttribute(n)}if(27===t.keyCode)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton(((t,e)=>{t.disabled=!1===this.actions[e]}))}eachActionButton(t){return Array.from(this.element.querySelectorAll(kr)).map((e=>t(e,Or(e))))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton(((t,e)=>(t.disabled=!1===this.attributes[e],this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute(\"data-trix-active\",\"\"),t.classList.add(\"trix-active\")):(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\")))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(Rr)).map((e=>t(e,Fr(e))))}applyKeyboardCommand(t){const e=JSON.stringify(t.sort());for(const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))){const i=t.getAttribute(\"data-trix-key\").split(\"+\");if(JSON.stringify(i.sort())===e)return v(\"mousedown\",{onElement:t}),!0}return!1}dialogIsVisible(t){const e=this.getDialog(t);if(e)return e.hasAttribute(\"data-trix-active\")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,i;this.hideDialog(),null===(e=this.delegate)||void 0===e||e.toolbarWillShowDialog();const n=this.getDialog(t);n.setAttribute(\"data-trix-active\",\"\"),n.classList.add(\"trix-active\"),Array.from(n.querySelectorAll(\"input[disabled]\")).forEach((t=>{t.removeAttribute(\"disabled\")}));const r=Fr(n);if(r){const e=Ir(n,t);e&&(e.value=this.attributes[r]||\"\",e.select())}return null===(i=this.delegate)||void 0===i?void 0:i.toolbarDidShowDialog(t)}setAttribute(t){var e;const i=Fr(t),n=Ir(t,i);return!n.willValidate||(n.setCustomValidity(\"\"),n.checkValidity()&&this.isSafeAttribute(n))?(null===(e=this.delegate)||void 0===e||e.toolbarDidUpdateAttribute(i,n.value),this.hideDialog()):(n.setCustomValidity(\"Invalid value\"),n.setAttribute(\"data-trix-validate\",\"\"),n.classList.add(\"trix-validate\"),n.focus())}isSafeAttribute(t){return!t.hasAttribute(\"data-trix-validate-href\")||si.isValidAttribute(\"a\",\"href\",t.value)}removeAttribute(t){var e;const i=Fr(t);return null===(e=this.delegate)||void 0===e||e.toolbarDidRemoveAttribute(i),this.hideDialog()}hideDialog(){const t=this.element.querySelector(Lr);var e;if(t)return t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null===(e=this.delegate)||void 0===e?void 0:e.toolbarDidHideDialog((t=>t.getAttribute(\"data-trix-dialog\"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(Nr)).forEach((t=>{t.setAttribute(\"disabled\",\"disabled\"),t.removeAttribute(\"data-trix-validate\"),t.classList.remove(\"trix-validate\")}))}getDialog(t){return this.element.querySelector(\"[data-trix-dialog=\".concat(t,\"]\"))}}class Mr extends Yn{constructor(t){let{editorElement:e,document:i,html:n}=t;super(...arguments),this.editorElement=e,this.selectionManager=new Wn(this.editorElement),this.selectionManager.delegate=this,this.composition=new kn,this.composition.delegate=this,this.attachmentManager=new Sn(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=2===_.getLevel()?new br(this.editorElement):new hr(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new Gn(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new Pr(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new On(this.composition,this.selectionManager,this.editorElement),i?this.editor.loadDocument(i):this.editor.loadHTML(n)}registerSelectionManager(){return Ft.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return Ft.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement(\"document-change\"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement(\"file-accept\",{file:t})}compositionDidAddAttachment(t){const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-add\",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")}compositionDidRemoveAttachment(t){const e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement(\"attachment-remove\",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")}compositionControllerDidBlur(){return this.notifyEditorElement(\"blur\")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){const e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement(\"change\")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry(\"Cut\")}inputControllerWillPaste(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry(\"Move\")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry(\"Drop Files\")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!Dt(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t,e){return this.invokeAction(t,e)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!(null===(e=this.actions[t])||void 0===e||null===(e=e.test)||void 0===e||!e.call(this));var e}invokeAction(t,e){return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t,invokingElement:e}):null===(i=this.actions[t])||void 0===i||null===(i=i.perform)||void 0===i?void 0:i.call(this);var i}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){const t={};for(const e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){const t=this.getCurrentActions();if(!Tt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach((e=>{const{document:i,selectedRange:n}=t;t=e.call(this.editor,t)||{},t.document||(t.document=i),t.selectedRange||(t.selectedRange=n)})),e=t,i=this.composition.getSnapshot(),!Dt(e.selectedRange,i.selectedRange)||!e.document.isEqualTo(i.document))return this.composition.loadSnapshot(t);var e,i}updateInputElement(){const t=function(t,e){const i=xn[e];if(i)return i(t);throw new Error(\"unknown content type: \".concat(e))}(this.compositionController.getSerializableElement(),\"text/html\");return this.editorElement.setFormValue(t)}notifyEditorElement(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){const e=mt(t),i=this.selectionManager.getLocationRange();if(e||!Lt(i))return this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),i=0;i0?Math.floor((new Date).getTime()/V.interval):0}isFocused(){var t;return this.editorElement===(null===(t=this.editorElement.ownerDocument)||void 0===t?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}}wi(Mr,\"actions\",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return _.pickFiles(this.editor.insertFiles)}}}),Mr.proxyMethod(\"getSelectionManager().setLocationRange\"),Mr.proxyMethod(\"getSelectionManager().getLocationRange\");var Br=Object.freeze({__proto__:null,AttachmentEditorController:Kn,CompositionController:Gn,Controller:Yn,EditorController:Mr,InputController:sr,Level0InputController:hr,Level2InputController:br,ToolbarController:Pr}),_r=Object.freeze({__proto__:null,MutationObserver:Qn,SelectionChangeObserver:Ot}),jr=Object.freeze({__proto__:null,FileVerificationOperation:er,ImagePreloadOperation:ji});vt(\"trix-toolbar\",\"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\");class Wr extends HTMLElement{connectedCallback(){\"\"===this.innerHTML&&(this.innerHTML=U.getDefaultHTML())}}let Ur=0;const Vr=function(t){if(!t.hasAttribute(\"contenteditable\"))return t.setAttribute(\"contenteditable\",\"\"),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.times=1,b(t,e)}(\"focus\",{onElement:t,withCallback:()=>zr(t)})},zr=function(t){return qr(t),Hr(t)},qr=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"enableObjectResizing\"))return document.execCommand(\"enableObjectResizing\",!1,!1),b(\"mscontrolselect\",{onElement:t,preventDefault:!0})},Hr=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"DefaultParagraphSeparator\")){const{tagName:t}=n.default;if([\"div\",\"p\"].includes(t))return document.execCommand(\"DefaultParagraphSeparator\",!1,t)}},Jr=a.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"};vt(\"trix-editor\",\"%t {\\n display: block;\\n}\\n\\n%t:empty::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \".concat(e,\" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(e,\" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(e,\" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \").concat(Jr.display,\" !important;\\n width: \").concat(Jr.width,\" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\"));var Kr=new WeakMap,Gr=new WeakSet;class Yr{constructor(t){var e,i;Mi(e=this,i=Gr),i.add(e),Bi(this,Kr,{writable:!0,value:void 0}),this.element=t,Ni(this,Kr,t.attachInternals())}connectedCallback(){Pi(this,Gr,$r).call(this)}disconnectedCallback(){}get labels(){return Di(this,Kr).labels}get disabled(){var t;return null===(t=this.element.inputElement)||void 0===t?void 0:t.disabled}set disabled(t){this.element.toggleAttribute(\"disabled\",t)}get required(){return this.element.hasAttribute(\"required\")}set required(t){this.element.toggleAttribute(\"required\",t),Pi(this,Gr,$r).call(this)}get validity(){return Di(this,Kr).validity}get validationMessage(){return Di(this,Kr).validationMessage}get willValidate(){return Di(this,Kr).willValidate}setFormValue(t){Pi(this,Gr,$r).call(this)}checkValidity(){return Di(this,Kr).checkValidity()}reportValidity(){return Di(this,Kr).reportValidity()}setCustomValidity(t){Pi(this,Gr,$r).call(this,t)}}function $r(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const{required:e,value:i}=this.element,n=e&&!i,r=!!t,o=T(\"input\",{required:e}),s=t||o.validationMessage;Di(this,Kr).setValidity({valueMissing:n,customError:r},s)}var Xr=new WeakMap,Zr=new WeakMap,Qr=new WeakMap;class to{constructor(t){Bi(this,Xr,{writable:!0,value:void 0}),Bi(this,Zr,{writable:!0,value:t=>{t.defaultPrevented||t.target===this.element.form&&this.element.reset()}}),Bi(this,Qr,{writable:!0,value:t=>{if(t.defaultPrevented)return;if(this.element.contains(t.target))return;const e=y(t.target,{matchingSelector:\"label\"});e&&Array.from(this.labels).includes(e)&&this.element.focus()}}),this.element=t}connectedCallback(){Ni(this,Xr,function(t){if(t.hasAttribute(\"aria-label\")||t.hasAttribute(\"aria-labelledby\"))return;const e=function(){const e=Array.from(t.labels).map((e=>{if(!e.contains(t))return e.textContent})).filter((t=>t)),i=e.join(\" \");return i?t.setAttribute(\"aria-label\",i):t.removeAttribute(\"aria-label\")};return e(),b(\"focus\",{onElement:t,withCallback:e})}(this.element)),window.addEventListener(\"reset\",Di(this,Zr),!1),window.addEventListener(\"click\",Di(this,Qr),!1)}disconnectedCallback(){var t;null===(t=Di(this,Xr))||void 0===t||t.destroy(),window.removeEventListener(\"reset\",Di(this,Zr),!1),window.removeEventListener(\"click\",Di(this,Qr),!1)}get labels(){const t=[];this.element.id&&this.element.ownerDocument&&t.push(...Array.from(this.element.ownerDocument.querySelectorAll(\"label[for='\".concat(this.element.id,\"']\"))||[]));const e=y(this.element,{matchingSelector:\"label\"});return e&&[this.element,null].includes(e.control)&&t.push(e),t}get disabled(){return console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\"),!1}set disabled(t){console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\")}get required(){return console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\"),!1}set required(t){console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\")}get validity(){return console.warn(\"This browser does not support the validity property for trix-editor elements.\"),null}get validationMessage(){return console.warn(\"This browser does not support the validationMessage property for trix-editor elements.\"),\"\"}get willValidate(){return console.warn(\"This browser does not support the willValidate property for trix-editor elements.\"),!1}setFormValue(t){}checkValidity(){return console.warn(\"This browser does not support checkValidity() for trix-editor elements.\"),!0}reportValidity(){return console.warn(\"This browser does not support reportValidity() for trix-editor elements.\"),!0}setCustomValidity(t){console.warn(\"This browser does not support setCustomValidity(validationMessage) for trix-editor elements.\")}}var eo=new WeakMap;class io extends HTMLElement{constructor(){super(),Bi(this,eo,{writable:!0,value:void 0}),Ni(this,eo,this.constructor.formAssociated?new Yr(this):new to(this))}get trixId(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++Ur),this.trixId)}get labels(){return Di(this,eo).labels}get disabled(){return Di(this,eo).disabled}set disabled(t){Di(this,eo).disabled=t}get required(){return Di(this,eo).required}set required(t){Di(this,eo).required=t}get validity(){return Di(this,eo).validity}get validationMessage(){return Di(this,eo).validationMessage}get willValidate(){return Di(this,eo).willValidate}get type(){return this.localName}get toolbarElement(){var t;if(this.hasAttribute(\"toolbar\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"toolbar\"));if(this.parentNode){const t=\"trix-toolbar-\".concat(this.trixId);return this.setAttribute(\"toolbar\",t),this.internalToolbar=T(\"trix-toolbar\",{id:t}),this.parentNode.insertBefore(this.internalToolbar,this),this.internalToolbar}}get form(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.form}get inputElement(){var t;if(this.hasAttribute(\"input\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"input\"));if(this.parentNode){const t=\"trix-input-\".concat(this.trixId);this.setAttribute(\"input\",t);const e=T(\"input\",{type:\"hidden\",id:t});return this.parentNode.insertBefore(e,this.nextElementSibling),e}}get editor(){var t;return null===(t=this.editorController)||void 0===t?void 0:t.editor}get name(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.name}get value(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.value}set value(t){var e;this.defaultValue=t,null===(e=this.editor)||void 0===e||e.loadHTML(this.defaultValue)}attributeChangedCallback(t,e,i){\"connected\"===t&&this.isConnected&&null!=e&&e!==i&&requestAnimationFrame((()=>this.reconnect()))}notify(t,e){if(this.editorController)return v(\"trix-\".concat(t),{onElement:this,attributes:e})}setFormValue(t){this.inputElement&&(this.inputElement.value=t,Di(this,eo).setFormValue(t))}connectedCallback(){this.hasAttribute(\"data-trix-internal\")||(Vr(this),function(t){if(!t.hasAttribute(\"role\"))t.setAttribute(\"role\",\"textbox\")}(this),this.editorController||(v(\"trix-before-initialize\",{onElement:this}),this.editorController=new Mr({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame((()=>v(\"trix-initialize\",{onElement:this})))),this.editorController.registerSelectionManager(),Di(this,eo).connectedCallback(),this.toggleAttribute(\"connected\",!0),function(t){if(!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t)t.focus()}(this))}disconnectedCallback(){var t;null===(t=this.editorController)||void 0===t||t.unregisterSelectionManager(),Di(this,eo).disconnectedCallback(),this.toggleAttribute(\"connected\",!1)}reconnect(){this.removeInternalToolbar(),this.disconnectedCallback(),this.connectedCallback()}removeInternalToolbar(){var t;null===(t=this.internalToolbar)||void 0===t||t.remove(),this.internalToolbar=null}checkValidity(){return Di(this,eo).checkValidity()}reportValidity(){return Di(this,eo).reportValidity()}setCustomValidity(t){Di(this,eo).setCustomValidity(t)}formDisabledCallback(t){this.inputElement&&(this.inputElement.disabled=t),this.toggleAttribute(\"contenteditable\",!t)}formResetCallback(){this.reset()}reset(){this.value=this.defaultValue}}wi(io,\"formAssociated\",\"ElementInternals\"in window),wi(io,\"observedAttributes\",[\"connected\"]);const no={VERSION:t,config:z,core:Cn,models:Un,views:Vn,controllers:Br,observers:_r,operations:jr,elements:Object.freeze({__proto__:null,TrixEditorElement:io,TrixToolbarElement:Wr}),filters:Object.freeze({__proto__:null,Filter:Dn,attachmentGalleryFilter:Nn})};Object.assign(no,Un),window.Trix=no,setTimeout((function(){customElements.get(\"trix-toolbar\")||customElements.define(\"trix-toolbar\",Wr),customElements.get(\"trix-editor\")||customElements.define(\"trix-editor\",io)}),0);export{no as default};\n//# sourceMappingURL=trix.esm.min.js.map\n","var sparkMd5 = {\n exports: {}\n};\n\n(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })((function(undefined$1) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer;\n this.fileReader = new FileReader;\n this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n}\n\nfunction getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nfunction findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n const {disabled: disabled} = element;\n const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n}\n\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n}\n\nclass BlobRecord {\n constructor(file, checksum, url, customHeaders = {}) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n Object.keys(customHeaders).forEach((headerKey => {\n this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n }));\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const {responseType: responseType, response: response} = this.xhr;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const {response: response} = this;\n const {direct_upload: direct_upload} = response;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n}\n\nclass BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const {url: url, headers: headers} = blob.directUploadData;\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const {status: status, response: response} = this.xhr;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n constructor(file, url, delegate, customHeaders = {}) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n this.customHeaders = customHeaders;\n }\n create(callback) {\n FileChecksum.create(this.file, ((error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create((error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create((error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n }));\n }\n }));\n }));\n }\n}\n\nfunction notify(object, methodName, ...messages) {\n if (object && typeof object[methodName] == \"function\") {\n return object[methodName](...messages);\n }\n}\n\nclass DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n }));\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name, detail = {}) {\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start((error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n }));\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach((input => {\n toArray(input.files).forEach((file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n }));\n }));\n return controllers;\n }\n dispatch(name, detail = {}) {\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n}\n\nfunction didClick(event) {\n const button = event.target.closest(\"button, input\");\n if (button && button.type === \"submit\" && button.form) {\n submitButtonsByForm.set(button.form, button);\n }\n}\n\nfunction didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n}\n\nfunction handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const {inputs: inputs} = controller;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start((error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n }));\n }\n}\n\nfunction submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const {disabled: disabled} = button;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n input.disabled = true;\n}\n\nfunction enable(input) {\n input.disabled = false;\n}\n\nfunction autostart() {\n if (window.ActiveStorage) {\n start();\n }\n}\n\nsetTimeout(autostart, 1);\n\nclass AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n this.dispatch(\"start\");\n }\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", (event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }));\n }\n directUploadDidComplete(error, attributes) {\n if (error) {\n this.dispatchError(error);\n } else {\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n this.dispatch(\"end\");\n }\n }\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n dispatch(name, detail = {}) {\n detail.attachment = this.attachment;\n return dispatchEvent(this.element, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n}\n\naddEventListener(\"trix-attachment-add\", (event => {\n const {attachment: attachment, target: target} = event;\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n}));\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n cancelAccrual(event) {\n const accrualAccount = event.target.closest('.accrual-form').querySelector('.accrual-account-id select')\n accrualAccount.dispatchEvent(new Event('reset'))\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Rails from '@rails/ujs'\nimport { Turbo } from '@hotwired/turbo-rails'\nimport JsFormError from '../standalone/components/JsFormError'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = [\n 'userForm',\n 'pinForm',\n 'companyForm',\n 'submitCompanyFormButton',\n 'pinFormSubmitButton',\n 'backButton',\n 'smsButton',\n 'altinnButton',\n 'closeButton',\n 'alert',\n 'userPasswordInput',\n 'userUserNameInput',\n 'pinMethodInput',\n 'altinnPinCode',\n 'altinnUser',\n 'altinnPassword',\n ]\n\n declare companyFormTarget: HTMLElement\n declare userFormTarget: HTMLElement\n declare pinFormTarget: HTMLElement\n declare alertTarget: HTMLElement\n declare submitCompanyFormButtonTarget: HTMLButtonElement\n declare pinFormSubmitButtonTarget: HTMLButtonElement\n declare hasPinFormSubmitButtonTarget: boolean\n declare smsButtonTarget: HTMLButtonElement\n declare backButtonTarget: HTMLButtonElement\n declare altinnButtonTarget: HTMLButtonElement\n declare closeButtonTarget: HTMLButtonElement\n declare pinMethodInputTarget: HTMLInputElement\n declare userPasswordInputTarget: HTMLInputElement\n declare userUserNameInputTarget: HTMLInputElement\n declare altinnPinCodeTarget: HTMLInputElement\n declare altinnUserTarget: HTMLInputElement\n declare altinnPasswordTarget: HTMLInputElement\n\n states: Array\n state: string\n\n companyFormForm: HTMLFormElement\n userFormForm: HTMLFormElement\n pinFormForm: HTMLFormElement\n connect() {\n // Remember connect will be called when the main page is loaded, not only when the modal is loaded\n this.states = ['companyForm', 'userForm', 'pinForm', 'done', 'failure']\n\n if (this.altinnUserTarget.value == '') {\n this.state = 'companyForm'\n } else {\n this.state = 'userForm'\n }\n this.updateVisual()\n\n this.companyFormForm = this.companyFormTarget.getElementsByTagName('form')[0]\n\n this.companyFormForm.addEventListener('ajax:success', (event: CustomEvent) => {\n let data = event.detail[0]\n if (data['status'] === 'ok') {\n this.alert(i18n.t('altinn_modal.system_login_saved'), 'success')\n this.state = 'userForm'\n this.updateVisual()\n JsFormError.removePreviousErrors()\n }\n })\n\n this.companyFormForm.addEventListener('ajax:error', (event: CustomEvent) => {\n let data = event.detail[0]\n new JsFormError('company', data).updateForm()\n })\n\n this.userFormForm = this.userFormTarget.getElementsByTagName('form')[0]\n\n this.userFormForm.addEventListener('ajax:success', (event: CustomEvent) => {\n let data = event.detail[0]\n if (data['status'] === 'ok') {\n this.alert(data['messages'], 'info')\n this.state = 'pinForm'\n this.updateVisual()\n if (data['redirect']) {\n window.location = data['redirect']\n }\n JsFormError.removePreviousErrors()\n }\n })\n this.userFormForm.addEventListener('ajax:error', (event: CustomEvent) => {\n let data = event.detail[0]\n new JsFormError('altinn_login', data).updateForm()\n })\n\n this.pinFormForm = this.pinFormTarget.getElementsByTagName('form')[0]\n\n this.pinFormForm.addEventListener('ajax:success', (event: CustomEvent) => {\n let data = event.detail[0]\n if (data['status'] === 'ok') {\n this.state = 'done'\n if (data['redirect']) {\n Turbo.visit(`${data['redirect']}?message=${data['messages']}`)\n } else {\n let urlParams = new URLSearchParams(location.search)\n urlParams.set('message', data['messages'])\n Turbo.visit(`${location.protocol}//${location.host}${location.pathname}?${urlParams.toString()}`)\n }\n JsFormError.removePreviousErrors()\n }\n })\n this.pinFormForm.addEventListener('ajax:error', (event: CustomEvent) => {\n let data = event.detail[0]\n this.state = 'failure'\n new JsFormError('altinn_login', data).updateForm()\n this.updateVisual()\n })\n\n // Since altinn validates username, password and letter code in one go, the user should be able to\n // redo the whole flow if validation fails\n this.element.addEventListener('hidden.bs.modal', (event) => {\n // reverse only altinn-modal\n if ((event.target as HTMLElement).dataset.controller !== 'altinn-modal') return\n\n this.resetModalState()\n })\n\n this.setUpFocusOnShowModal()\n }\n\n alert(text, type) {\n this.alertTarget.innerHTML = text\n this.alertTarget.classList.remove('d-none')\n this.alertTarget.classList.remove('alert-success')\n this.alertTarget.classList.remove('alert-danger')\n this.alertTarget.classList.remove('alert-info')\n this.alertTarget.classList.add(`alert-${type}`)\n }\n\n updateVisual() {\n this.hideEverything()\n switch (this.state) {\n case 'companyForm':\n this.companyFormTarget.classList.remove('d-none')\n this.submitCompanyFormButtonTarget.classList.remove('d-none')\n this.submitCompanyFormButtonTarget.innerHTML = i18n.t('navigation.save')\n break\n case 'userForm':\n this.userFormTarget.classList.remove('d-none')\n this.smsButtonTarget.classList.remove('d-none')\n if (this.altinnUserTarget.value == '') {\n this.backButtonTarget.classList.remove('d-none')\n }\n this.altinnButtonTarget.classList.remove('d-none')\n break\n case 'pinForm':\n this.pinFormTarget.classList.remove('d-none')\n this.backButtonTarget.classList.remove('d-none')\n this.pinFormSubmitButtonTarget.classList.remove('d-none')\n break\n case 'done':\n this.closeButtonTarget.classList.remove('d-none')\n this.pinFormSubmitButtonTarget.disabled = true\n break\n case 'failure':\n this.pinFormTarget.classList.remove('d-none')\n this.backButtonTarget.classList.remove('d-none')\n this.pinFormSubmitButtonTarget.classList.remove('d-none')\n this.pinFormSubmitButtonTarget.disabled = false\n break\n }\n this.targetsFocus()\n }\n\n hideEverything() {\n this.companyFormTarget.classList.add('d-none')\n this.userFormTarget.classList.add('d-none')\n this.pinFormTarget.classList.add('d-none')\n\n this.backButtonTarget.classList.add('d-none')\n this.submitCompanyFormButtonTarget.classList.add('d-none')\n this.smsButtonTarget.classList.add('d-none')\n this.altinnButtonTarget.classList.add('d-none')\n this.closeButtonTarget.classList.add('d-none')\n this.pinFormSubmitButtonTarget.classList.add('d-none')\n }\n\n submitCompanyForm() {\n Rails.fire(this.companyFormForm, 'submit')\n this.updateVisual()\n }\n\n submitPinForm(event) {\n event.preventDefault()\n // The server side may take some time so we need to immediately disable the submit button, if\n // the request fails it'll be enabled in updateVisual\n this.pinFormSubmitButtonTarget.disabled = true\n Rails.fire(this.pinFormForm, 'submit')\n this.updateVisual()\n }\n\n requestAltinnPin() {\n this.pinMethodInputTarget.value = 'AltinnPin'\n Rails.fire(this.userFormForm, 'submit')\n }\n\n requestSmsPin() {\n this.pinMethodInputTarget.value = 'SMSPin'\n Rails.fire(this.userFormForm, 'submit')\n }\n\n resetModalState() {\n this.alertTarget.classList.add('d-none')\n this.state = this.states[0]\n this.updateVisual()\n }\n\n previousModalState(event: Event) {\n event.preventDefault()\n\n this.alertTarget.classList.add('d-none')\n this.state = this.states[this.states.indexOf(this.state) - 1]\n this.updateVisual()\n }\n\n autoSignClick(event: Event) {\n let checkbox = event.target as HTMLInputElement\n if (this.hasPinFormSubmitButtonTarget) {\n if (checkbox.checked) {\n this.pinFormSubmitButtonTarget.innerText = i18n.t('altinn_modal.submit_text.send_and_sign')\n } else {\n this.pinFormSubmitButtonTarget.innerText = i18n.t('altinn_modal.submit_text.send')\n }\n }\n }\n\n setUpFocusOnShowModal() {\n // we can't use target since bootstrap fires events through jQuery\n // here should be arrow function since it does the trick with closures\n this.element.addEventListener('shown.bs.modal', () => {\n this.targetsFocus()\n })\n }\n\n targetsFocus() {\n switch (this.state) {\n case 'companyForm':\n if (this.altinnUserTarget.value === '') {\n this.altinnUserTarget.focus()\n } else if (this.altinnPasswordTarget.value === '') {\n this.altinnPasswordTarget.focus()\n } else {\n this.submitCompanyFormButtonTarget.focus()\n }\n break\n case 'userForm':\n if (this.userUserNameInputTarget.value === '') {\n this.userUserNameInputTarget.focus()\n } else {\n this.userPasswordInputTarget.focus()\n }\n break\n case 'pinForm':\n this.altinnPinCodeTarget.focus()\n break\n }\n }\n}\n","// Run the function f in the next animation frame.\nexport function nextFrame(f) {\n window.setTimeout(f, 0)\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { nextFrame } from '../rendering'\n\nexport default class extends Controller {\n click(e: Event) {\n e.preventDefault()\n if (this.element.getAttribute('data-nudge-target') !== null) {\n let target = document.querySelector(this.element.getAttribute('data-nudge-target'))\n target.classList.remove('attention-nudger')\n nextFrame(() => {\n target.classList.add('attention-nudger')\n target.scrollIntoView({ behavior: 'smooth', block: 'start' })\n })\n }\n }\n}\n","// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z\nvar module = {};\n\n// source content\n/* globals Map */\n\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function';\n var canDrawBitmap = (function () {\n // this mostly supports ssr\n if (!global.OffscreenCanvas) {\n return false;\n }\n\n var canvas = new OffscreenCanvas(1, 1);\n var ctx = canvas.getContext('2d');\n ctx.fillRect(0, 0, 1, 1);\n var bitmap = canvas.transferToImageBitmap();\n\n try {\n ctx.createPattern(bitmap, 'no-repeat');\n } catch (e) {\n return false;\n }\n\n return true;\n })();\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var bitmapMapper = (function (skipTransform, map) {\n // see https://github.com/catdad/canvas-confetti/issues/209\n // creating canvases is actually pretty expensive, so we should create a\n // 1:1 map for bitmap:canvas, so that we can animate the confetti in\n // a performant manner, but also not store them forever so that we don't\n // have a memory leak\n return {\n transform: function(bitmap) {\n if (skipTransform) {\n return bitmap;\n }\n\n if (map.has(bitmap)) {\n return map.get(bitmap);\n }\n\n var canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bitmap, 0, 0);\n\n map.set(bitmap, canvas);\n\n return canvas;\n },\n clear: function () {\n map.clear();\n }\n };\n })(canDrawBitmap, new Map());\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar,\n flat: opts.flat\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.velocity *= fetti.decay;\n\n if (fetti.flat) {\n fetti.wobble = 0;\n fetti.wobbleX = fetti.x + (10 * fetti.scalar);\n fetti.wobbleY = fetti.y + (10 * fetti.scalar);\n\n fetti.tiltSin = 0;\n fetti.tiltCos = 0;\n fetti.random = 1;\n } else {\n fetti.wobble += fetti.wobbleSpeed;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n }\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n\n context.beginPath();\n\n if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) {\n context.fill(transformPath2D(\n fetti.shape.path,\n fetti.shape.matrix,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * 0.1,\n Math.abs(y2 - y1) * 0.1,\n Math.PI / 10 * fetti.wobble\n ));\n } else if (fetti.shape.type === 'bitmap') {\n var rotation = Math.PI / 10 * fetti.wobble;\n var scaleX = Math.abs(x2 - x1) * 0.1;\n var scaleY = Math.abs(y2 - y1) * 0.1;\n var width = fetti.shape.bitmap.width * fetti.scalar;\n var height = fetti.shape.bitmap.height * fetti.scalar;\n\n var matrix = new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n fetti.x,\n fetti.y\n ]);\n\n // apply the transform matrix from the confetti shape\n matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix));\n\n var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat');\n pattern.setTransform(matrix);\n\n context.globalAlpha = (1 - progress);\n context.fillStyle = pattern;\n context.fillRect(\n fetti.x - (width / 2),\n fetti.y - (height / 2),\n width,\n height\n );\n context.globalAlpha = 1;\n } else if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var hasResizeEventRegistered = false;\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var flat = !!prop(options, 'flat');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar,\n flat: flat\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n hasResizeEventRegistered = false;\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n if (document.body.contains(canvas)) {\n document.body.removeChild(canvas); \n }\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize && !hasResizeEventRegistered) {\n hasResizeEventRegistered = true;\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) {\n var path2d = new Path2D(pathString);\n\n var t1 = new Path2D();\n t1.addPath(path2d, new DOMMatrix(pathMatrix));\n\n var t2 = new Path2D();\n // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix\n t2.addPath(t1, new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n x,\n y\n ]));\n\n return t2;\n }\n\n function shapeFromPath(pathData) {\n if (!canUsePaths) {\n throw new Error('path confetti are not supported in this browser');\n }\n\n var path, matrix;\n\n if (typeof pathData === 'string') {\n path = pathData;\n } else {\n path = pathData.path;\n matrix = pathData.matrix;\n }\n\n var path2d = new Path2D(path);\n var tempCanvas = document.createElement('canvas');\n var tempCtx = tempCanvas.getContext('2d');\n\n if (!matrix) {\n // attempt to figure out the width of the path, up to 1000x1000\n var maxSize = 1000;\n var minX = maxSize;\n var minY = maxSize;\n var maxX = 0;\n var maxY = 0;\n var width, height;\n\n // do some line skipping... this is faster than checking\n // every pixel and will be mostly still correct\n for (var x = 0; x < maxSize; x += 2) {\n for (var y = 0; y < maxSize; y += 2) {\n if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n\n width = maxX - minX;\n height = maxY - minY;\n\n var maxDesiredSize = 10;\n var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height);\n\n matrix = [\n scale, 0, 0, scale,\n -Math.round((width/2) + minX) * scale,\n -Math.round((height/2) + minY) * scale\n ];\n }\n\n return {\n type: 'path',\n path: path,\n matrix: matrix\n };\n }\n\n function shapeFromText(textData) {\n var text,\n scalar = 1,\n color = '#000000',\n // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n fontFamily = '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif';\n\n if (typeof textData === 'string') {\n text = textData;\n } else {\n text = textData.text;\n scalar = 'scalar' in textData ? textData.scalar : scalar;\n fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily;\n color = 'color' in textData ? textData.color : color;\n }\n\n // all other confetti are 10 pixels,\n // so this pixel size is the de-facto 100% scale confetti\n var fontSize = 10 * scalar;\n var font = '' + fontSize + 'px ' + fontFamily;\n\n var canvas = new OffscreenCanvas(fontSize, fontSize);\n var ctx = canvas.getContext('2d');\n\n ctx.font = font;\n var size = ctx.measureText(text);\n var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft);\n var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent);\n\n var padding = 2;\n var x = size.actualBoundingBoxLeft + padding;\n var y = size.actualBoundingBoxAscent + padding;\n width += padding + padding;\n height += padding + padding;\n\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n ctx.font = font;\n ctx.fillStyle = color;\n\n ctx.fillText(text, x, y);\n\n var scale = 1 / scalar;\n\n return {\n type: 'bitmap',\n // TODO these probably need to be transfered for workers\n bitmap: canvas.transferToImageBitmap(),\n matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2]\n };\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n module.exports.shapeFromPath = shapeFromPath;\n module.exports.shapeFromText = shapeFromText;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\nimport confetti from 'canvas-confetti'\n\nexport default class extends Controller {\n initialize() {\n if (!this.data.has('enabled') || this.data.get('enabled') === 'true') {\n // If turbo is inserting a modal, it will replace the current modal if it finds the modal with the same id, but\n // it will not remove the backdrop. This results in multiple backdrops being shown, so we remove it manually here.\n document.querySelector('.modal-backdrop.show')?.remove()\n new Modal(this.element).show()\n\n if (this.data.get('confetti') === 'true') {\n confetti({\n zIndex: 11000, // ensure we are above the bootstrap modals which are at 10050\n disableForReducedMotion: true, // be nice to people who don't like motion\n spread: 90,\n particleCount: 150,\n origin: { x: 0.5, y: 0.7 }, // 0.7 works nice for a modal\n })\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Rails from '@rails/ujs'\n\nexport default class extends Controller {\n timeout: NodeJS.Timeout\n\n submit() {\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n Rails.fire(this.element, 'submit')\n }, 200)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport FlatpickrController from './flatpickr_controller'\n\nexport default class extends Controller {\n static targets = ['input']\n\n declare inputTarget: HTMLInputElement\n\n transferToInput(event: MouseEvent) {\n event.preventDefault()\n let target = event.target as HTMLElement\n\n if (target.hasAttribute('data-value')) {\n this.inputTarget.value = target.getAttribute('data-value')\n this.inputTarget.dispatchEvent(new Event('input'))\n } else {\n this.inputTarget.value = (event.target as HTMLElement).innerText\n this.inputTarget.dispatchEvent(new Event('input'))\n // since date_picker creates one hidden input, on the 17 line we set into hidden and beneath into that user actually see\n if (this.inputTarget.classList.contains('date_picker')) {\n const flatpickrController = this.application.getControllerForElementAndIdentifier(\n this.inputTarget,\n 'flatpickr',\n // We cast to unknown since FlatpickrController doesn't cover Controller\n // There might be a better way in Typescript, but we dont know how\n // In any case, it is a FlatpickrController that should be returned.\n ) as unknown as FlatpickrController\n const date = flatpickrController.fp.parseDate(target.innerHTML, (flatpickrController.config as any).altFormat)\n flatpickrController.fp.setDate(date, true)\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport PartnerSelectController from './partner/select_controller'\n\nexport default class extends Controller {\n static targets = ['input']\n\n declare inputTarget: HTMLInputElement\n\n selectPartner(event: MouseEvent) {\n event.preventDefault()\n let target = event.target as HTMLElement\n const controller = this.application.getControllerForElementAndIdentifier(\n this.inputTarget,\n 'partner--select',\n ) as PartnerSelectController\n controller.select({ id: -314, name: target.dataset.name })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static targets = [\n 'bankCard',\n 'confirmBankButton',\n 'sendToProviderButton',\n 'bankBic',\n 'userDnbElement',\n 'userNotDnbElement',\n 'connectBankButton',\n 'userSsn',\n 'debugSsn',\n ]\n\n declare bankCardTargets: Array\n declare confirmBankButtonTarget: HTMLButtonElement\n declare sendToProviderButtonTarget: HTMLLinkElement\n declare bankBicTarget: HTMLInputElement\n declare userDnbElementTargets: Array\n declare userNotDnbElementTargets: Array\n declare userSsnTarget: HTMLInputElement\n declare hasBankBicTarget: boolean\n declare hasSendToProviderButtonTarget: boolean\n declare debugSsnTargets: Array\n declare hasDebugSsnTarget: boolean\n\n connect() {\n const params = new URL((window as any).location).searchParams\n if (Boolean(params.get('new_bank_account')).valueOf()) {\n Modal.getOrCreateInstance(document.querySelector('#bank-account-new-modal-step-one')).show()\n }\n if (this.hasBankBicTarget) {\n this._displayCorrectHint(this.bankBicTarget.value)\n this.displayDebugSsn(this.bankBicTarget.value)\n }\n }\n\n handleCardSelect(event) {\n const bankCard = event.target.closest('div.card-luca')\n const bankKey = bankCard.dataset.bankKey\n const bankBic = bankCard.dataset.bankBic\n this.confirmBankButtonTarget.classList.remove('disabled')\n this.bankCardTargets.forEach((card) => {\n card.classList.remove('selected')\n })\n bankCard.classList.add('selected')\n const bankParam = bankBic !== undefined ? bankBic : bankKey\n if (this.hasSendToProviderButtonTarget) {\n this.sendToProviderButtonTarget.href =\n this.sendToProviderButtonTarget.href.split('bank=')[0] + `bank=${bankParam}`\n } else if (this.hasBankBicTarget) {\n this.bankBicTarget.value = bankParam\n this._displayCorrectHint(bankParam)\n this._preFillUserSsn(bankBic)\n this.displayDebugSsn(this.bankBicTarget.value)\n }\n this.confirmBankButtonTarget.click()\n }\n\n handleCustomBankSelect(event) {\n const bankBic = event.target.selectedOptions[0].value\n this.confirmBankButtonTarget.classList.remove('disabled')\n this.bankCardTargets.forEach((card) => {\n card.classList.remove('selected')\n })\n this.bankBicTarget.value = bankBic\n this._displayCorrectHint(bankBic)\n this._preFillUserSsn(bankBic)\n }\n\n _displayCorrectHint(bankBic) {\n if (bankBic === 'DNBANOKK') {\n this.userDnbElementTargets.forEach((elem) => elem.classList.remove('d-none'))\n this.userNotDnbElementTargets.forEach((elem) => elem.classList.add('d-none'))\n } else {\n this.userDnbElementTargets.forEach((elem) => elem.classList.add('d-none'))\n this.userNotDnbElementTargets.forEach((elem) => elem.classList.remove('d-none'))\n }\n }\n _preFillUserSsn(bankBic) {\n if (bankBic === 'DNBANOKK') {\n this.userSsnTarget.value = this.userSsnTarget.dataset.dnbClientId\n } else {\n this.userSsnTarget.value = this.userSsnTarget.dataset.userNnin\n }\n }\n\n private displayDebugSsn(bankBic: string) {\n if (!this.hasDebugSsnTarget) {\n return\n }\n\n let foundTarget = false\n if (this.hasDebugSsnTarget) {\n this.debugSsnTargets.forEach((debugDiv) => {\n if (debugDiv.dataset.bic == bankBic) {\n foundTarget = true\n debugDiv.classList.remove('d-none')\n } else {\n debugDiv.classList.add('d-none')\n }\n })\n }\n if (!foundTarget) {\n this.debugSsnTargets.find((div) => div.dataset.bic === 'NOBIC').classList.remove('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport Select2Builder from '../../../standalone/components/Select2Builder'\nimport { i18n } from '../../../libraries/i18n'\n\nexport default class extends Controller {\n connect() {\n this.bankSearchSetSelect2()\n }\n\n bankSearchSetSelect2(): void {\n let $select2 = $(this.element)\n const dropdownParent = this.element.closest('.modal') || document.body\n\n const options = new Select2Builder().createParams(`/${(window as any).current_company_id}/bank/banks/search.json`, {\n minimumInputLength: 1,\n tags: false,\n placeholder: i18n.t('bank.account.search_for_bank'),\n dropdownParent: dropdownParent,\n templateResult(bank) {\n return bank.name\n },\n templateSelection(selected) {\n if (selected.text) {\n return selected.text\n }\n return selected.name\n },\n })\n $select2.select2(options)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\n 'email',\n 'clientId',\n 'output',\n 'redirectURI',\n 'URI',\n 'culture',\n 'selectAllAccounts',\n 'bankAccountNumbers',\n 'scope',\n 'providerId',\n ]\n\n declare URITarget\n declare emailTarget\n declare clientIdTarget\n declare redirectURITarget\n declare cultureTarget\n declare selectAllAccountsTarget\n declare bankAccountNumbersTarget\n declare providerIdTarget\n declare scopeTarget\n declare outputTarget: HTMLLinkElement\n\n connect() {\n this.change()\n }\n\n change() {\n const clientID = encodeURIComponent(this.clientIdTarget.value)\n const email = encodeURIComponent(this.emailTarget.value)\n const redirectURI = encodeURIComponent(this.redirectURITarget.value)\n const scope = encodeURIComponent(this.scopeTarget.value)\n const culture = encodeURIComponent(this.cultureTarget.value)\n const bankAccountNumbers = encodeURIComponent(this.bankAccountNumbersTarget.value)\n const providerId = encodeURIComponent(this.providerIdTarget.value)\n let output = `${this.URITarget.value}/v1/oauth/connect?email=${email}&providerId=${providerId}&client_id=${clientID}&redirect_uri=${redirectURI}&scope=${scope}&culture=${culture}&response_type=code`\n if (bankAccountNumbers.trim() != '') {\n output += `&bank_account_numbers=${bankAccountNumbers}`\n }\n\n if (this.selectAllAccountsTarget.checked) {\n output += '&selectAllAccounts=true'\n }\n this.outputTarget.href = output\n this.outputTarget.textContent = output\n }\n}\n// \\\n// -d client_id= \\\n// -d redirect_uri= \\\n// -d scope=\"accounts offline_access\" \\\n// -d response_type=code \\\n// -d accountsGroupName= \\\n// -d accountsGroupId=\n","import { Controller } from '@hotwired/stimulus'\nimport { BulkActionParams } from '../../bulk_action_table_controller'\n\nexport default class extends Controller {\n static targets = ['alert', 'paymentsLimit']\n\n declare alertTarget: HTMLElement\n declare paymentsLimitTargets\n\n checkPaymentsLimit(params: BulkActionParams) {\n let minimumPaymentsNumber = 1000\n let bankAccountNumber = ''\n let currentPaymentsLimit = 10\n const actionsSelector = params.bulkActionSelector\n const checkedRows = params.checkedRows\n\n checkedRows.forEach((row) => {\n bankAccountNumber = (row.querySelector('div[data-account-number]') as HTMLDivElement).dataset.accountNumber\n currentPaymentsLimit = (window as any).paymentLimitsByAccountNumber[bankAccountNumber]\n if (currentPaymentsLimit < minimumPaymentsNumber) {\n minimumPaymentsNumber = currentPaymentsLimit\n }\n })\n if (checkedRows.length > minimumPaymentsNumber) {\n this.paymentsLimitTargets.forEach((element) => {\n element.innerHTML = minimumPaymentsNumber.toString()\n })\n this.alertTarget.classList.remove('d-none')\n if (actionsSelector !== null) {\n actionsSelector.disabled = true\n }\n } else {\n this.alertTarget.classList.add('d-none')\n if (actionsSelector !== null) {\n actionsSelector.disabled = false\n }\n }\n }\n}\n","import $ from 'jquery'\n\nif (typeof jQuery == 'undefined') {\n ;(window as any).$ = (window as any).jQuery = $\n}\n\nexport default $\n","import $ from '../libraries/jquery'\nimport { i18n } from '../libraries/i18n'\n\nexport default class BankAccount {\n findBankNameByCode(accountNumberElem: HTMLInputElement, type: string = 'standard') {\n let elem = $(accountNumberElem)\n let inputNumberValue = accountNumberElem.value.replace(/\\D/g, '')\n if (inputNumberValue.length >= 11) {\n $.ajax({\n type: 'GET',\n url: '/bank/account_ranges/search.json',\n data: { term: inputNumberValue },\n dataType: 'json',\n success: (result) => {\n elem.removeClass('is-invalid')\n $('#bank-name').remove()\n $('.invalid-feedback').remove()\n if (result.bank_present) {\n if (type != 'international') {\n elem.after('' + result.bank_name + '')\n } else {\n this.showInvalidInternationalAccountMessage(type, elem)\n }\n } else {\n if (type != 'international') {\n elem.addClass('is-invalid')\n elem.after('' + result.bank_name + '')\n } else {\n this.showInvalidInternationalAccountMessage(type, elem)\n }\n }\n },\n })\n } else {\n this.removeError(elem)\n this.showInvalidInternationalAccountMessage(type, elem)\n }\n }\n\n validateBankAccountNumber(number) {\n const regex = /^[A-Z]{2}\\d{2}[A-Z]{4}\\d{10}$/\n return regex.test(number)\n }\n\n validateUSBankAccountNumber(number) {\n const regex = /^USZZ\\d+$/\n return regex.test(number)\n }\n\n removeError(elem) {\n elem.removeClass('is-invalid')\n $('#bank-name').remove()\n $('.invalid-feedback').remove()\n }\n\n showInvalidInternationalAccountMessage(type, elem) {\n if (\n type == 'international' &&\n !(this.validateBankAccountNumber(elem.val()) || this.validateUSBankAccountNumber(elem.val()))\n ) {\n elem.addClass('is-invalid')\n elem.after('' + i18n.t('bank.account.use_iban') + '')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport BankAccount from '../classes/bank_account'\nimport BankAccountNumberController from 'controllers/input/bank_account_number_controller'\nimport { nextFrame } from '../rendering'\n\nexport default class extends Controller {\n static targets = ['accountNumber', 'accountType', 'accountBic']\n\n declare accountNumberTarget: HTMLInputElement\n declare hasAccountTypeTarget: boolean\n declare accountTypeTarget: HTMLSelectElement\n declare bankAccount: BankAccount\n declare accountBicTarget: HTMLInputElement\n\n connect() {\n nextFrame(() => {\n this.accountTypeHandler()\n this.accountNumberTarget.value = this.accountNumberTarget.getAttribute('value')\n })\n }\n\n find() {\n this.bankAccount = new BankAccount()\n this.bankAccount.findBankNameByCode(this.accountNumberTarget, this.accountTypeTarget.value)\n }\n\n accountTypeHandler() {\n if (!this.hasAccountTypeTarget) {\n return\n }\n\n const bankAccountNumberController = this.application.getControllerForElementAndIdentifier(\n this.accountNumberTarget,\n 'input--bank-account-number',\n ) as BankAccountNumberController\n\n if (this.accountTypeTarget.value != 'international') {\n bankAccountNumberController.addMask()\n const debugHint = this.accountNumberTarget.parentElement.querySelector('div.form-text')\n if (debugHint) {\n debugHint.classList.remove('d-none')\n }\n this.accountBicTarget.classList.add('d-none')\n this.accountBicTarget.querySelector('input').value = ''\n } else {\n bankAccountNumberController.removeMask()\n this.accountNumberTarget.placeholder = ''\n const debugHint = this.accountNumberTarget.parentElement.querySelector('div.form-text')\n if (debugHint) {\n debugHint.classList.add('d-none')\n }\n this.accountBicTarget.classList.remove('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['companySelector', 'bankAccountSelector', 'userSelector']\n\n declare companySelectorTarget: HTMLElement\n declare bankAccountSelectorTarget: HTMLElement\n declare userSelectorTarget: HTMLElement\n\n connect() {\n this._setupSelect2()\n }\n\n _setupSelect2(): void {\n const params = {\n theme: 'bootstrap',\n width: '100%',\n minimumInputLength: 3, // PS Minimum input length hides the default options\n tags: true,\n insertTag: function (data, tag) {\n // Insert the tag at the end of the results\n data.push(tag)\n },\n createTag: function (params) {\n const term = $.trim(params.term)\n\n if (term === '') {\n return null\n }\n\n return {\n id: term,\n text: term,\n newTag: true,\n }\n },\n ajax: {\n url: '/bank/integration/requests/company_data_search.json',\n dataType: 'json',\n delay: 250,\n data(params) {\n return {\n term: params.term,\n }\n },\n processResults(data, params) {\n // parse the results into the format expected by Select2\n // since we are using custom formatting functions we do not need to\n // alter the remote JSON data, except to indicate that infinite\n // scrolling can be used\n return {\n results: data,\n }\n },\n cache: true,\n },\n /* This formats what is shown in the selection options */\n templateResult: this._templateCompany,\n /* How a selected result will look when clicked (or selected) */\n templateSelection(selected) {\n if (selected.text) {\n return selected.text\n }\n return selected.name\n },\n placeholder: i18n.t('company.new_search_placeholder'),\n }\n const elem = $(this.companySelectorTarget).select2(params)\n\n $(this.companySelectorTarget).on('select2:select', (event) => {\n const data = event.params.data as any\n this._updateUsersSelector(data.users)\n this._updateBankAccountSelector(data.bank_accounts)\n })\n }\n\n _templateCompany(repo): string {\n if (repo.loading) {\n return repo.text\n }\n if (repo.name) {\n return repo.name\n }\n return ''\n }\n\n _updateUsersSelector(data) {\n this._removeOptions(this.userSelectorTarget)\n data.forEach((user) => {\n let opt = document.createElement('option')\n opt.value = user.id\n opt.innerHTML = user.name\n this.userSelectorTarget.appendChild(opt)\n })\n }\n\n _updateBankAccountSelector(data) {\n this._removeOptions(this.bankAccountSelectorTarget)\n data.forEach((bankAccount) => {\n let opt = document.createElement('option')\n opt.value = bankAccount.id\n opt.innerHTML = bankAccount.number\n this.bankAccountSelectorTarget.appendChild(opt)\n })\n }\n\n _removeOptions(selectElement) {\n let i,\n L = selectElement.options.length - 1\n for (i = L; i >= 0; i--) {\n selectElement.remove(i)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../../util/rails_fetch'\n\nexport default class extends Controller {\n static targets = ['bankAccount', 'period']\n\n declare bankAccountTarget: HTMLSelectElement\n declare periodTarget: HTMLInputElement\n\n async switchReconciliation() {\n let response = await rails_fetch(\n `/${(window as any).current_company_id}/bank_accounts/${\n this.bankAccountTarget.value\n }/bank_reconciliations/search?period=${this.periodTarget.value}`,\n )\n const { path } = await response.json()\n window.location.href = path\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { amountStr } from '../formatting_helper'\nimport { rails_fetch } from '../../util/rails_fetch'\n\nexport default class extends Controller {\n static targets = [\n 'bankClosingBalance',\n 'accountingClosingBalance',\n 'difference',\n 'wrongTotals',\n 'correctTotals',\n 'infoAlert',\n ]\n\n declare hasBankClosingBalanceTarget: boolean\n declare accountingClosingBalanceTarget: HTMLElement\n declare bankClosingBalanceTarget: HTMLInputElement\n declare infoAlertTarget: HTMLElement\n declare wrongTotalsTarget: HTMLElement\n declare correctTotalsTarget: HTMLElement\n declare differenceTarget: HTMLElement\n\n differenceThreshold: number\n bankClosingBalanceTimeout\n\n connect() {\n if (this.hasBankClosingBalanceTarget) {\n this.differenceThreshold = 0\n const accountingClosingAmountMutationObserver = new MutationObserver((mutations) => {\n this.totalsDifference()\n })\n\n accountingClosingAmountMutationObserver.observe(this.accountingClosingBalanceTarget, {\n characterData: true,\n subtree: true,\n })\n this.totalsDifference()\n }\n }\n\n handleBankClosingBalanceChange() {\n this.bankClosingBalanceTarget.value = this.bankClosingBalanceTarget.value.replace(/[^-0-9,.]/, '')\n this.totalsDifference()\n if (this.bankClosingBalanceTimeout != null) clearTimeout(this.bankClosingBalanceTimeout)\n this.bankClosingBalanceTimeout = setTimeout(this.handleUpdateOutgoingBankAccountBalance.bind(this), 500)\n }\n\n parseBalanceAmount(amountString): Decimal {\n let parsedAmount = parseDecimal(amountString)\n return parsedAmount.isNaN() ? new Decimal(0) : parsedAmount\n }\n\n handleUpdateOutgoingBankAccountBalance() {\n let valuesToSubmit = this.bankClosingBalanceTarget.name\n valuesToSubmit += '=' + this.toCents(this.bankClosingBalanceTarget.value)\n let companyHashId = window.location.pathname.split('/')[1]\n let reconciliationId = this.bankClosingBalanceTarget.dataset.reconciliationId\n\n let url = `/${companyHashId}/bank_reconciliations/${reconciliationId}/update_bank_outgoing_balance?${valuesToSubmit}`\n let options = {\n method: 'PATCH',\n }\n rails_fetch(url, options)\n }\n\n totalsDifference() {\n let parsedAccountingOutgoingAmount = this.parseBalanceAmount(this.accountingClosingBalanceTarget.innerHTML)\n let parsedBankOutgoingAmount = this.parseBalanceAmount(this.bankClosingBalanceTarget.value)\n let difference = parsedBankOutgoingAmount.minus(parsedAccountingOutgoingAmount).abs().toFixed(2)\n this.toggleAlerts(difference)\n }\n\n toggleAlerts(difference) {\n if (!this.bankClosingBalanceTarget.value) {\n this.infoAlertTarget.classList.add('alert-group__single-alert')\n this.wrongTotalsTarget.classList.add('d-none')\n this.correctTotalsTarget.classList.add('d-none')\n } else {\n this.infoAlertTarget.classList.remove('alert-group__single-alert')\n if (difference <= this.differenceThreshold) {\n this.correctTotalsTarget.style.display = 'flex'\n this.correctTotalsTarget.classList.remove('d-none')\n this.wrongTotalsTarget.classList.add('d-none')\n } else {\n this.wrongTotalsTarget.style.display = 'flex'\n this.wrongTotalsTarget.classList.remove('d-none')\n this.correctTotalsTarget.classList.add('d-none')\n this.differenceTarget.innerHTML = amountStr(difference)\n }\n }\n this.toggleSubmit(difference)\n }\n\n toCents(amountString) {\n return this.parseBalanceAmount(amountString).times(100)\n }\n\n toggleSubmit(difference) {\n let submitButton = document.querySelector('#reconcile-button') as HTMLElement\n let can_be_reconciled =\n submitButton.dataset.disabled === 'false' &&\n difference <= this.differenceThreshold &&\n this.bankClosingBalanceTarget.value\n can_be_reconciled ? submitButton.classList.remove('disabled') : submitButton.classList.add('disabled')\n }\n\n async disconnect() {\n if (this.hasBankClosingBalanceTarget) {\n await this.handleUpdateOutgoingBankAccountBalance()\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { amountStr } from '../formatting_helper'\n\nexport default class extends Controller {\n static targets = [\n 'entryRow',\n 'matchAmount',\n 'infoBox',\n 'closeEntriesButton',\n 'openEntriesButton',\n 'openCloseWarningInfoBox',\n 'accountIdsWarningInfoBox',\n 'form',\n 'selectAllAccounts',\n 'centsDifferenceNotice',\n ]\n\n declare matchAmountTarget: HTMLInputElement\n declare infoBoxTarget: HTMLInputElement\n declare closeEntriesButtonTarget: HTMLInputElement\n declare openEntriesButtonTarget: HTMLInputElement\n declare openCloseWarningInfoBoxTarget: HTMLInputElement\n declare accountIdsWarningInfoBoxTarget: HTMLInputElement\n declare formTarget: HTMLInputElement\n declare selectAllAccountsTargets: Array\n declare entryRowTargets: Array\n declare centsDifferenceNoticeTarget: HTMLElement\n\n static values = { maxCentsRoundingValue: Number }\n\n declare maxCentsRoundingValueValue: number\n\n updateInfoBox() {\n const rows = this.entryRowTargets\n let openedSelectedRows = []\n let closedSelectedRowsNumber = 0\n let accountIds = []\n\n rows.forEach((item) => {\n let entryCheckbox = item.getElementsByClassName('entry-checked')[0] as HTMLInputElement\n if (entryCheckbox.checked) {\n if (item.getElementsByClassName('entry-status')[0].getAttribute('value') === 'true') {\n closedSelectedRowsNumber += 1\n } else {\n openedSelectedRows.push(item)\n }\n let accountInputElem = item.querySelector('input[name$=\"[account_hashid]\"]') as HTMLInputElement\n accountIds.push(accountInputElem.value)\n }\n })\n\n if (closedSelectedRowsNumber > 0 && openedSelectedRows.length > 0) {\n // show warning info box\n this.infoBoxTarget.classList.add('d-none')\n this.openCloseWarningInfoBoxTarget.classList.remove('d-none')\n this.accountIdsWarningInfoBoxTarget.classList.add('d-none')\n } else if (closedSelectedRowsNumber === 0 && openedSelectedRows.length === 0) {\n // hide all info boxes\n this.infoBoxTarget.classList.add('d-none')\n this.openCloseWarningInfoBoxTarget.classList.add('d-none')\n this.accountIdsWarningInfoBoxTarget.classList.add('d-none')\n } else if (accountIds.length > 0 && !accountIds.every((val, i, arr) => val === accountIds[0])) {\n // Got different account ids\n this.infoBoxTarget.classList.add('d-none')\n this.openCloseWarningInfoBoxTarget.classList.add('d-none')\n this.accountIdsWarningInfoBoxTarget.classList.remove('d-none')\n } else if (closedSelectedRowsNumber > 0) {\n // show open entries info box\n this.openCloseWarningInfoBoxTarget.classList.add('d-none')\n this.accountIdsWarningInfoBoxTarget.classList.add('d-none')\n this.closeEntriesButtonTarget.classList.add('d-none')\n this.openEntriesButtonTarget.classList.remove('d-none')\n this.infoBoxTarget.classList.remove('alert-success')\n this.infoBoxTarget.classList.add('alert-info')\n this.infoBoxTarget.classList.remove('d-none')\n } else {\n // show close entries info box\n this.updateTotalAmount(openedSelectedRows)\n this.openCloseWarningInfoBoxTarget.classList.add('d-none')\n this.accountIdsWarningInfoBoxTarget.classList.add('d-none')\n this.openEntriesButtonTarget.classList.add('d-none')\n this.closeEntriesButtonTarget.classList.remove('d-none')\n this.infoBoxTarget.classList.remove('d-none')\n }\n }\n\n updateTotalAmount(selectedRows) {\n const totalAmount = selectedRows.reduce((subTotal, element) => {\n let amountCents = parseInt(element.getElementsByClassName('entry-amount')[0].dataset.amountCents)\n if (isNaN(amountCents)) {\n return subTotal\n } else {\n return subTotal + amountCents\n }\n }, 0)\n\n const totalAmountText = amountStr(totalAmount / 100)\n\n this.matchAmountTarget.innerHTML = totalAmountText\n\n this.centsDifferenceNoticeTarget.classList.add('d-none')\n const canRoundCents = this.canRoundCents(totalAmount)\n\n if (totalAmount === 0 || (canRoundCents && selectedRows.length > 1)) {\n if (canRoundCents) {\n this.centsDifferenceNoticeTarget.classList.remove('d-none')\n }\n this.infoBoxTarget.classList.remove('alert-info')\n this.infoBoxTarget.classList.add('alert-success')\n this.closeEntriesButtonTarget.getElementsByTagName('button')[0].disabled = false\n } else {\n this.infoBoxTarget.classList.remove('alert-success')\n this.infoBoxTarget.classList.add('alert-info')\n this.closeEntriesButtonTarget.getElementsByTagName('button')[0].disabled = true\n }\n }\n\n canRoundCents(totalAmount) {\n return totalAmount != 0 && Math.abs(totalAmount) <= this.maxCentsRoundingValueValue\n }\n\n selectAccounts(event) {\n let accountTable = event.target.closest('table')\n $('td input:checkbox', accountTable).prop('checked', event.target.checked)\n this.updateInfoBox()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Form_switcher_controller from 'controllers/form_switcher_controller'\nimport { nextFrame } from '../../../rendering'\n\nexport default class extends Controller {\n static targets = ['typeSelect']\n\n declare hasTypeSelectTarget: boolean\n declare typeSelectTarget: HTMLSelectElement\n\n connect() {\n if (this.hasTypeSelectTarget) {\n let options: Array = Array.from(this.typeSelectTarget.options)\n options.forEach((option) => {\n let optionKey = option.value\n let elements = document.querySelectorAll('[data-controller*=\"bookkeeping--year-end--repeating-row\"]')\n let elementsAdded = Array.from(elements).filter(\n (e: HTMLElement) => e.dataset['bookkeeping-YearEnd-RepeatingRowKeyValue'] === optionKey && e !== this.element,\n )\n\n let rowsAdded = elementsAdded.length\n if (option.dataset.maxRows) {\n if (rowsAdded >= parseInt(option.dataset.maxRows)) {\n option.classList.add('d-none')\n } else {\n option.classList.remove('d-none')\n }\n }\n })\n this.typeSelectTarget.selectedIndex = options.findIndex((e) => !e.classList.contains('d-none'))\n nextFrame(() => {\n const controller = this.application.getControllerForElementAndIdentifier(\n this.element,\n 'form-switcher',\n ) as Form_switcher_controller\n controller.toggle({ target: { value: this.typeSelectTarget.selectedOptions[0].value } })\n })\n }\n }\n}\n","var e=[],a=[],i={},s={},r={};function o(e){return\"string\"==typeof e?new RegExp(\"^\"+e+\"$\",\"i\"):e}function t(e,a){return e===a?a:e===e.toLowerCase()?a.toLowerCase():e===e.toUpperCase()?a.toUpperCase():e[0]===e[0].toUpperCase()?a.charAt(0).toUpperCase()+a.substr(1).toLowerCase():a.toLowerCase()}function n(e,a){return e.replace(/\\$(\\d{1,2})/g,function(e,i){return a[i]||\"\"})}function u(e,a){return e.replace(a[0],function(i,s){var r=n(a[1],arguments);return t(\"\"===i?e[s-1]:i,r)})}function l(e,a,s){if(!e.length||i.hasOwnProperty(e))return a;for(var r=s.length;r--;){var o=s[r];if(o[0].test(a))return u(a,o)}return a}function c(e,a,i){return function(s){var r=s.toLowerCase();return a.hasOwnProperty(r)?t(s,r):e.hasOwnProperty(r)?t(s,e[r]):l(r,s,i)}}function h(e,a,i){return function(s){var r=s.toLowerCase();return!!a.hasOwnProperty(r)||!e.hasOwnProperty(r)&&l(r,r,i)===r}}function m(e,a,i){return(i?a+\" \":\"\")+(1===a?m.singular(e):m.plural(e))}m.plural=c(r,s,e),m.isPlural=h(r,s,e),m.singular=c(s,r,a),m.isSingular=h(s,r,a),m.addPluralRule=function(a,i){e.push([o(a),i])},m.addSingularRule=function(e,i){a.push([o(e),i])},m.addUncountableRule=function(e){\"string\"!=typeof e?(m.addPluralRule(e,\"$0\"),m.addSingularRule(e,\"$0\")):i[e.toLowerCase()]=!0},m.addIrregularRule=function(e,a){a=a.toLowerCase(),e=e.toLowerCase(),r[e]=a,s[a]=e},[[\"I\",\"we\"],[\"me\",\"us\"],[\"he\",\"they\"],[\"she\",\"they\"],[\"them\",\"them\"],[\"myself\",\"ourselves\"],[\"yourself\",\"yourselves\"],[\"itself\",\"themselves\"],[\"herself\",\"themselves\"],[\"himself\",\"themselves\"],[\"themself\",\"themselves\"],[\"is\",\"are\"],[\"was\",\"were\"],[\"has\",\"have\"],[\"this\",\"these\"],[\"that\",\"those\"],[\"my\",\"our\"],[\"its\",\"their\"],[\"his\",\"their\"],[\"her\",\"their\"],[\"mosquito\",\"mosquitoes\"],[\"echo\",\"echoes\"],[\"dingo\",\"dingoes\"],[\"volcano\",\"volcanoes\"],[\"tornado\",\"tornadoes\"],[\"torpedo\",\"torpedoes\"],[\"genus\",\"genera\"],[\"viscus\",\"viscera\"],[\"stigma\",\"stigmata\"],[\"stoma\",\"stomata\"],[\"dogma\",\"dogmata\"],[\"lemma\",\"lemmata\"],[\"schema\",\"schemata\"],[\"anathema\",\"anathemata\"],[\"ox\",\"oxen\"],[\"axe\",\"axes\"],[\"die\",\"dice\"],[\"yes\",\"yeses\"],[\"foot\",\"feet\"],[\"eave\",\"eaves\"],[\"goose\",\"geese\"],[\"tooth\",\"teeth\"],[\"quiz\",\"quizzes\"],[\"human\",\"humans\"],[\"proof\",\"proofs\"],[\"carve\",\"carves\"],[\"valve\",\"valves\"],[\"looey\",\"looies\"],[\"thief\",\"thieves\"],[\"groove\",\"grooves\"],[\"pickaxe\",\"pickaxes\"],[\"passerby\",\"passersby\"]].forEach(function(e){return m.addIrregularRule(e[0],e[1])}),[[/s?$/i,\"s\"],[/[^\\u0000-\\u007F]$/i,\"$0\"],[/([^aeiou]ese)$/i,\"$1\"],[/(ax|test)is$/i,\"$1es\"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,\"$1es\"],[/(e[mn]u)s?$/i,\"$1s\"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,\"$1\"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,\"$1i\"],[/(alumn|alg|vertebr)(?:a|ae)$/i,\"$1ae\"],[/(seraph|cherub)(?:im)?$/i,\"$1im\"],[/(her|at|gr)o$/i,\"$1oes\"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,\"$1a\"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,\"$1a\"],[/sis$/i,\"ses\"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,\"$1$2ves\"],[/([^aeiouy]|qu)y$/i,\"$1ies\"],[/([^ch][ieo][ln])ey$/i,\"$1ies\"],[/(x|ch|ss|sh|zz)$/i,\"$1es\"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,\"$1ices\"],[/\\b((?:tit)?m|l)(?:ice|ouse)$/i,\"$1ice\"],[/(pe)(?:rson|ople)$/i,\"$1ople\"],[/(child)(?:ren)?$/i,\"$1ren\"],[/eaux$/i,\"$0\"],[/m[ae]n$/i,\"men\"],[\"thou\",\"you\"]].forEach(function(e){return m.addPluralRule(e[0],e[1])}),[[/s$/i,\"\"],[/(ss)$/i,\"$1\"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i,\"$1fe\"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,\"$1f\"],[/ies$/i,\"y\"],[/(dg|ss|ois|lk|ok|wn|mb|th|ch|ec|oal|is|ck|ix|sser|ts|wb)ies$/i,\"$1ie\"],[/\\b(l|(?:neck|cross|hog|aun)?t|coll|faer|food|gen|goon|group|hipp|junk|vegg|(?:pork)?p|charl|calor|cut)ies$/i,\"$1ie\"],[/\\b(mon|smil)ies$/i,\"$1ey\"],[/\\b((?:tit)?m|l)ice$/i,\"$1ouse\"],[/(seraph|cherub)im$/i,\"$1\"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,\"$1\"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,\"$1sis\"],[/(movie|twelve|abuse|e[mn]u)s$/i,\"$1\"],[/(test)(?:is|es)$/i,\"$1is\"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,\"$1us\"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,\"$1um\"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,\"$1on\"],[/(alumn|alg|vertebr)ae$/i,\"$1a\"],[/(cod|mur|sil|vert|ind)ices$/i,\"$1ex\"],[/(matr|append)ices$/i,\"$1ix\"],[/(pe)(rson|ople)$/i,\"$1rson\"],[/(child)ren$/i,\"$1\"],[/(eau)x?$/i,\"$1\"],[/men$/i,\"man\"]].forEach(function(e){return m.addSingularRule(e[0],e[1])}),[\"adulthood\",\"advice\",\"agenda\",\"aid\",\"aircraft\",\"alcohol\",\"ammo\",\"analytics\",\"anime\",\"athletics\",\"audio\",\"bison\",\"blood\",\"bream\",\"buffalo\",\"butter\",\"carp\",\"cash\",\"chassis\",\"chess\",\"clothing\",\"cod\",\"commerce\",\"cooperation\",\"corps\",\"debris\",\"diabetes\",\"digestion\",\"elk\",\"energy\",\"equipment\",\"excretion\",\"expertise\",\"firmware\",\"flounder\",\"fun\",\"gallows\",\"garbage\",\"graffiti\",\"hertz\",\"hardware\",\"headquarters\",\"health\",\"herpes\",\"highjinks\",\"homework\",\"housework\",\"information\",\"jeans\",\"justice\",\"kudos\",\"labour\",\"literature\",\"machinery\",\"mackerel\",\"mail\",\"media\",\"mews\",\"moose\",\"music\",\"mud\",\"manga\",\"news\",\"only\",\"personnel\",\"pike\",\"plankton\",\"pliers\",\"police\",\"pollution\",\"premises\",\"rain\",\"research\",\"rice\",\"salmon\",\"scissors\",\"series\",\"sewage\",\"shambles\",\"shrimp\",\"software\",\"staff\",\"swine\",\"tennis\",\"traffic\",\"transportation\",\"trout\",\"tuna\",\"wealth\",\"welfare\",\"whiting\",\"wildebeest\",\"wildlife\",\"you\",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(m.addUncountableRule);export{m as pluralize};\n//# sourceMappingURL=pluralize.module.js.map\n","import { Controller } from '@hotwired/stimulus'\nimport { Turbo } from '@hotwired/turbo-rails'\nimport { icon } from '@fortawesome/fontawesome-svg-core'\nimport { faSpinner } from 'fontawesome-luca/pro-regular-svg-icons'\nimport { Modal } from 'bootstrap'\nimport { pluralize } from '@capaj/pluralize'\nimport { i18n } from '../libraries/i18n'\n\nexport default class CrudTableController extends Controller {\n modelName: string\n\n static targets = ['table']\n\n declare tableTarget: HTMLElement\n declare hasTableTarget: Boolean\n\n table: HTMLElement\n\n connect(): void {\n if (this.hasTableTarget) {\n this.table = this.tableTarget\n } else {\n this.table = this.element\n }\n\n if (this.table.getAttribute('data-model-name') === null) {\n this.modelName = 'crud-table'\n } else {\n this.modelName = this.table.getAttribute('data-model-name')\n }\n this.tablePolling()\n\n // Change model name to plural with capital letter (PascalCase),\n // eg 'product' => 'Products' or 'salary-employees' => 'SalaryEmployees'\n const pluralName = pluralize(this.modelName)\n const camelCaseName = this.toCamel(pluralName)\n const controllerName = camelCaseName[0].toUpperCase() + camelCaseName.slice(1)\n\n if (typeof (window as any).Luca.Controllers[controllerName] === 'undefined') {\n ;(window as any).Luca.Controllers[controllerName] = {}\n }\n ;(window as any).Luca.Controllers[controllerName].CrudTableController = this\n\n this.connectAjaxListeners()\n }\n\n new(modal_id: string, html: string) {\n let elem = document.querySelector(`[data-bs-target=\"${modal_id}\"]`)\n if (elem === null) {\n let modal = document.createElement('div')\n modal.innerHTML = html\n document.body.appendChild(modal)\n } else {\n elem.outerHTML = html\n }\n Modal.getOrCreateInstance(document.querySelector(`[data-bs-target=\"${modal_id}\"]`)).show()\n }\n\n edit(html: string): void {\n // We use HTML ids since we use Bootstrap modals.\n // Find the target id to open the modal\n let div = document.createElement('div')\n div.innerHTML = html\n let modal_id = (div.querySelector('.modal') as HTMLElement).dataset.bsTarget\n let elem = this.table.querySelector(`[data-bs-target=\"${modal_id}\"]`)\n if (elem === null) {\n let modal = document.createElement('div')\n modal.innerHTML = html\n this.table.insertAdjacentElement('beforeend', modal)\n } else {\n elem.outerHTML = html\n }\n Modal.getOrCreateInstance(this.table.querySelector(`[data-bs-target=\"${modal_id}\"]`)).show()\n }\n\n create(html: string, hideModal: boolean = true, position: InsertPosition = 'afterbegin'): void {\n if (this.targets.has('table')) {\n this.table.querySelector('tbody').insertAdjacentHTML(position, html)\n }\n if (hideModal) {\n this.hideModal()\n }\n }\n\n update(hashid: string, html: string): void {\n let element = this.table.querySelector(`[data-model-hashid=\"${hashid}\"`)\n if (element == null) {\n // This is mostly for debugging, but very practical\n console.warn(`Could not find element: data-model-hashid=\"${hashid}\"`)\n } else {\n element.outerHTML = html\n }\n this.hideModal()\n }\n\n destroy(hashid: string): void {\n let el = this.table.querySelector(`[data-model-hashid=\"${hashid}\"`)\n if (el !== null) {\n el.parentNode.removeChild(el)\n }\n }\n\n updateTable(html: string): void {\n this.table.innerHTML = html\n }\n\n tablePolling() {\n let poll = setInterval(function () {\n // We can not use target here as that will not be updated on each poll.\n if (document.querySelector('[data-polling-url]') === null) {\n clearInterval(poll)\n } else {\n document.querySelector('#flash_alert')?.remove()\n $.ajax({\n type: 'GET',\n url: (document.querySelector('[data-polling-url]') as HTMLElement).dataset.pollingUrl,\n dataType: 'script',\n })\n }\n }, 3000)\n }\n\n hideModal() {\n const modal = document.querySelector('.modal.show')\n if (modal !== null) {\n Modal.getInstance(modal).hide()\n } else {\n document.querySelector('.modal-backdrop.show')?.remove()\n }\n }\n\n toCamel(s): string {\n return s.replace(/([-_][a-z0-9])/gi, ($1) => {\n return $1.toUpperCase().replace('-', '').replace('_', '')\n })\n }\n\n connectAjaxListeners(): void {\n // We only listen to the first form which is expected to be the search form in a table\n // If this causes some issues we should add support for conditionally setting a form target\n const form = this.element.querySelector('form')\n if (form == null) return\n\n form.addEventListener('ajax:beforeSend', (event: CustomEvent) => {\n this.table.style.position = 'relative'\n // Replace only the parameters to ensure we request the same page when refreshing.\n if (event.detail[1].data !== null) {\n const url = new URL(window.location.href)\n let search = new URLSearchParams(event.detail[1].data)\n search.forEach((value, key) => url.searchParams.set(key, value))\n Turbo.navigator.history.push(url)\n }\n const spinner = icon(faSpinner, { classes: ['fa-spin', 'fa-3x'] }).node[0]\n const table = this.table\n let outerSpinner = document.createElement('div')\n outerSpinner.classList.add('busy-indicator')\n outerSpinner.appendChild(spinner)\n table.appendChild(outerSpinner)\n })\n form.addEventListener('ajax:success', () => {\n // If we have a remote link in the table it will trigger the spinner but never remove it.\n // This is links such as edit which renders modal and delete which removes table item.\n this.table.querySelector('.fa-spinner')?.parentElement?.remove()\n })\n form.addEventListener('ajax:error', (event: CustomEvent) => {\n console.error(`Got an error with the following data:`)\n console.error(event.detail)\n // We do a quite crude error handling here, this should be improved later\n // However it is much better than just ignoring it\n this.table.innerHTML = i18n.t('generic.error_message')\n })\n }\n}\n","import CrudTableController from '../../crud_table_controller'\nimport $ from 'jquery'\n\nexport default class extends CrudTableController {\n create(html: string, hideModal: boolean = true, position: InsertPosition = 'afterbegin'): void {\n this.element.insertAdjacentHTML(position, html)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\n\nexport default class extends Controller {\n static values = { postingCreated: String, resultToDistributeCents: String }\n static targets = [\n 'type',\n 'uncoveredLossInput',\n 'uncoveredLossLabel',\n 'estimatedTaxesInput',\n 'estimatedTaxesLabel',\n 'dividendsInput',\n 'profitsInput',\n ]\n declare postingCreatedValue: string\n declare resultToDistributeCentsValue: string\n declare typeTarget: HTMLInputElement\n declare uncoveredLossInputTarget: HTMLInputElement\n declare estimatedTaxesInputTarget: HTMLInputElement\n declare hasEstimatedTaxesLabelTarget: boolean\n declare estimatedTaxesLabelTarget: HTMLInputElement\n declare dividendsInputTarget: HTMLInputElement\n declare profitsInputTarget: HTMLInputElement\n\n connect() {\n if (this.postingCreatedValue == 'true' && this.hasEstimatedTaxesLabelTarget) {\n this.estimatedTaxesLabelTarget.innerHTML = this.estimatedTaxesInputTarget.value\n }\n this.updateTotal()\n }\n\n updateTotal() {\n if (this.typeTarget.value == 'profit') {\n let taxes = parseDecimal(this.estimatedTaxesInputTarget.value, new Decimal(0))\n let dividends = parseDecimal(this.dividendsInputTarget.value, new Decimal(0))\n let profits = this.resultToDistribute().minus(taxes).minus(dividends)\n this.profitsInputTarget.value = this.toAmountStr(profits)\n this.estimatedTaxesLabelTarget.innerHTML = this.estimatedTaxesInputTarget.value\n } else {\n this.uncoveredLossInputTarget.value = this.toAmountStr(this.resultToDistribute().neg())\n }\n }\n\n toAmountStr(value: Decimal): string {\n return value.toFixed(2).toString().replace('.', ',')\n }\n\n resultToDistribute() {\n return parseDecimal(this.resultToDistributeCentsValue, new Decimal(0)).div(100)\n }\n}\n","// This controller is copied from\n// https://github.com/stimulus-components/stimulus-rails-nested-form/blob/master/src/index.ts\n\n// MIT License\n//\n// Copyright (c) 2021 Guillaume Briday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n declare hasCheckboxAllTarget: boolean\n declare checkboxTargets: HTMLInputElement[]\n declare checkboxAllTarget: HTMLInputElement\n\n static targets: string[] = ['checkboxAll', 'checkbox']\n\n initialize() {\n this.toggle = this.toggle.bind(this)\n this.refresh = this.refresh.bind(this)\n }\n\n connect(): void {\n if (!this.hasCheckboxAllTarget) return\n\n this.checkboxAllTarget.addEventListener('change', this.toggle)\n this.checkboxTargets.forEach((checkbox) => checkbox.addEventListener('change', this.refresh))\n this.refresh()\n }\n\n disconnect(): void {\n if (!this.hasCheckboxAllTarget) return\n\n this.checkboxAllTarget.removeEventListener('change', this.toggle)\n this.checkboxTargets.forEach((checkbox) => checkbox.removeEventListener('change', this.refresh))\n }\n\n toggle(e: Event): void {\n e.preventDefault()\n\n this.checkboxTargets.forEach((checkbox) => {\n // @ts-ignore\n checkbox.checked = e.target.checked\n this.triggerInputEvent(checkbox)\n })\n }\n\n refresh(): void {\n const checkboxesCount = this.checkboxTargets.length\n const checkboxesCheckedCount = this.checked.length\n\n this.checkboxAllTarget.checked = checkboxesCheckedCount > 0\n this.checkboxAllTarget.indeterminate = checkboxesCheckedCount > 0 && checkboxesCheckedCount < checkboxesCount\n }\n\n triggerInputEvent(checkbox: HTMLInputElement): void {\n const event = new Event('input', { bubbles: false, cancelable: true })\n\n checkbox.dispatchEvent(event)\n }\n\n get checked(): HTMLInputElement[] {\n return this.checkboxTargets.filter((checkbox) => checkbox.checked)\n }\n\n get unchecked(): HTMLInputElement[] {\n return this.checkboxTargets.filter((checkbox) => !checkbox.checked)\n }\n}\n","import CheckboxSelectAll from './checkbox_select_all_controller'\n\nexport interface BulkActionParams {\n checkedRows: Array\n bulkActionSelector: HTMLSelectElement\n}\n\nexport default class extends CheckboxSelectAll {\n static targets: string[] = ['actionRow', 'selectedCount', 'waitingSpinner', 'selector']\n\n declare actionRowTarget: HTMLInputElement\n declare hasActionRowTarget: HTMLInputElement\n declare selectedCountTarget: HTMLInputElement\n declare waitingSpinnerTarget: HTMLElement\n declare selectorTarget: HTMLSelectElement\n\n static values = { checkboxAction: String }\n\n declare checkboxActionValue: string\n declare hasCheckboxActionValue: boolean\n\n refresh(): void {\n super.refresh()\n this.updateOnCheckTarget()\n }\n\n toggle(e: Event): void {\n super.toggle(e)\n this.updateOnCheckTarget()\n }\n\n async handleCheckedOption(event) {\n if (!this.hasCheckboxActionValue) return\n\n const actions = JSON.parse(this.checkboxActionValue) as Array\n for (const action of actions) {\n const [controllerName, actionName] = action.split('#')\n\n const controllerInstance = this.application.getControllerForElementAndIdentifier(\n this.element,\n controllerName,\n ) as any\n\n await controllerInstance[actionName](this.params())\n }\n }\n\n async submit(event: Event) {\n const [controllerName, actionName] = (event.target as HTMLOptionElement).value.split('#')\n\n const controllerInstance = this.application.getControllerForElementAndIdentifier(\n this.element,\n controllerName,\n ) as any\n\n this.displayWaitingSpinner(true)\n await controllerInstance[actionName](this.params())\n this.displayWaitingSpinner(false)\n this.resetActionSelector()\n }\n\n resetActionSelector() {\n this.actionRowTarget.querySelector('select').selectedIndex = 0\n }\n\n displayWaitingSpinner(display: boolean): void {\n display ? this.waitingSpinnerTarget.classList.remove('d-none') : this.waitingSpinnerTarget.classList.add('d-none')\n }\n\n params(): BulkActionParams {\n return {\n checkedRows: this.checked.map((input) => input.closest('tr') as HTMLTableRowElement),\n bulkActionSelector: this.selectorTarget,\n } as BulkActionParams\n }\n\n private updateOnCheckTarget() {\n if (!this.hasActionRowTarget) {\n return\n }\n const checkboxesCheckedCount = this.checked.length\n if (checkboxesCheckedCount >= 1) {\n this.actionRowTarget.style.visibility = 'visible'\n this.actionRowTarget.classList.remove('d-none')\n this.selectedCountTarget.textContent = checkboxesCheckedCount.toString()\n } else {\n this.actionRowTarget.style.visibility = 'hidden'\n this.actionRowTarget.classList.add('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport {\n Chart,\n LineElement,\n BarElement,\n PointElement,\n BarController,\n LineController,\n LinearScale,\n CategoryScale,\n Legend,\n Title,\n Tooltip,\n ChartType,\n} from 'chart.js'\n// Register is needed for Tree shaking\nChart.register(\n LineElement,\n BarElement,\n BarController,\n PointElement,\n LineController,\n LinearScale,\n Legend,\n Title,\n Tooltip,\n CategoryScale,\n)\n\nexport default class extends Controller {\n static targets = ['canvas']\n static values = {\n type: String,\n data: Object,\n options: Object,\n }\n\n declare canvasTarget: HTMLCanvasElement\n declare hasCanvasTarget: boolean\n declare typeValue: ChartType\n declare dataValue: any\n declare optionsValue: any\n declare hasDataValue: boolean\n\n chart: Chart\n\n connect() {\n const element = this.hasCanvasTarget ? this.canvasTarget : (this.element as HTMLCanvasElement)\n\n this.chart = new Chart(element, {\n type: this.typeValue || 'line',\n data: this.dataValue,\n options: {\n ...this.defaultOptions,\n ...this.optionsValue,\n },\n })\n }\n\n disconnect() {\n this.chart.destroy()\n this.chart = undefined\n }\n\n get defaultOptions() {\n return {\n animation: false,\n plugins: {\n legend: {\n display: false,\n },\n title: {\n display: false,\n },\n },\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['checkedContent', 'uncheckedContent', 'source']\n declare checkedContentTargets: Array\n declare uncheckedContentTargets: Array\n declare hasCheckedContentTarget: boolean\n declare hasUncheckedContentTarget: boolean\n declare sourceTarget: HTMLInputElement\n\n connect() {\n this.flipContent()\n }\n\n flipContent() {\n if (this.sourceTarget.checked) {\n if (this.hasCheckedContentTarget) {\n this._changeElementsVisibility(this.checkedContentTargets, true)\n }\n if (this.hasUncheckedContentTarget) {\n this._changeElementsVisibility(this.uncheckedContentTargets, false)\n }\n } else {\n if (this.hasCheckedContentTarget) {\n this._changeElementsVisibility(this.checkedContentTargets, false)\n }\n if (this.hasUncheckedContentTarget) {\n this._changeElementsVisibility(this.uncheckedContentTargets, true)\n }\n }\n }\n\n _changeElementsVisibility(elementsArray, display) {\n elementsArray.forEach((element) => {\n if (display) {\n element.classList.remove('d-none')\n } else {\n element.classList.add('d-none')\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['item']\n static values = { maxClampHeight: { type: Number, default: 160 } }\n\n showMoreLess: HTMLElement\n declare itemTarget: HTMLElement\n declare maxClampHeightValue: number\n\n connect() {\n this.showMoreLess = document.createElement('small')\n if ((this.element as HTMLElement).offsetHeight > this.maxClampHeightValue) {\n this.clamp()\n } else {\n return\n }\n this.showMoreLess.className = 'btn-link float-end'\n this.showMoreLess.innerHTML = i18n.t('generic.show_more')\n this.showMoreLess.addEventListener('click', this.clamp.bind(this))\n this.element.appendChild(this.showMoreLess)\n }\n\n clamp() {\n this.itemTarget.classList.toggle('clamped-item')\n if (this.itemTarget.classList.contains('clamped-item')) {\n this.showMoreLess.innerHTML = i18n.t('generic.show_more')\n } else {\n this.showMoreLess.innerHTML = i18n.t('generic.show_less')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n initialize() {\n super.initialize()\n this.element.setAttribute('disabled', '')\n\n // If this input has a hint, we will need to insert it in the same element to make it look nice,\n // otherwise, create a form-text div to hold our link\n let existingFormText = this.existingFormText()\n if (existingFormText == null) {\n this.element.parentNode.insertBefore(this.createFormTextDiv(), this.element.nextSibling)\n } else {\n existingFormText.append(this.createHref('float-end'))\n }\n }\n\n private existingFormText(): Element | null {\n let sibling = this.element.nextElementSibling\n if (sibling.classList.contains('form-text')) {\n return sibling\n } else {\n return null\n }\n }\n\n private createFormTextDiv() {\n let div = document.createElement('div')\n div.classList.add('form-text')\n div.append(this.createHref('d-flex', 'justify-content-end'))\n return div\n }\n\n private createHref(...tokens: string[]): HTMLAnchorElement {\n let a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement\n a.classList.add(...tokens)\n a.href = '#'\n a.onclick = (ev) => {\n ev.preventDefault()\n this.element.removeAttribute('disabled')\n a.hidden = true\n }\n let text = document.createTextNode(i18n.t('generic.change'))\n a.appendChild(text)\n return a\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['swappable']\n\n declare swappableTargets: Array\n\n swap(event) {\n event.preventDefault()\n this.swappableTargets.forEach((swappable) => {\n if (swappable.classList.contains('d-none')) {\n swappable.classList.remove('d-none')\n } else {\n swappable.classList.add('d-none')\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Tooltip } from 'bootstrap'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['source', 'alert']\n\n declare sourceTarget: HTMLInputElement\n declare alertTarget: HTMLElement\n declare hasAlertTarget: boolean\n\n connect() {\n if (this.hasAlertTarget) {\n this.alertTarget.classList.add('d-none')\n }\n }\n\n copy(_event) {\n const value = this.sourceTarget.getAttribute('value')\n navigator.clipboard.writeText(value)\n }\n\n showAlert(event) {\n const tooltip = new Tooltip(event.target, {\n title: i18n.t('company.referral_program.page.link_copied'),\n placement: 'right',\n trigger: 'manual',\n customClass: 'clipboard-tooltip',\n })\n tooltip.show()\n setInterval(function () {\n tooltip.hide()\n }, 1000)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Collapse } from 'bootstrap'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static values = {\n show: { type: String, default: i18n.t('generic.show_details') },\n hide: { type: String, default: i18n.t('generic.hide_details') },\n }\n\n static targets = ['collapse', 'button', 'buttonText']\n\n declare showValue: string\n declare hideValue: string\n declare buttonTextTarget: HTMLElement\n declare collapseTarget: HTMLElement\n\n connect() {\n if (this.collapseTarget.classList.contains('show')) {\n this.buttonTextTarget.innerText = this.hideValue\n } else {\n this.buttonTextTarget.innerText = this.showValue\n }\n }\n\n toggle() {\n if (this.collapseTarget.classList.contains('show')) {\n this.buttonTextTarget.innerText = this.showValue\n } else {\n this.buttonTextTarget.innerText = this.hideValue\n }\n Collapse.getOrCreateInstance(this.collapseTarget).toggle()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['collapsibleRow']\n\n declare collapsibleRowTargets: Array\n\n connect() {\n const tables = new Set(this.collapsibleRowTargets.map((element) => element.closest('table')))\n tables.forEach((table) => {\n this.updateLastStaticRowClass(table, 'collapse')\n })\n }\n\n toggleRows(event: Event) {\n event.preventDefault()\n\n const button = event.target as HTMLButtonElement\n const collapseGroup = button.getAttribute('data-collapse-group')\n const table = this.findTable(collapseGroup)\n if (!table) return\n\n const toggleRows = table.querySelectorAll('tr[data-collapse-group]:not([data-collapse-group=\"\"])')\n if (toggleRows.length === 0) return\n\n const action: 'expand' | 'collapse' = this.determineAction(toggleRows)\n this.toggleRowVisibility(toggleRows, action)\n this.updateButtonLabel(button, action)\n this.updateLastStaticRowClass(table, action)\n }\n\n findTable(collapseGroup: string | null): HTMLTableElement | null {\n return (\n this.collapsibleRowTargets\n .find((el) => el.getAttribute('data-collapse-group') === collapseGroup)\n ?.closest('table') || null\n )\n }\n\n determineAction(toggleRows: NodeListOf): 'expand' | 'collapse' {\n return toggleRows[0].classList.contains('d-none') ? 'expand' : 'collapse'\n }\n\n toggleRowVisibility(rows: NodeListOf, action: 'expand' | 'collapse') {\n rows.forEach((row) => {\n row.classList.toggle('d-none', action === 'collapse')\n row.classList.toggle('d-table-row', action === 'expand')\n })\n }\n\n updateButtonLabel(button: HTMLButtonElement, action: 'expand' | 'collapse') {\n if (button.dataset.hasOwnProperty('alternative')) return\n\n const label = action === 'expand' ? i18n.t('navigation.hide_all') : i18n.t('navigation.show_all')\n button.innerHTML = label\n }\n\n // Mark the last visible row in the table to apply the correct border styling\n updateLastStaticRowClass(table: HTMLTableElement, action: 'expand' | 'collapse') {\n const staticRows = table.querySelectorAll('tr:not([data-collapse-group]), tr[data-collapse-group=\"\"]')\n if (staticRows.length > 0) {\n const lastStaticRow = staticRows[staticRows.length - 1] as HTMLTableRowElement\n lastStaticRow.classList.toggle('last-collapsable-table-row', action === 'collapse')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\nimport { format } from 'date-fns'\nimport FlatpickrController from 'controllers/flatpickr_controller'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = [\n 'accountingFrom',\n 'accountingFromModalNotice',\n 'accountingFromModalWarning',\n 'accountingFromModalFinalizedReconciliationsWarning',\n 'bankAccountStartDate',\n ]\n\n declare accountingFromTarget: HTMLInputElement\n declare accountingFromModalNoticeTarget: HTMLElement\n declare accountingFromModalWarningTarget: HTMLElement\n declare bankAccountStartDateTargets: HTMLElement[]\n declare accountingFromModalFinalizedReconciliationsWarningTarget: HTMLElement\n\n connect() {\n let modal = document.getElementById(this.accountingFromTarget.dataset.accountingFromWarningModalId)\n modal?.addEventListener('hidden.bs.modal', (event) => {\n event.preventDefault()\n\n this.revertAccountingFromField()\n\n const modalId = this.accountingFromTarget.dataset.accountingFromWarningModalId\n const modal = document.getElementById(modalId)\n Modal.getOrCreateInstance(modal).hide()\n })\n }\n\n showAccountingFromWarningModal() {\n const modalId = this.accountingFromTarget.dataset.accountingFromWarningModalId\n const modal = document.getElementById(modalId)\n\n if (modal != null) {\n const newAccountingStartDate = new Date(this.accountingFromTarget.value)\n newAccountingStartDate.setHours(0, 0, 0)\n const firstBankAccountOpenedOnDate = new Date(this.bankAccountStartDateTargets[0].innerHTML)\n firstBankAccountOpenedOnDate.setHours(0, 0, 0)\n\n if (firstBankAccountOpenedOnDate.getTime() >= newAccountingStartDate.getTime()) {\n return\n }\n\n const anyFinalizedReconciliations = this.accountingFromTarget.dataset.anyFinalizedReconciliations\n\n const formattedDate = format(newAccountingStartDate, i18n.t('date.formats.frontend.datefns.short'))\n\n this.accountingFromModalNoticeTarget.innerText = i18n.t(\n 'company.settings.accounting_from_warning_modal.body.notice',\n { date: formattedDate },\n )\n this.accountingFromModalWarningTarget.innerText = i18n.t(\n 'company.settings.accounting_from_warning_modal.body.warning',\n { date: formattedDate },\n )\n\n if (anyFinalizedReconciliations === 'true') {\n this.accountingFromModalFinalizedReconciliationsWarningTarget.innerText = i18n.t(\n 'company.settings.accounting_from_warning_modal.body.finalized_reconciliations_warning',\n { date: formattedDate },\n )\n }\n\n this.bankAccountStartDateTargets.forEach((bankAccountStartDateElement) => {\n const bankAccountStartDate = new Date(bankAccountStartDateElement.innerHTML)\n bankAccountStartDate.setHours(0, 0, 0)\n\n if (bankAccountStartDate.getTime() >= newAccountingStartDate.getTime()) {\n bankAccountStartDateElement.parentElement.classList.add('d-none')\n } else {\n bankAccountStartDateElement.parentElement.classList.remove('d-none')\n }\n })\n\n Modal.getOrCreateInstance(modal).show()\n }\n }\n\n revertAccountingFromField() {\n const flatpickrController = this.application.getControllerForElementAndIdentifier(\n this.accountingFromTarget,\n 'flatpickr',\n // We cast to unknown since FlatpickrController doesn't cover Controller\n // There might be a better way in Typescript, but we dont know how\n // In any case, it is a FlatpickrController that should be returned.\n ) as unknown as FlatpickrController\n\n const date = new Date(this.accountingFromTarget.dataset.accountingFrom)\n flatpickrController.fp.setDate(date, true)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { DEFAULT_STATIC_PARMS } from '../../standalone/components/Select2Builder'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static targets = [\n 'companyName',\n 'municipality',\n 'taxZones',\n 'disbursementBankAccountSelect',\n 'taxBankAccountSelect',\n 'salaryPensionProviderSelect',\n 'roadFreightTransport',\n ]\n\n declare companyNameTarget: HTMLInputElement\n declare municipalityTarget: HTMLInputElement\n declare taxZonesTarget: HTMLSelectElement\n declare hasCompanyNameTarget: Boolean\n declare disbursementBankAccountSelectTarget: HTMLSelectElement\n declare taxBankAccountSelectTarget: HTMLSelectElement\n declare salaryPensionProviderSelectTarget: HTMLSelectElement\n declare roadFreightTransportTarget: HTMLInputElement\n declare hasTaxZonesTarget: boolean\n declare hasSalaryPensionProviderSelectTarget: boolean\n\n initialize() {\n this.handleZoneSelect()\n if (this.hasSalaryPensionProviderSelectTarget) {\n let select2Element = $(this.salaryPensionProviderSelectTarget)\n select2Element.select2({\n ...DEFAULT_STATIC_PARMS,\n minimumInputLength: 0,\n })\n }\n }\n\n submitForm(event) {\n if (this.hasCompanyNameTarget && this.companyNameTarget.value !== this.companyNameTarget.dataset.name) {\n Modal.getOrCreateInstance(document.querySelector('#change_company_name_modal')).show()\n return event.preventDefault()\n }\n }\n\n findAvailableTaxZones() {\n if (this.municipalityTarget.value === null || this.municipalityTarget.value === '') {\n return\n }\n $.ajax({\n type: 'GET',\n data: {\n name: this.municipalityTarget.value,\n },\n url: `/norwegian_municipalities/search.json`,\n dataType: 'json',\n success: (result) => {\n if (result.tax_rates !== null) {\n console.log(result.tax_rates)\n this.taxZonesTarget.innerText = null\n for (let i in result.tax_rates) {\n console.log(result.tax_rates[i][0])\n this.taxZonesTarget.append(new Option(result.tax_rates[i][0], result.tax_rates[i][1], false, false))\n }\n this.handleZoneSelect()\n }\n },\n })\n }\n\n handleZoneSelect() {\n if (this.hasTaxZonesTarget) {\n if (this.taxZonesTarget.options[this.taxZonesTarget.selectedIndex].value === '1a') {\n this.roadFreightTransportTarget.classList.remove('d-none')\n } else {\n this.roadFreightTransportTarget.classList.add('d-none')\n }\n }\n }\n\n handleBankAccountCreate(event) {\n const { model } = event\n const option = new Option(`${model.name} - ${model.number}`, model.id, true, true)\n switch (model.account_type) {\n case 'standard':\n this.disbursementBankAccountSelectTarget.append(option)\n break\n case 'tax_deduction':\n this.taxBankAccountSelectTarget.append(option)\n break\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport autoComplete from '../../standalone/components/AutoComplete'\nimport $ from 'jquery'\nimport { Modal } from 'bootstrap'\nimport { i18n } from '../../libraries/i18n'\n// IMPORTANT: You MUST define data-partner-type on the controlled element. Its\n// value is passed as the value of the type query parameter to the search\n// endpoint.\nexport default class extends Controller {\n static targets = ['searchInput']\n\n declare searchInputTarget: HTMLInputElement\n\n searchCorporation: boolean\n\n connect() {\n this.setupSelect2(this.element)\n }\n\n _templateNewCompany(repo): JQuery | string {\n if (repo.loading) {\n return repo.text\n }\n // This is the case where we found a result:\n if (repo.name) {\n return $(`\n ${repo.name}\n \n ${repo.organisation_number}\n \n `)\n }\n return ''\n }\n\n setupSelect2(selector): void {\n const params = {\n theme: 'bootstrap',\n width: '100%',\n minimumInputLength: 3, // PS Minimum input length hides the default options\n tags: true,\n ajax: {\n url: '/companies/search.json',\n dataType: 'json',\n delay: 250,\n data(params) {\n return {\n term: params.term,\n page: params.page,\n }\n },\n processResults(data, params) {\n // parse the results into the format expected by Select2\n // since we are using custom formatting functions we do not need to\n // alter the remote JSON data, except to indicate that infinite\n // scrolling can be used\n params.page = params.page || 1\n return {\n results: data,\n pagination: {\n more: params.page * 25 < data.total_count,\n },\n }\n },\n cache: true,\n },\n /* This formats what is shown in the selection options */\n templateResult: this._templateNewCompany,\n /* How a selected result will look when clicked (or selected) */\n templateSelection(selected) {\n if (selected.text) {\n return selected.text\n }\n return selected.name\n },\n placeholder: i18n.t('company.new_search_placeholder'),\n }\n const elem = $(selector).select2(params)\n\n $(selector)\n .select2(params)\n .on('select2:select', function () {\n let event = new Event('change', { bubbles: true })\n this.dispatchEvent(event)\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../util/rails_fetch'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static values = { anchor: String, property: String, newValue: String }\n\n declare anchorValue: string\n declare propertyValue: string\n declare newValueValue: string\n\n static targets = ['action', 'alert']\n\n declare actionTarget: HTMLElement\n declare hasActionTarget: boolean\n declare alertTarget: HTMLElement\n declare hasAlertTarget: boolean\n\n async update() {\n const url = `/companies/${(window as any).current_company_id}`\n const data = {\n current_company_hashid: (window as any).current_company_id,\n company: {\n anchor: this.anchorValue,\n [this.propertyValue]: this.newValueValue,\n },\n }\n\n await rails_fetch(url, {\n method: 'PUT',\n body: JSON.stringify(data),\n })\n .then((response) => response.json())\n .then((data) => this.onSuccess(data))\n }\n\n onSuccess(data) {\n if (this.hasAlertTarget) {\n this.alertTarget.classList.remove('d-none')\n\n if (this.hasActionTarget) {\n this.actionTarget.classList.add('d-none')\n }\n } else {\n window.location.reload()\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Popover } from 'bootstrap'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n confirmBtn: HTMLButtonElement\n\n initialize() {\n super.initialize()\n this.confirmBtn = document.createElement('button')\n this.confirmBtn.classList.add('btn', 'btn-danger')\n }\n\n connect() {\n // If we use eventlistener on the element we do not get the context of the stimulus controller, and therefore can\n // not do access any variables or methods, we do however get this if we use 'data-action'. To make the controller\n // easy to use we automatically add 'data-action' to the element.\n this.element.setAttribute('data-action', `${this.context.module.identifier}#confirm`)\n }\n\n confirm(event: MouseEvent) {\n let target = event.currentTarget as HTMLElement\n\n if (target.dataset.confirmed === 'true') {\n Popover.getOrCreateInstance(target).hide()\n return // we are already confirmed, just return to allow default action to proceed\n }\n\n this.confirmBtn.innerText = target.dataset.confirmationYes ?? i18n.t('simple_form.yes')\n this.confirmBtn.addEventListener('click', () => {\n target.dataset.confirmed = 'true'\n target.click()\n })\n\n let rejectBtn = document.createElement('button')\n rejectBtn.innerText = target.dataset.confirmationNo ?? i18n.t('simple_form.no')\n rejectBtn.classList.add('btn', 'btn-outline-secondary')\n rejectBtn.addEventListener('click', () => {\n Popover.getOrCreateInstance(target).hide()\n })\n\n let popoverContent = document.createElement('div')\n popoverContent.classList.add('d-flex', 'justify-content-end', 'gap-2')\n popoverContent.appendChild(rejectBtn)\n popoverContent.appendChild(this.confirmBtn)\n\n Popover.getOrCreateInstance(target, {\n title: target.dataset.title ?? i18n.t('navigation.confirmation'),\n template:\n '',\n html: true,\n trigger: 'manual',\n sanitize: false,\n content: popoverContent,\n }).show()\n\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['navItem', 'content']\n static values = { defaultContent: String }\n\n declare navItemTargets: Array\n declare contentTargets: Array\n declare hasDefaultContentValue: boolean\n declare defaultContentValue: string\n\n connect() {\n if (this.hasDefaultContentValue) {\n this.showContent(this.defaultContentValue)\n } else {\n this.showContent(this.navItemTargets[0].dataset.contentId)\n }\n\n window.addEventListener('popstate', (event) => {\n if (event.state.content !== undefined) {\n this.showContent(event.state.content, false)\n }\n })\n }\n\n show(event) {\n this.showContent(event.target.value)\n }\n\n private showContent(name, pushState = true) {\n let tab = this.navItemTargets.find((tab) => tab.dataset.contentId === name)\n if (tab instanceof Option) {\n tab.selected = true\n }\n this.contentTargets.forEach((content) => {\n if (content.dataset.contentId === name) {\n content.classList.add('show')\n content.style.display = 'block'\n } else {\n content.classList.remove('show')\n content.style.display = 'none'\n }\n })\n\n if (pushState) {\n let url = new URL(window.location.href)\n let segments = url.pathname.split('/')\n segments[segments.length - 1] = name\n url.pathname = segments.join('/')\n history.pushState({ content: name }, '', url)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['source', 'destination']\n static values = { forceOverwrite: Boolean }\n\n declare destinationTargets: Array\n declare hasForceOverwriteValue: boolean\n declare forceOverwriteValue: boolean\n\n copy(event) {\n this.destinationTargets.forEach((destinationElement) => {\n if (destinationElement.value.trim() === '' || (this.forceOverWrite() && event.target != destinationElement)) {\n destinationElement.value = event.target.value\n destinationElement.dispatchEvent(new InputEvent('input'))\n }\n })\n }\n\n forceOverWrite(): boolean {\n return this.hasForceOverwriteValue && this.forceOverwriteValue\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['identificationField']\n\n declare identificationFieldTarget: HTMLInputElement\n\n enableIdentification() {\n this.identificationFieldTarget.removeAttribute('readonly')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n checkUserPresence(event) {\n let xhr = new XMLHttpRequest()\n xhr.open('GET', `/customer_invitations/check_user_presence?email=${event.target.value}`, true)\n xhr.setRequestHeader('Accept', 'application/json')\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n const parsedResponse = JSON.parse(xhr.response)\n const hint = document.getElementById('email-hint')\n if (parsedResponse.companies === null) {\n hint.innerText = ''\n } else {\n hint.innerText = `${i18n.t('user.companies')}: ${parsedResponse.companies}`\n }\n }\n }\n }\n xhr.send()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { isSameDay, parseISO } from 'date-fns'\n\nexport default class extends Controller {\n static targets = ['date', 'dateWarning']\n\n declare dateWarningTarget: HTMLElement\n declare dateTarget: HTMLElement\n\n connect() {\n this.toggleWarning({ target: this.dateTarget })\n }\n\n toggleWarning(event) {\n if (this.data.get('warningEnabled') === 'true') {\n const invoiceDate = parseISO(event.target.value)\n\n if (isSameDay(invoiceDate, new Date())) {\n this.dateWarningTarget.classList.add('d-none')\n } else {\n this.dateWarningTarget.classList.remove('d-none')\n }\n }\n }\n}\n","var ElementObserver = /** @class */ (function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set;\n this.mutationObserver = new MutationObserver(function (mutations) { return _this.processMutations(mutations); });\n }\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, childList: true, subtree: true });\n this.refresh();\n }\n };\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n };\n // Mutation record processing\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n };\n // Element matching\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) { tree = this.element; }\n return this.delegate.matchElementsInTree(tree);\n };\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n };\n // Element tracking\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n return ElementObserver;\n}());\nexport { ElementObserver };\n//# sourceMappingURL=element_observer.js.map","import { ElementObserver } from \"./element_observer\";\nvar AttributeObserver = /** @class */ (function () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n // Element observer delegate\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n return AttributeObserver;\n}());\nexport { AttributeObserver };\n//# sourceMappingURL=attribute_observer.js.map","var StringMapObserver = /** @class */ (function () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map;\n this.mutationObserver = new MutationObserver(function (mutations) { return _this.processMutations(mutations); });\n }\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true });\n this.refresh();\n }\n };\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n };\n // Mutation record processing\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n };\n // State tracking\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) { return attribute.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}());\nexport { StringMapObserver };\n//# sourceMappingURL=string_map_observer.js.map","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n//# sourceMappingURL=set_operations.js.map","import { add, del } from \"./set_operations\";\nvar Multimap = /** @class */ (function () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) { return values.concat(Array.from(set)); }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) { return size + set.size; }, 0);\n },\n enumerable: false,\n configurable: true\n });\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) { return set.has(value); });\n };\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey)\n .filter(function (_a) {\n var key = _a[0], values = _a[1];\n return values.has(value);\n })\n .map(function (_a) {\n var key = _a[0], values = _a[1];\n return key;\n });\n };\n return Multimap;\n}());\nexport { Multimap };\n//# sourceMappingURL=multimap.js.map","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 { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\nvar IndexedMultimap = /** @class */ (function (_super) {\n __extends(IndexedMultimap, _super);\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n _this.keysByValue = new Map;\n return _this;\n }\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n add(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n del(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n return IndexedMultimap;\n}(Multimap));\nexport { IndexedMultimap };\n//# sourceMappingURL=indexed_multimap.js.map","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\nvar TokenListObserver = /** @class */ (function () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap;\n }\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n // Attribute observer delegate\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element), unmatchedTokens = _a[0], matchedTokens = _a[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) { return _this.tokenMatched(token); });\n };\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) { return _this.tokenUnmatched(token); });\n };\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens)\n .findIndex(function (_a) {\n var previousToken = _a[0], currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n return TokenListObserver;\n}());\nexport { TokenListObserver };\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) { return content.length; })\n .map(function (content, index) { return ({ element: element, attributeName: attributeName, content: content, index: index }); });\n}\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({ length: length }, function (_, index) { return [left[index], right[index]]; });\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n//# sourceMappingURL=token_list_observer.js.map","import { TokenListObserver } from \"./token_list_observer\";\nvar ValueListObserver = /** @class */ (function () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap;\n this.valuesByTokenByElement = new WeakMap;\n }\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n };\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map;\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n };\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return { value: value };\n }\n catch (error) {\n return { error: error };\n }\n };\n return ValueListObserver;\n}());\nexport { ValueListObserver };\n//# sourceMappingURL=value_list_observer.js.map","import { Controller } from '@hotwired/stimulus'\nimport { ElementObserver } from '@stimulus/mutation-observers'\nimport JsFormError from '../../standalone/components/JsFormError'\nimport PartnerSelectController from '../partner/select_controller'\nimport $ from '../../libraries/jquery'\nimport { rails_fetch } from '../../util/rails_fetch'\nimport Rails from '@rails/ujs'\nimport { nextFrame } from '../../rendering'\nimport { parseDecimal } from '../../classes/parse_decimal'\nimport { i18n } from '../../libraries/i18n'\n\nclass SaveLineButtonObserver {\n controller: EditController\n\n constructor(controller) {\n this.controller = controller\n }\n\n matchElement(element) {\n return element.id == 'new-line-item-form'\n }\n\n matchElementsInTree(tree) {\n return []\n }\n\n elementMatched(element) {\n this.controller.updateSaveLineButtonLabel()\n this.controller.displayVatWarning()\n }\n}\n\nclass EditController extends Controller {\n static targets = [\n 'baseForm',\n 'commentMirror',\n 'comment',\n 'customerLineItem',\n 'addLineButton',\n 'saveLineButton',\n 'customerSelect',\n 'sendMethodField',\n 'vatSelect',\n 'currency',\n 'setAsDefaultSalesInvoiceBankAccountCheckbox',\n 'paymentDays',\n 'lineItemForm',\n 'list',\n 'totalSum',\n 'vatWarning',\n ]\n\n declare listTarget: HTMLElement\n declare hasListTarget: boolean\n declare totalSumTarget: HTMLElement\n declare hasTotalSumTarget: boolean\n declare vatWarningTarget: HTMLElement\n declare hasVatWarningTarget: boolean\n declare customerLineItemTargets: HTMLElement[]\n declare hasSaveLineButtonTarget: boolean\n declare saveLineButtonTarget: HTMLButtonElement\n declare baseFormTarget: HTMLFormElement\n declare hasAddLineButtonTarget: boolean\n declare addLineButtonTarget: HTMLButtonElement\n declare hasLineItemFormTarget: boolean\n declare lineItemFormTarget: HTMLFormElement\n declare commentTarget: HTMLInputElement\n declare commentMirrorTarget: HTMLInputElement\n declare hasVatSelectTarget: boolean\n declare vatSelectTarget: HTMLSelectElement\n declare vatSelectTargets: HTMLSelectElement[]\n declare currencyTarget: HTMLElement\n declare hasCurrencyTarget: boolean\n declare customerSelectTarget: HTMLElement\n declare sendMethodFieldTarget: HTMLSelectElement\n declare hasSendMethodFieldTarget: boolean\n declare hasSetAsDefaultSalesInvoiceBankAccountCheckboxTarget: boolean\n declare setAsDefaultSalesInvoiceBankAccountCheckboxTarget: HTMLInputElement\n declare paymentDaysTarget: HTMLElement\n declare hasPaymentDaysTarget: boolean\n\n connect() {\n this.setupAutomaticInvoiceLineFormExpansion()\n this.hideSetAsDefaultPaymentCheckbox(true)\n this.showPaymentDaysField()\n this.observeTotalChange()\n\n this.addLineButtonTarget.addEventListener('click', () => {\n nextFrame(() => {\n this.displayVatWarning()\n })\n })\n }\n\n hideSendMethodField() {\n if (!this.hasSendMethodFieldTarget) {\n return\n }\n\n this.sendMethodFieldTarget.classList.add('d-none')\n }\n\n showSendMethodField() {\n if (!this.hasSendMethodFieldTarget) {\n return\n }\n\n this.sendMethodFieldTarget.classList.remove('d-none')\n }\n\n hideSetAsDefaultPaymentCheckbox(hide) {\n if (!this.hasSetAsDefaultSalesInvoiceBankAccountCheckboxTarget) {\n return\n }\n\n if (hide) {\n this.setAsDefaultSalesInvoiceBankAccountCheckboxTarget.parentElement.classList.add('d-none')\n } else {\n this.setAsDefaultSalesInvoiceBankAccountCheckboxTarget.parentElement.classList.remove('d-none')\n }\n\n this.setAsDefaultSalesInvoiceBankAccountCheckboxTarget.checked = false\n }\n\n showSetAsDefaultSalesInvoiceBankAccountCheckbox(event) {\n if (event.target.options[event.target.selectedIndex].getAttribute('selected_bank_account') === 'true') {\n this.hideSetAsDefaultPaymentCheckbox(true)\n } else {\n this.hideSetAsDefaultPaymentCheckbox(false)\n }\n }\n\n updateSaveLineButtonLabel() {\n let label\n\n if (this.customerLineItemTargets.length > 0) {\n label = (this.element as HTMLElement).dataset.labelWhenPresent\n } else {\n label = (this.element as HTMLElement).dataset.labelWhenEmpty\n }\n\n if (this.hasSaveLineButtonTarget) {\n this.saveLineButtonTarget.value = label\n }\n }\n\n handleSaveCustomerInvoiceLineItem() {\n this.updateCustomerInvoice()\n }\n\n updateCurrencySelect() {\n if (this.hasCurrencyTarget) {\n ;(this.currencyTarget as HTMLSelectElement).disabled = this.customerLineItemTargets.length !== 0\n }\n }\n\n saveLineItem() {\n if (!this.hasLineItemFormTarget) {\n return\n }\n\n Rails.fire(this.lineItemFormTarget, 'submit')\n }\n\n submitForm(event) {\n this._syncComment()\n this.baseFormTarget.submit()\n event.preventDefault()\n }\n\n updateAndSendInvoice(event) {\n const sendAndUpdate = document.createElement('input')\n sendAndUpdate.type = 'hidden'\n sendAndUpdate.name = 'send_and_update'\n sendAndUpdate.value = event.target.id\n this.baseFormTarget.appendChild(sendAndUpdate)\n\n this.submitForm(event)\n }\n\n setupAutomaticInvoiceLineFormExpansion() {\n new ElementObserver(this.element, new SaveLineButtonObserver(this)).start()\n\n // addLineButton isn't present when the invoice line item isn't expanded so\n // we need to check. Otherwise referring to addLineButtonTarget will raise\n // an exception.\n if (this.hasAddLineButtonTarget && this.customerLineItemTargets.length === 0) {\n this.addLineButtonTarget.click()\n }\n }\n\n showPaymentDaysField() {\n if (!this.hasPaymentDaysTarget || !this.hasTotalSumTarget) {\n return\n }\n\n if (parseDecimal(this.totalSumTarget.dataset.value).toNumber() < 0) {\n this.paymentDaysTarget.querySelector('input').value = '0'\n this.paymentDaysTarget.classList.add('d-none')\n } else {\n this.paymentDaysTarget.classList.remove('d-none')\n }\n }\n\n observeTotalChange() {\n if (!this.hasListTarget) {\n return\n }\n\n const targetNode = this.listTarget\n\n const config = { childList: true, subtree: true }\n\n const callback = (mutationsList, observer) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n this.showPaymentDaysField()\n }\n }\n }\n\n const observer = new MutationObserver(callback)\n\n observer.observe(targetNode, config)\n }\n\n _syncComment() {\n if (this.targets.has('comment') && this.targets.has('commentMirror')) {\n this.commentTarget.value = this.commentMirrorTarget.value\n }\n }\n\n handlePartnerCreate(event) {\n const { partner } = event\n const controller = this.application.getControllerForElementAndIdentifier(\n this.customerSelectTarget,\n 'partner--select',\n ) as PartnerSelectController\n controller.select(partner)\n }\n\n showSupportedSendMethods(partner) {\n if (!this.hasSendMethodFieldTarget) {\n return\n }\n\n this.showSendMethodField()\n\n let sendMethodField = this.sendMethodFieldTarget.querySelector('select')\n Array.from(sendMethodField.options).forEach((option) => {\n if (partner.send_methods.includes(option.value)) {\n option.classList.remove('d-none')\n } else {\n option.classList.add('d-none')\n }\n })\n }\n\n handlePartnerChange(event) {\n let { partner } = event\n\n this.showSupportedSendMethods(partner)\n this.displayVatWarning()\n }\n\n getDomestic() {\n if (this.customerSelectTarget.dataset['domestic'] === 'true') {\n return true\n } else if (this.customerSelectTarget.dataset['domestic'] === 'false') {\n return false\n } else {\n return undefined\n }\n }\n\n handleCurrencyChange() {\n this.updateCustomerInvoice()\n }\n\n async updateCustomerInvoice() {\n const data = new FormData(this.baseFormTarget)\n\n let response = await rails_fetch(this.baseFormTarget.action, {\n method: 'PATCH',\n body: data,\n })\n\n if (response.status != 200) {\n let data = await response.json()\n new JsFormError(data.model_name, data).updateForm()\n }\n }\n\n displayVatWarning() {\n if (!this.hasVatSelectTarget || !this.hasVatWarningTarget) {\n return\n }\n\n let domestic = this.getDomestic()\n\n this.hideVatWarning()\n\n if (domestic == undefined) {\n return\n }\n\n Array.from(this.vatSelectTargets).forEach((vatSelect) => {\n const selectedOption = vatSelect.selectedOptions[0]\n\n if (domestic) {\n if (selectedOption.getAttribute('international') === 'true') {\n this.showVatWarning(i18n.t('customer_invoice.domestic_customer_export_vat'))\n return\n }\n } else {\n if (selectedOption.getAttribute('international') === 'false') {\n this.showVatWarning(i18n.t('customer_invoice.foreign_customer_domestic_vat'))\n return\n }\n }\n })\n }\n\n showVatWarning(message) {\n this.vatWarningTarget.classList.remove('d-none')\n this.vatWarningTarget.innerHTML = message\n }\n\n hideVatWarning() {\n this.vatWarningTarget.classList.add('d-none')\n }\n}\n\nexport default EditController\n","import { Controller } from '@hotwired/stimulus'\nimport { Tab } from 'bootstrap'\n\nexport default class extends Controller {\n connect() {\n let activeTab = localStorage.getItem('activeTab')\n\n if (activeTab) {\n Tab.getOrCreateInstance(document.querySelector('a[href=\"' + activeTab + '\"]')).show()\n }\n }\n\n tabListener(element) {\n localStorage.setItem('activeTab', element.target.getAttribute('href'))\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['projectId', 'projectHeader', 'projectSelector']\n\n declare projectIdTarget: HTMLInputElement\n declare projectHeaderTarget: HTMLElement\n declare projectSelectorTarget: HTMLInputElement\n\n handleProjectChange(event) {\n this.projectIdTarget.value = event.target.value\n if (event.target.value === '') {\n this.projectHeaderTarget.innerHTML = i18n.t('customer_invoice.unassign_project')\n } else {\n this.projectHeaderTarget.innerHTML = i18n.t('customer_invoice.assign_project', {\n project_name: event.target.selectedOptions[0].text,\n })\n }\n Modal.getOrCreateInstance(document.querySelector('#customer-invoice-project-modal')).show()\n }\n\n cancelProjectChange() {\n let selectedValue = this.projectSelectorTarget.dataset.value\n\n if (selectedValue === undefined) {\n this.projectSelectorTarget.value = ''\n } else {\n this.projectSelectorTarget.value = selectedValue\n }\n this.projectSelectorTarget.dispatchEvent(new Event('change'))\n\n Modal.getOrCreateInstance(document.querySelector('#customer-invoice-project-modal')).hide()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Rails from '@rails/ujs'\nimport { polyFillEventSubmitter } from '../../polyfills'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static targets = [\n 'customerEmail',\n 'overWriteEmailCheckBox',\n 'attachmentField',\n 'attachmentItem',\n 'attachmentsContainer',\n ]\n declare customerEmailTarget: HTMLInputElement\n declare overWriteEmailCheckBoxTarget: HTMLElement\n declare attachmentFieldTarget: HTMLInputElement\n declare attachmentItemTargets: HTMLElement[]\n declare attachmentsContainerTarget: HTMLElement\n declare hasAttachmentFieldTarget: boolean\n\n attachedFiles: File[]\n existingAttachments: string[]\n originalValue: string\n fileNames: string[]\n\n connect() {\n // Needed for Safari\n polyFillEventSubmitter()\n\n this.originalValue = this.customerEmailTarget.value\n\n if (this.hasAttachmentFieldTarget) {\n this.attachedFiles = []\n this.fileNames = []\n this.existingAttachments = this.getExistingAttachments()\n\n this.attachmentFieldTarget.addEventListener('change', this.listSelectedFiles.bind(this))\n this.attachmentFieldTarget.form.addEventListener('submit', this.handleSubmission.bind(this))\n for (let itemTarget of this.attachmentItemTargets) {\n itemTarget.querySelector('.btn-close').addEventListener('click', this.removeFile.bind(this))\n }\n }\n this.renderCheckBox()\n }\n\n renderCheckBox() {\n const $div = $(this.overWriteEmailCheckBoxTarget).closest('div')\n if (this.customerEmailTarget.value === this.originalValue) {\n $div.hide()\n } else {\n $div.show()\n }\n }\n\n listSelectedFiles() {\n let selectedFiles = Array.from(this.attachmentFieldTarget.files)\n selectedFiles.forEach((el: File, i) => {\n if (this.fileNames.includes(el.name)) {\n return\n }\n this.attachmentsContainerTarget.appendChild(this.addAttachmentItemRow(el))\n })\n }\n\n handleSubmission(event) {\n // Since we are filtering and adding files directly as FormData,\n // Make sure we exclude the files currently attached to the hidden file input as well.\n this.attachmentFieldTarget.removeAttribute('name')\n\n const attribute_name = document.getElementById('new_offer_form_object_send_form_object')\n ? 'offer_form_object_send_form_object'\n : 'customer_invoice_form_object_send_form_object'\n let form = document.getElementById(`new_${attribute_name}`) as HTMLFormElement\n\n if (form === null || (!this.attachedFiles.length && !this.existingAttachments.length)) {\n return\n }\n event.preventDefault()\n let send_method = event.submitter.value\n let fileFormData = new FormData(form)\n for (let attachedFile of this.attachedFiles) {\n fileFormData.append(`${attribute_name}[email_attachments][]`, attachedFile)\n }\n if (this.existingAttachments.length) {\n fileFormData.append(\n `${attribute_name}[existing_attachments][]`,\n // @ts-ignore\n this.existingAttachments,\n )\n }\n fileFormData.append('extra_attachments', 'true')\n fileFormData.append('send_method', send_method)\n\n if (\n send_method === 'ehf' &&\n this.attachedFiles.length > 0 &&\n !$('#customer-invoice-new-send-ehf-modal').hasClass('show')\n ) {\n document.querySelector('#customer-invoice-new-send-ehf-modal').addEventListener('hidden.bs.modal', function () {\n $(Rails.formEnableSelector).each(function () {\n Rails.enableElement(this)\n })\n })\n Modal.getOrCreateInstance(document.querySelector('#customer-invoice-new-send-ehf-modal')).show()\n return\n }\n\n let xhr = new XMLHttpRequest()\n xhr.open('POST', this.attachmentFieldTarget.form.action, true)\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n // This part basically does the same as remote: true. We do it this way to be able to send a multipart form\n // And redirect correctly after.\n let script = document.createElement('script')\n script.text = xhr.responseText\n document.head.appendChild(script).parentNode.removeChild(script)\n } else {\n ;(document.getElementById(`new_${attribute_name}`).parentNode as HTMLElement).innerHTML = xhr.responseText\n }\n }\n }\n xhr.send(fileFormData)\n }\n\n removeFile(e) {\n let el = e.target.closest('.removable-list-item')\n if ('attachmentId' in el.dataset) {\n this.existingAttachments.splice(this.existingAttachments.indexOf(el.dataset.attachmentId), 1)\n } else {\n this.attachedFiles.splice(el.dataset.filesIndex, 1)\n }\n this.fileNames.splice(this.fileNames.indexOf(el.dataset.attachmentFilename), 1)\n el.parentNode.removeChild(el)\n }\n\n getExistingAttachments(): string[] {\n let existingEmailAttachments: string[] = []\n for (let item of this.attachmentItemTargets) {\n existingEmailAttachments.push(item.dataset.attachmentId)\n }\n return existingEmailAttachments\n }\n\n addAttachmentItemRow(file: File) {\n const filename = file.name\n\n let node = document.createElement('div')\n node.id = `attachment_item_${filename}`\n node.classList.add('removable-list-item')\n node.dataset.target = 'customer-invoices--send-email.attachmentItem'\n node.dataset.filesIndex = String(this.attachedFiles.length)\n node.dataset.attachmentFilename = filename\n\n this.fileNames.push(filename)\n this.attachedFiles.push(file)\n\n node.innerHTML = `${filename}\n `\n node.querySelector('.btn-close').addEventListener('click', this.removeFile.bind(this))\n return node\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['customerAddressZip', 'customerAddressCity', 'customerAddressStreetOne', 'overWriteAddressCheckBox']\n\n declare customerAddressZipTarget: HTMLInputElement\n declare customerAddressCityTarget: HTMLInputElement\n declare customerAddressStreetOneTarget: HTMLInputElement\n declare overWriteAddressCheckBoxTarget: HTMLElement\n\n originalValueZip: string\n originalValueCity: string\n originalValueStreetOne: string\n\n connect() {\n this.originalValueZip = this.customerAddressZipTarget.value\n this.originalValueCity = this.customerAddressCityTarget.value\n this.originalValueStreetOne = this.customerAddressStreetOneTarget.value\n this.renderCheckBox()\n }\n\n renderCheckBox() {\n const $div = $(this.overWriteAddressCheckBoxTarget).closest('div')\n if (\n this.customerAddressZipTarget.value === this.originalValueZip &&\n this.customerAddressCityTarget.value === this.originalValueCity &&\n this.customerAddressStreetOneTarget.value === this.originalValueStreetOne\n ) {\n $div.hide()\n } else {\n $div.show()\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['customerPhoneNumber', 'overWritePhoneNumberCheckBox']\n\n declare customerPhoneNumberTarget: HTMLInputElement\n declare overWritePhoneNumberCheckBoxTarget: HTMLElement\n\n originalValue: string\n\n connect() {\n this.originalValue = this.customerPhoneNumberTarget.value\n this.renderCheckBox()\n }\n\n renderCheckBox() {\n const $div = $(this.overWritePhoneNumberCheckBoxTarget).closest('div')\n if (this.customerPhoneNumberTarget.value === this.originalValue) {\n $div.hide()\n } else {\n $div.show()\n }\n }\n\n checkVipps() {\n $('#vipps-div').remove()\n let $input = $(this.customerPhoneNumberTarget)\n if (this.customerPhoneNumberTarget.value.length >= 8) {\n $input.after(`${i18n.t('vipps.checking')}`)\n let $div = $('#vipps-div')\n $.ajax({\n type: 'GET',\n url: '/vipps/check_number',\n data: { msisdn: this.customerPhoneNumberTarget.value },\n success: function () {\n $input.removeClass('is-invalid')\n $div.remove()\n },\n error: function () {\n $input.addClass('is-invalid')\n $div.text(i18n.t('vipps.failed'))\n },\n })\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect(): void {\n if (typeof (window as any).Luca.Controllers['CustomerInvoices'] === 'undefined') {\n ;(window as any).Luca.Controllers['CustomerInvoices'] = {}\n }\n ;(window as any).Luca.Controllers['CustomerInvoices'].SettledCardController = this\n }\n\n update(newSettledCard: string) {\n this.element.innerHTML = newSettledCard\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['showGetStartedLinksButton', 'hideGetStartedLinksButton', 'punchLine', 'getStartedCard']\n\n declare showGetStartedLinksButtonTarget: HTMLButtonElement\n declare hideGetStartedLinksButtonTarget: HTMLButtonElement\n declare punchLineTarget: HTMLElement\n declare getStartedCardTarget: HTMLElement\n declare hasGetStartedCardTarget: boolean\n declare hasShowGetStartedLinksButtonTarget: boolean\n declare hasHideGetStartedLinksButtonTarget: boolean\n declare hasPunchLineTarget: boolean\n\n connect() {\n if (localStorage.getItem('getStartedLinks') === null) {\n this.showGetStartedLinks()\n }\n const params = new URL((window as any).location).searchParams\n\n if (!this.hasGetStartedCardTarget) {\n this.hideGetStartedSection()\n }\n }\n\n hideGetStartedSection() {\n this.hideGetStartedLinks()\n if (this.hasHideGetStartedLinksButtonTarget) {\n this.hideGetStartedLinksButtonTarget.classList.add('d-none')\n }\n }\n\n showGetStartedLinks() {\n localStorage.removeItem('getStartedLinks')\n if (this.hasShowGetStartedLinksButtonTarget) {\n this.showGetStartedLinksButtonTarget.classList.remove('d-none')\n }\n if (this.hasHideGetStartedLinksButtonTarget) {\n this.hideGetStartedLinksButtonTarget.classList.add('d-none')\n }\n document.getElementById('get-started-links').classList.remove('d-none')\n if (this.hasPunchLineTarget) {\n this.punchLineTarget.classList.remove('d-none')\n }\n }\n\n hideGetStartedLinks() {\n localStorage.setItem('getStartedLinks', 'hidden')\n if (this.hasShowGetStartedLinksButtonTarget) {\n this.showGetStartedLinksButtonTarget.classList.add('d-none')\n }\n if (this.hasHideGetStartedLinksButtonTarget) {\n this.hideGetStartedLinksButtonTarget.classList.remove('d-none')\n }\n document.getElementById('get-started-links').classList.add('d-none')\n if (this.hasPunchLineTarget) {\n this.punchLineTarget.classList.add('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['destination']\n\n declare destinationTargets: Array\n\n update(event) {\n let source = event.target\n this.findTargetElements(source.dataset.dataBindingName).forEach((target) => {\n let property = target.dataset.dataBindingProperty\n target[property] = this.valueFromElement(source)\n })\n }\n\n findTargetElements(name): Array {\n return this.destinationTargets.filter((target) => target.dataset.dataBindingName == name)\n }\n\n valueFromElement(source) {\n switch (source.nodeName) {\n case 'SELECT':\n return source.selectedOptions[0][source.dataset.dataBindingProperty || 'text']\n default:\n return source[source.dataset.dataBindingProperty || 'value']\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['deleteName', 'confirmButton']\n\n declare deleteNameTarget: HTMLInputElement\n declare confirmButtonTarget: HTMLElement\n\n checkCompanyName() {\n if (this.deleteNameTarget.value === this.deleteNameTarget.dataset['name']) {\n this.confirmButtonTarget.classList.remove('disabled')\n } else {\n this.confirmButtonTarget.classList.add('disabled')\n }\n }\n\n handleConfirmClick() {\n this.confirmButtonTarget.classList.add('disabled')\n }\n}\n","import ConfirmationController from './confirmation_controller'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends ConfirmationController {\n initialize() {\n super.initialize()\n\n let elem = this.element as HTMLElement\n elem.dataset.title = elem.dataset.title ?? i18n.t('navigation.delete_confirmation')\n elem.dataset.confirmationYes = elem.dataset.confirmationYes ?? i18n.t('navigation.delete')\n elem.dataset.confirmationNo = elem.dataset.confirmationNo ?? i18n.t('navigation.cancel')\n this.confirmBtn.classList.remove('btn-primary')\n this.confirmBtn.classList.add('btn-danger')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\n/*\n This controller enables/disables the a target element based on targets value.\n */\nexport default class extends Controller {\n static targets = ['source', 'target']\n\n declare sourceTargets: [HTMLInputElement]\n declare targetTarget: HTMLFormElement\n declare hasSourceTarget: Boolean\n declare hasTargetTarget: Boolean\n\n connect() {\n this.toggle()\n }\n\n toggle() {\n if (!this.hasSourceTarget || !this.hasTargetTarget) {\n console.error('Both source and target must be defined.')\n return\n }\n this.targetTarget.disabled = this.isDisabled()\n }\n\n isDisabled(): Boolean {\n let allSources = this.sourceTargets.map((source) => {\n if (source.type == 'checkbox') {\n return !source.checked\n } else {\n console.error(`Unknown element type: ${source.type}. Please add the evaluation in 'isDisabled'`)\n return true\n }\n })\n return !allSources.every((v) => v === false)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../util/rails_fetch'\n\nexport default class extends Controller {\n static values = { url: String }\n\n declare urlValue: string\n\n connect() {\n this.element.querySelectorAll('a').forEach((linkElement) => {\n linkElement.addEventListener('click', (event) => {\n event.preventDefault()\n this.dismiss(event)\n })\n })\n }\n\n async dismiss(event) {\n rails_fetch(this.urlValue, {\n method: 'POST',\n }).then(() => {\n this.element.parentNode.removeChild(this.element)\n window.location.href = event.target.href\n })\n }\n}\n","class t extends Date{static parseDateTime(e,i=\"YYYY-MM-DD\",n=\"en-US\"){if(!e)return new Date((new Date).setHours(0,0,0,0));if(e instanceof t)return e.toJSDate();if(e instanceof Date)return e;if(/^-?\\d{10,}$/.test(String(e)))return new Date(Number(e));if(\"string\"==typeof e){const s=[];let o=null;for(;null!=(o=t.regex.exec(i));)\"\\\\\"!==o[1]&&s.push(o);if(s.length){const i={year:null,month:null,shortMonth:null,longMonth:null,day:null,hour:0,minute:0,second:0,ampm:null,value:\"\"};s[0].index>0&&(i.value+=\".*?\");for(const[e,o]of Object.entries(s)){const s=Number(e),{group:a,pattern:r}=t.formatPatterns(o[0],n);i[a]=s+1,i.value+=r,i.value+=\".*?\"}const o=new RegExp(`^${i.value}$`);if(o.test(e)){const s=o.exec(e),a=Number(s[i.year]);let r=null;i.month?r=Number(s[i.month])-1:i.shortMonth?r=t.shortMonths(n).indexOf(s[i.shortMonth]):i.longMonth&&(r=t.longMonths(n).indexOf(s[i.longMonth]));const c=Number(s[i.day])||1,l=Number(s[i.hour]);let h=Number.isNaN(l)?0:l;const d=Number(s[i.minute]),p=Number.isNaN(d)?0:d,u=Number(s[i.second]),g=Number.isNaN(u)?0:u,m=s[i.ampm];return m&&\"PM\"===m&&(h+=12,24===h&&(h=0)),new Date(a,r,c,h,p,g,0)}}}return new Date((new Date).setHours(0,0,0,0))}static regex=/(\\\\)?(Y{2,4}|M{1,4}|D{1,2}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|A|a)/g;static MONTH_JS=[0,1,2,3,4,5,6,7,8,9,10,11];static shortMonths(e){return t.MONTH_JS.map((t=>new Date(2019,t).toLocaleString(e,{month:\"short\"})))}static longMonths(e){return t.MONTH_JS.map((t=>new Date(2019,t).toLocaleString(e,{month:\"long\"})))}static formatPatterns(e,i){switch(e){case\"YY\":case\"YYYY\":return{group:\"year\",pattern:`(\\\\d{${e.length}})`};case\"M\":return{group:\"month\",pattern:\"(\\\\d{1,2})\"};case\"MM\":return{group:\"month\",pattern:\"(\\\\d{2})\"};case\"MMM\":return{group:\"shortMonth\",pattern:`(${t.shortMonths(i).join(\"|\")})`};case\"MMMM\":return{group:\"longMonth\",pattern:`(${t.longMonths(i).join(\"|\")})`};case\"D\":return{group:\"day\",pattern:\"(\\\\d{1,2})\"};case\"DD\":return{group:\"day\",pattern:\"(\\\\d{2})\"};case\"h\":case\"H\":return{group:\"hour\",pattern:\"(\\\\d{1,2})\"};case\"hh\":case\"HH\":return{group:\"hour\",pattern:\"(\\\\d{2})\"};case\"m\":return{group:\"minute\",pattern:\"(\\\\d{1,2})\"};case\"mm\":return{group:\"minute\",pattern:\"(\\\\d{2})\"};case\"s\":return{group:\"second\",pattern:\"(\\\\d{1,2})\"};case\"ss\":return{group:\"second\",pattern:\"(\\\\d{2})\"};case\"a\":case\"A\":return{group:\"ampm\",pattern:\"(AM|PM|am|pm)\"}}}lang;constructor(e=null,i=\"YYYY-MM-DD\",n=\"en-US\"){super(t.parseDateTime(e,i,n)),this.lang=n}getWeek(t){const e=new Date(this.midnight_ts(this)),i=(this.getDay()+(7-t))%7;e.setDate(e.getDate()-i);const n=e.getTime();return e.setMonth(0,1),e.getDay()!==t&&e.setMonth(0,1+(4-e.getDay()+7)%7),1+Math.ceil((n-e.getTime())/6048e5)}clone(){return new t(this)}toJSDate(){return new Date(this)}inArray(t,e=\"[]\"){return t.some((t=>t instanceof Array?this.isBetween(t[0],t[1],e):this.isSame(t,\"day\")))}isBetween(t,e,i=\"()\"){switch(i){default:case\"()\":return this.midnight_ts(this)>this.midnight_ts(t)&&this.midnight_ts(this)=this.midnight_ts(t)&&this.midnight_ts(this)this.midnight_ts(t)&&this.midnight_ts(this)<=this.midnight_ts(e);case\"[]\":return this.midnight_ts()>=this.midnight_ts(t)&&this.midnight_ts()<=this.midnight_ts(e)}}isBefore(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>new Date(this.getFullYear(),this.getMonth(),1).getTime();case\"year\":case\"years\":return t.getFullYear()>this.getFullYear()}throw new Error(\"isBefore: Invalid unit!\")}isSameOrBefore(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>=new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>=new Date(this.getFullYear(),this.getMonth(),1).getTime()}throw new Error(\"isSameOrBefore: Invalid unit!\")}isAfter(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>new Date(t.getFullYear(),t.getMonth(),1).getTime();case\"year\":case\"years\":return this.getFullYear()>t.getFullYear()}throw new Error(\"isAfter: Invalid unit!\")}isSameOrAfter(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>=new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSameOrAfter: Invalid unit!\")}isSame(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()===new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()===new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSame: Invalid unit!\")}add(t,e=\"days\"){switch(e){case\"day\":case\"days\":this.setDate(this.getDate()+t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()+t)}return this}subtract(t,e=\"days\"){switch(e){case\"day\":case\"days\":this.setDate(this.getDate()-t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()-t)}return this}diff(t,e=\"days\"){switch(e){default:case\"day\":case\"days\":return Math.round((this.midnight_ts()-this.midnight_ts(t))/864e5);case\"month\":case\"months\":let e=12*(t.getFullYear()-this.getFullYear());return e-=t.getMonth(),e+=this.getMonth(),e}}format(e,i=\"en-US\"){let n=\"\";const s=[];let o=null;for(;null!=(o=t.regex.exec(e));)\"\\\\\"!==o[1]&&s.push(o);if(s.length){s[0].index>0&&(n+=e.substring(0,s[0].index));for(const[t,o]of Object.entries(s)){const a=Number(t);n+=this.formatTokens(o[0],i),s[a+1]&&(n+=e.substring(o.index+o[0].length,s[a+1].index)),a===s.length-1&&(n+=e.substring(o.index+o[0].length))}}return n.replace(/\\\\/g,\"\")}midnight_ts(t){return t?new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0).getTime():new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0,0).getTime()}formatTokens(e,i){switch(e){case\"YY\":return String(this.getFullYear()).slice(-2);case\"YYYY\":return String(this.getFullYear());case\"M\":return String(this.getMonth()+1);case\"MM\":return`0${this.getMonth()+1}`.slice(-2);case\"MMM\":return t.shortMonths(i)[this.getMonth()];case\"MMMM\":return t.longMonths(i)[this.getMonth()];case\"D\":return String(this.getDate());case\"DD\":return`0${this.getDate()}`.slice(-2);case\"H\":return String(this.getHours());case\"HH\":return`0${this.getHours()}`.slice(-2);case\"h\":return String(this.getHours()%12||12);case\"hh\":return`0${this.getHours()%12||12}`.slice(-2);case\"m\":return String(this.getMinutes());case\"mm\":return`0${this.getMinutes()}`.slice(-2);case\"s\":return String(this.getSeconds());case\"ss\":return`0${this.getSeconds()}`.slice(-2);case\"a\":return this.getHours()<12||24===this.getHours()?\"am\":\"pm\";case\"A\":return this.getHours()<12||24===this.getHours()?\"AM\":\"PM\";default:return\"\"}}}class e{picker;constructor(t){this.picker=t}render(e,i){e||(e=new t),e.setDate(1),e.setHours(0,0,0,0),\"function\"==typeof this[`get${i}View`]&&this[`get${i}View`](e)}getContainerView(t){this.picker.ui.container.innerHTML=\"\",this.picker.options.header&&this.picker.trigger(\"render\",{date:t.clone(),view:\"Header\"}),this.picker.trigger(\"render\",{date:t.clone(),view:\"Main\"}),this.picker.options.autoApply||this.picker.trigger(\"render\",{date:t.clone(),view:\"Footer\"})}getHeaderView(t){const e=document.createElement(\"header\");this.picker.options.header instanceof HTMLElement&&e.appendChild(this.picker.options.header),\"string\"==typeof this.picker.options.header&&(e.innerHTML=this.picker.options.header),this.picker.ui.container.appendChild(e),this.picker.trigger(\"view\",{target:e,date:t.clone(),view:\"Header\"})}getMainView(t){const e=document.createElement(\"main\");this.picker.ui.container.appendChild(e);const i=document.createElement(\"div\");i.className=`calendars grid-${this.picker.options.grid}`;for(let e=0;e${t.toLocaleString(this.picker.options.lang,{month:\"long\"})} ${t.format(\"YYYY\")}`,e.appendChild(i);const n=document.createElement(\"button\");n.className=\"previous-button unit\",n.innerHTML=this.picker.options.locale.previousMonth,e.appendChild(n);const s=document.createElement(\"button\");return s.className=\"next-button unit\",s.innerHTML=this.picker.options.locale.nextMonth,e.appendChild(s),e}getCalendarDayNamesView(){const t=document.createElement(\"div\");t.className=\"daynames-row\";for(let e=1;e<=7;e++){const i=3+this.picker.options.firstDay+e,n=document.createElement(\"div\");n.className=\"dayname\",n.innerHTML=new Date(1970,0,i,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:\"short\"}),n.title=new Date(1970,0,i,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:\"long\"}),t.appendChild(n),this.picker.trigger(\"view\",{dayIdx:i,view:\"CalendarDayName\",target:n})}return t}getCalendarDaysView(t){const e=document.createElement(\"div\");e.className=\"days-grid\";const i=this.calcOffsetDays(t,this.picker.options.firstDay),n=32-new Date(t.getFullYear(),t.getMonth(),32).getDate();for(let t=0;t{\"function\"==typeof e?t.push(new e):\"string\"==typeof e&&\"undefined\"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,e)?t.push(new easepick[e]):console.warn(`easepick: ${e} not found.`)})),t.sort(((t,e)=>t.priority>e.priority?-1:t.prioritye.dependencies.length?1:t.dependencies.length{t.attach(this.picker),this.instances[t.getName()]=t}))}getInstance(t){return this.instances[t]}addInstance(t){if(Object.prototype.hasOwnProperty.call(this.instances,t))console.warn(`easepick: ${t} already added.`);else{if(\"undefined\"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,t)){const e=new easepick[t];return e.attach(this.picker),this.instances[e.getName()]=e,e}if(\"undefined\"!==this.getPluginFn(t)){const e=new(this.getPluginFn(t));return e.attach(this.picker),this.instances[e.getName()]=e,e}console.warn(`easepick: ${t} not found.`)}return null}removeInstance(t){return t in this.instances&&this.instances[t].detach(),delete this.instances[t]}reloadInstance(t){return this.removeInstance(t),this.addInstance(t)}getPluginFn(t){return[...this.picker.options.plugins].filter((e=>\"function\"==typeof e&&(new e).getName()===t)).shift()}}class n{Calendar=new e(this);PluginManager=new i(this);calendars=[];datePicked=[];cssLoaded=0;binds={hidePicker:this.hidePicker.bind(this),show:this.show.bind(this)};options={doc:document,css:[],element:null,firstDay:1,grid:1,calendars:1,lang:\"en-US\",date:null,format:\"YYYY-MM-DD\",readonly:!0,autoApply:!0,header:!1,inline:!1,scrollToDate:!0,locale:{nextMonth:'',previousMonth:'',cancel:\"Cancel\",apply:\"Apply\"},documentClick:this.binds.hidePicker,plugins:[]};ui={container:null,shadowRoot:null,wrapper:null};version=\"1.2.1\";constructor(t){const e={...this.options.locale,...t.locale};this.options={...this.options,...t},this.options.locale=e,this.handleOptions(),this.ui.wrapper=document.createElement(\"span\"),this.ui.wrapper.style.display=\"none\",this.ui.wrapper.style.position=\"absolute\",this.ui.wrapper.style.pointerEvents=\"none\",this.ui.wrapper.className=\"easepick-wrapper\",this.ui.wrapper.attachShadow({mode:\"open\"}),this.ui.shadowRoot=this.ui.wrapper.shadowRoot,this.ui.container=document.createElement(\"div\"),this.ui.container.className=\"container\",this.options.zIndex&&(this.ui.container.style.zIndex=String(this.options.zIndex)),this.options.inline&&(this.ui.wrapper.style.position=\"relative\",this.ui.container.classList.add(\"inline\")),this.ui.shadowRoot.appendChild(this.ui.container),this.options.element.after(this.ui.wrapper),this.handleCSS(),this.options.element.addEventListener(\"click\",this.binds.show),this.on(\"view\",this.onView.bind(this)),this.on(\"render\",this.onRender.bind(this)),this.PluginManager.initialize(),this.parseValues(),\"function\"==typeof this.options.setup&&this.options.setup(this),this.on(\"click\",this.onClick.bind(this));const i=this.options.scrollToDate?this.getDate():null;this.renderAll(i)}on(t,e,i={}){this.ui.container.addEventListener(t,e,i)}off(t,e,i={}){this.ui.container.removeEventListener(t,e,i)}trigger(t,e={}){return this.ui.container.dispatchEvent(new CustomEvent(t,{detail:e}))}destroy(){this.options.element.removeEventListener(\"click\",this.binds.show),\"function\"==typeof this.options.documentClick&&document.removeEventListener(\"click\",this.options.documentClick,!0),Object.keys(this.PluginManager.instances).forEach((t=>{this.PluginManager.removeInstance(t)})),this.ui.wrapper.remove()}onRender(t){const{view:e,date:i}=t.detail;this.Calendar.render(i,e)}onView(t){const{view:e,target:i}=t.detail;\"Footer\"===e&&this.datePicked.length&&(i.querySelector(\".apply-button\").disabled=!1)}onClickHeaderButton(t){this.isCalendarHeaderButton(t)&&(t.classList.contains(\"next-button\")?this.calendars[0].add(1,\"month\"):this.calendars[0].subtract(1,\"month\"),this.renderAll(this.calendars[0]))}onClickCalendarDay(e){if(this.isCalendarDay(e)){const i=new t(e.dataset.time);this.options.autoApply?(this.setDate(i),this.trigger(\"select\",{date:this.getDate()}),this.hide()):(this.datePicked[0]=i,this.trigger(\"preselect\",{date:this.getDate()}),this.renderAll())}}onClickApplyButton(t){if(this.isApplyButton(t)){if(this.datePicked[0]instanceof Date){const t=this.datePicked[0].clone();this.setDate(t)}this.hide(),this.trigger(\"select\",{date:this.getDate()})}}onClickCancelButton(t){this.isCancelButton(t)&&this.hide()}onClick(t){const e=t.target;if(e instanceof HTMLElement){const t=e.closest(\".unit\");if(!(t instanceof HTMLElement))return;this.onClickHeaderButton(t),this.onClickCalendarDay(t),this.onClickApplyButton(t),this.onClickCancelButton(t)}}isShown(){return this.ui.container.classList.contains(\"inline\")||this.ui.container.classList.contains(\"show\")}show(t){if(this.isShown())return;const e=t&&\"target\"in t?t.target:this.options.element,{top:i,left:n}=this.adjustPosition(e);this.ui.container.style.top=`${i}px`,this.ui.container.style.left=`${n}px`,this.ui.container.classList.add(\"show\"),this.trigger(\"show\",{target:e})}hide(){this.ui.container.classList.remove(\"show\"),this.datePicked.length=0,this.renderAll(),this.trigger(\"hide\")}setDate(e){const i=new t(e,this.options.format);this.options.date=i.clone(),this.updateValues(),this.calendars.length&&this.renderAll()}getDate(){return this.options.date instanceof t?this.options.date.clone():null}parseValues(){this.options.date?this.setDate(this.options.date):this.options.element instanceof HTMLInputElement&&this.options.element.value.length&&this.setDate(this.options.element.value),this.options.date instanceof Date||(this.options.date=null)}updateValues(){const t=this.getDate(),e=t instanceof Date?t.format(this.options.format,this.options.lang):\"\",i=this.options.element;i instanceof HTMLInputElement?i.value=e:i instanceof HTMLElement&&(i.innerText=e)}hidePicker(t){let e=t.target,i=null;e.shadowRoot&&(e=t.composedPath()[0],i=e.getRootNode().host),this.isShown()&&i!==this.ui.wrapper&&e!==this.options.element&&this.hide()}renderAll(t){this.trigger(\"render\",{view:\"Container\",date:(t||this.calendars[0]).clone()})}isCalendarHeaderButton(t){return[\"previous-button\",\"next-button\"].some((e=>t.classList.contains(e)))}isCalendarDay(t){return t.classList.contains(\"day\")}isApplyButton(t){return t.classList.contains(\"apply-button\")}isCancelButton(t){return t.classList.contains(\"cancel-button\")}gotoDate(e){const i=new t(e,this.options.format);i.setDate(1),this.calendars[0]=i.clone(),this.renderAll()}clear(){this.options.date=null,this.datePicked.length=0,this.updateValues(),this.renderAll(),this.trigger(\"clear\")}handleOptions(){this.options.element instanceof HTMLElement||(this.options.element=this.options.doc.querySelector(this.options.element)),\"function\"==typeof this.options.documentClick&&document.addEventListener(\"click\",this.options.documentClick,!0),this.options.element instanceof HTMLInputElement&&(this.options.element.readOnly=this.options.readonly),this.options.date?this.calendars[0]=new t(this.options.date,this.options.format):this.calendars[0]=new t}handleCSS(){if(Array.isArray(this.options.css))this.options.css.forEach((t=>{const e=document.createElement(\"link\");e.href=t,e.rel=\"stylesheet\";const i=()=>{this.cssLoaded++,this.cssLoaded===this.options.css.length&&(this.ui.wrapper.style.display=\"\")};e.addEventListener(\"load\",i),e.addEventListener(\"error\",i),this.ui.shadowRoot.append(e)}));else if(\"string\"==typeof this.options.css){const t=document.createElement(\"style\"),e=document.createTextNode(this.options.css);t.appendChild(e),this.ui.shadowRoot.append(t),this.ui.wrapper.style.display=\"\"}else\"function\"==typeof this.options.css&&(this.options.css.call(this,this),this.ui.wrapper.style.display=\"\")}adjustPosition(t){const e=t.getBoundingClientRect(),i=this.ui.wrapper.getBoundingClientRect();this.ui.container.classList.add(\"calc\");const n=this.ui.container.getBoundingClientRect();this.ui.container.classList.remove(\"calc\");let s=e.bottom-i.bottom,o=e.left-i.left;return\"undefined\"!=typeof window&&(window.innerHeight=0&&(s=e.top-i.top-n.height),window.innerWidth=0&&(o=e.right-i.right-n.width)),{left:o,top:s}}}var s=Object.freeze({__proto__:null,Core:n,create:n});class o{picker;options;priority=0;dependencies=[];attach(t){const e=this.getName(),i={...this.options};this.options={...this.options,...t.options[e]||{}};for(const n of Object.keys(i))if(null!==i[n]&&\"object\"==typeof i[n]&&Object.keys(i[n]).length&&e in t.options&&n in t.options[e]){const s={...t.options[e][n]};null!==s&&\"object\"==typeof s&&Object.keys(s).length&&Object.keys(s).every((t=>Object.keys(i[n]).includes(t)))&&(this.options[n]={...i[n],...s})}if(this.picker=t,this.dependenciesNotFound()){const t=this.dependencies.filter((t=>!this.pluginsAsStringArray().includes(t)));return void console.warn(`${this.getName()}: required dependencies (${t.join(\", \")}).`)}const n=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.add(n),this.onAttach()}detach(){const t=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.remove(t),\"function\"==typeof this.onDetach&&this.onDetach()}dependenciesNotFound(){return this.dependencies.length&&!this.dependencies.every((t=>this.pluginsAsStringArray().includes(t)))}pluginsAsStringArray(){return this.picker.options.plugins.map((t=>\"function\"==typeof t?(new t).getName():t))}camelCaseToKebab(t){return t.replace(/([a-zA-Z])(?=[A-Z])/g,\"$1-\").toLowerCase()}}class a extends o{priority=1;binds={onView:this.onView.bind(this)};options={minDate:null,maxDate:null,minDays:null,maxDays:null,selectForward:null,selectBackward:null,presets:!0,inseparable:!1,filter:null};getName(){return\"LockPlugin\"}onAttach(){if(this.options.minDate&&(this.options.minDate=new t(this.options.minDate,this.picker.options.format,this.picker.options.lang)),this.options.maxDate&&(this.options.maxDate=new t(this.options.maxDate,this.picker.options.format,this.picker.options.lang),this.options.maxDate instanceof t&&this.picker.options.calendars>1&&this.picker.calendars[0].isSame(this.options.maxDate,\"month\"))){const t=this.picker.calendars[0].clone().subtract(1,\"month\");this.picker.gotoDate(t)}if((this.options.minDays||this.options.maxDays||this.options.selectForward||this.options.selectBackward)&&!this.picker.options.plugins.includes(\"RangePlugin\")){const t=[\"minDays\",\"maxDays\",\"selectForward\",\"selectBackward\"];console.warn(`${this.getName()}: options ${t.join(\", \")} required RangePlugin.`)}this.picker.on(\"view\",this.binds.onView)}onDetach(){this.picker.off(\"view\",this.binds.onView)}onView(e){const{view:i,target:n,date:s}=e.detail;if(\"CalendarHeader\"===i&&(this.options.minDate instanceof t&&s.isSameOrBefore(this.options.minDate,\"month\")&&n.classList.add(\"no-previous-month\"),this.options.maxDate instanceof t&&s.isSameOrAfter(this.options.maxDate,\"month\")&&n.classList.add(\"no-next-month\")),\"CalendarDay\"===i){const t=this.picker.datePicked.length?this.picker.datePicked[0]:null;if(this.testFilter(s))return void n.classList.add(\"locked\");if(this.options.inseparable){if(this.options.minDays){const t=s.clone().subtract(this.options.minDays-1,\"day\"),e=s.clone().add(this.options.minDays-1,\"day\");let i=!1,o=!1;for(;t.isBefore(s,\"day\");){if(this.testFilter(t)){i=!0;break}t.add(1,\"day\")}for(;e.isAfter(s,\"day\");){if(this.testFilter(e)){o=!0;break}e.subtract(1,\"day\")}i&&o&&n.classList.add(\"not-available\")}this.rangeIsNotAvailable(s,t)&&n.classList.add(\"not-available\")}this.dateIsNotAvailable(s,t)&&n.classList.add(\"not-available\")}if(this.options.presets&&\"PresetPluginButton\"===i){const e=new t(Number(n.dataset.start)),i=new t(Number(n.dataset.end)),s=i.diff(e,\"day\"),o=this.options.minDays&&sthis.options.maxDays;(o||a||this.lockMinDate(e)||this.lockMaxDate(e)||this.lockMinDate(i)||this.lockMaxDate(i)||this.rangeIsNotAvailable(e,i))&&n.setAttribute(\"disabled\",\"disabled\")}}dateIsNotAvailable(t,e){return this.lockMinDate(t)||this.lockMaxDate(t)||this.lockMinDays(t,e)||this.lockMaxDays(t,e)||this.lockSelectForward(t)||this.lockSelectBackward(t)}rangeIsNotAvailable(t,e){if(!t||!e)return!1;const i=(t.isSameOrBefore(e,\"day\")?t:e).clone(),n=(e.isSameOrAfter(t,\"day\")?e:t).clone();for(;i.isSameOrBefore(n,\"day\");){if(this.testFilter(i))return!0;i.add(1,\"day\")}return!1}lockMinDate(e){return this.options.minDate instanceof t&&e.isBefore(this.options.minDate,\"day\")}lockMaxDate(e){return this.options.maxDate instanceof t&&e.isAfter(this.options.maxDate,\"day\")}lockMinDays(t,e){if(this.options.minDays&&e){const i=e.clone().subtract(this.options.minDays-1,\"day\"),n=e.clone().add(this.options.minDays-1,\"day\");return t.isBetween(i,n)}return!1}lockMaxDays(t,e){if(this.options.maxDays&&e){const i=e.clone().subtract(this.options.maxDays,\"day\"),n=e.clone().add(this.options.maxDays,\"day\");return!t.isBetween(i,n)}return!1}lockSelectForward(t){if(1===this.picker.datePicked.length&&this.options.selectForward){const e=this.picker.datePicked[0].clone();return t.isBefore(e,\"day\")}return!1}lockSelectBackward(t){if(1===this.picker.datePicked.length&&this.options.selectBackward){const e=this.picker.datePicked[0].clone();return t.isAfter(e,\"day\")}return!1}testFilter(t){return\"function\"==typeof this.options.filter&&this.options.filter(t,this.picker.datePicked)}}class r extends o{dependencies=[\"RangePlugin\"];binds={onView:this.onView.bind(this),onClick:this.onClick.bind(this)};options={customLabels:[\"Today\",\"Yesterday\",\"Last 7 Days\",\"Last 30 Days\",\"This Month\",\"Last Month\"],customPreset:{},position:\"left\"};getName(){return\"PresetPlugin\"}onAttach(){if(!Object.keys(this.options.customPreset).length){const e=new t,i=()=>{const i=e.clone();i.setDate(1);const n=new Date(e.getFullYear(),e.getMonth()+1,0);return[new t(i),new t(n)]},n=()=>{const i=e.clone();i.setMonth(i.getMonth()-1),i.setDate(1);const n=new Date(e.getFullYear(),e.getMonth(),0);return[new t(i),new t(n)]},s=[[e.clone(),e.clone()],[e.clone().subtract(1,\"day\"),e.clone().subtract(1,\"day\")],[e.clone().subtract(6,\"day\"),e.clone()],[e.clone().subtract(29,\"day\"),e.clone()],i(),n()];Object.values(this.options.customLabels).forEach(((t,e)=>{this.options.customPreset[t]=s[e]}))}this.picker.on(\"view\",this.binds.onView),this.picker.on(\"click\",this.binds.onClick)}onDetach(){this.picker.off(\"view\",this.binds.onView),this.picker.off(\"click\",this.binds.onClick)}onView(t){const{view:e,target:i}=t.detail;if(\"Main\"===e){const t=document.createElement(\"div\");t.className=\"preset-plugin-container\",Object.keys(this.options.customPreset).forEach((e=>{if(Object.prototype.hasOwnProperty.call(this.options.customPreset,e)){const i=this.options.customPreset[e],n=document.createElement(\"button\");n.className=\"preset-button unit\",n.innerHTML=e,n.dataset.start=i[0].getTime(),n.dataset.end=i[1].getTime(),t.appendChild(n),this.picker.trigger(\"view\",{view:\"PresetPluginButton\",target:n})}})),i.appendChild(t),i.classList.add(`preset-${this.options.position}`),this.picker.trigger(\"view\",{view:\"PresetPluginContainer\",target:t})}}onClick(e){const i=e.target;if(i instanceof HTMLElement){const e=i.closest(\".unit\");if(!(e instanceof HTMLElement))return;if(this.isPresetButton(e)){const i=new t(Number(e.dataset.start)),n=new t(Number(e.dataset.end));this.picker.options.autoApply?(this.picker.setDateRange(i,n),this.picker.trigger(\"select\",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide()):(this.picker.datePicked=[i,n],this.picker.renderAll())}}}isPresetButton(t){return t.classList.contains(\"preset-button\")}}class c extends o{tooltipElement;triggerElement;binds={setStartDate:this.setStartDate.bind(this),setEndDate:this.setEndDate.bind(this),setDateRange:this.setDateRange.bind(this),getStartDate:this.getStartDate.bind(this),getEndDate:this.getEndDate.bind(this),onView:this.onView.bind(this),onShow:this.onShow.bind(this),onMouseEnter:this.onMouseEnter.bind(this),onMouseLeave:this.onMouseLeave.bind(this),onClickCalendarDay:this.onClickCalendarDay.bind(this),onClickApplyButton:this.onClickApplyButton.bind(this),parseValues:this.parseValues.bind(this),updateValues:this.updateValues.bind(this),clear:this.clear.bind(this)};options={elementEnd:null,startDate:null,endDate:null,repick:!1,strict:!0,delimiter:\" - \",tooltip:!0,tooltipNumber:t=>t,locale:{zero:\"\",one:\"day\",two:\"\",few:\"\",many:\"\",other:\"days\"},documentClick:this.hidePicker.bind(this)};getName(){return\"RangePlugin\"}onAttach(){this.binds._setStartDate=this.picker.setStartDate,this.binds._setEndDate=this.picker.setEndDate,this.binds._setDateRange=this.picker.setDateRange,this.binds._getStartDate=this.picker.getStartDate,this.binds._getEndDate=this.picker.getEndDate,this.binds._parseValues=this.picker.parseValues,this.binds._updateValues=this.picker.updateValues,this.binds._clear=this.picker.clear,this.binds._onClickCalendarDay=this.picker.onClickCalendarDay,this.binds._onClickApplyButton=this.picker.onClickApplyButton,Object.defineProperties(this.picker,{setStartDate:{configurable:!0,value:this.binds.setStartDate},setEndDate:{configurable:!0,value:this.binds.setEndDate},setDateRange:{configurable:!0,value:this.binds.setDateRange},getStartDate:{configurable:!0,value:this.binds.getStartDate},getEndDate:{configurable:!0,value:this.binds.getEndDate},parseValues:{configurable:!0,value:this.binds.parseValues},updateValues:{configurable:!0,value:this.binds.updateValues},clear:{configurable:!0,value:this.binds.clear},onClickCalendarDay:{configurable:!0,value:this.binds.onClickCalendarDay},onClickApplyButton:{configurable:!0,value:this.binds.onClickApplyButton}}),this.options.elementEnd&&(this.options.elementEnd instanceof HTMLElement||(this.options.elementEnd=this.picker.options.doc.querySelector(this.options.elementEnd)),this.options.elementEnd instanceof HTMLInputElement&&(this.options.elementEnd.readOnly=this.picker.options.readonly),\"function\"==typeof this.picker.options.documentClick&&(document.removeEventListener(\"click\",this.picker.options.documentClick,!0),\"function\"==typeof this.options.documentClick&&document.addEventListener(\"click\",this.options.documentClick,!0)),this.options.elementEnd.addEventListener(\"click\",this.picker.show.bind(this.picker))),this.options.repick=this.options.repick&&this.options.elementEnd instanceof HTMLElement,this.picker.options.date=null,this.picker.on(\"view\",this.binds.onView),this.picker.on(\"show\",this.binds.onShow),this.picker.on(\"mouseenter\",this.binds.onMouseEnter,!0),this.picker.on(\"mouseleave\",this.binds.onMouseLeave,!0),this.checkIntlPluralLocales()}onDetach(){Object.defineProperties(this.picker,{setStartDate:{configurable:!0,value:this.binds._setStartDate},setEndDate:{configurable:!0,value:this.binds._setEndDate},setDateRange:{configurable:!0,value:this.binds._setDateRange},getStartDate:{configurable:!0,value:this.binds._getStartDate},getEndDate:{configurable:!0,value:this.binds._getEndDate},parseValues:{configurable:!0,value:this.binds._parseValues},updateValues:{configurable:!0,value:this.binds._updateValues},clear:{configurable:!0,value:this.binds._clear},onClickCalendarDay:{configurable:!0,value:this.binds._onClickCalendarDay},onClickApplyButton:{configurable:!0,value:this.binds._onClickApplyButton}}),this.picker.off(\"view\",this.binds.onView),this.picker.off(\"show\",this.binds.onShow),this.picker.off(\"mouseenter\",this.binds.onMouseEnter,!0),this.picker.off(\"mouseleave\",this.binds.onMouseLeave,!0)}parseValues(){if(this.options.startDate||this.options.endDate)this.options.strict?this.options.startDate&&this.options.endDate?this.setDateRange(this.options.startDate,this.options.endDate):(this.options.startDate=null,this.options.endDate=null):(this.options.startDate&&this.setStartDate(this.options.startDate),this.options.endDate&&this.setEndDate(this.options.endDate));else if(this.options.elementEnd)this.options.strict?this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.options.elementEnd instanceof HTMLInputElement&&this.options.elementEnd.value.length&&this.setDateRange(this.picker.options.element.value,this.options.elementEnd.value):(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.setStartDate(this.picker.options.element.value),this.options.elementEnd instanceof HTMLInputElement&&this.options.elementEnd.value.length&&this.setEndDate(this.options.elementEnd.value));else if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const[t,e]=this.picker.options.element.value.split(this.options.delimiter);this.options.strict?t&&e&&this.setDateRange(t,e):(t&&this.setStartDate(t),e&&this.setEndDate(e))}}updateValues(){const t=this.picker.options.element,e=this.options.elementEnd,i=this.picker.getStartDate(),n=this.picker.getEndDate(),s=i instanceof Date?i.format(this.picker.options.format,this.picker.options.lang):\"\",o=n instanceof Date?n.format(this.picker.options.format,this.picker.options.lang):\"\";if(e)t instanceof HTMLInputElement?t.value=s:t instanceof HTMLElement&&(t.innerText=s),e instanceof HTMLInputElement?e.value=o:e instanceof HTMLElement&&(e.innerText=o);else{const e=`${s}${s||o?this.options.delimiter:\"\"}${o}`;t instanceof HTMLInputElement?t.value=e:t instanceof HTMLElement&&(t.innerText=e)}}clear(){this.options.startDate=null,this.options.endDate=null,this.picker.datePicked.length=0,this.updateValues(),this.picker.renderAll(),this.picker.trigger(\"clear\")}onShow(t){const{target:e}=t.detail;this.triggerElement=e,this.picker.options.scrollToDate&&this.getStartDate()instanceof Date&&this.picker.gotoDate(this.getStartDate()),this.initializeRepick()}onView(e){const{view:i,target:n}=e.detail;if(\"Main\"===i&&(this.tooltipElement=document.createElement(\"span\"),this.tooltipElement.className=\"range-plugin-tooltip\",n.appendChild(this.tooltipElement)),\"CalendarDay\"===i){const e=new t(n.dataset.time),i=this.picker.datePicked,s=i.length?this.picker.datePicked[0]:this.getStartDate(),o=i.length?this.picker.datePicked[1]:this.getEndDate();s&&s.isSame(e,\"day\")&&n.classList.add(\"start\"),s&&o&&(o.isSame(e,\"day\")&&n.classList.add(\"end\"),e.isBetween(s,o)&&n.classList.add(\"in-range\"))}if(\"Footer\"===i){const t=1===this.picker.datePicked.length&&!this.options.strict||2===this.picker.datePicked.length;n.querySelector(\".apply-button\").disabled=!t}}hidePicker(t){let e=t.target,i=null;e.shadowRoot&&(e=t.composedPath()[0],i=e.getRootNode().host),this.picker.isShown()&&i!==this.picker.ui.wrapper&&e!==this.picker.options.element&&e!==this.options.elementEnd&&this.picker.hide()}setStartDate(e){const i=new t(e,this.picker.options.format);this.options.startDate=i?i.clone():null,this.updateValues(),this.picker.renderAll()}setEndDate(e){const i=new t(e,this.picker.options.format);this.options.endDate=i?i.clone():null,this.updateValues(),this.picker.renderAll()}setDateRange(e,i){const n=new t(e,this.picker.options.format),s=new t(i,this.picker.options.format);this.options.startDate=n?n.clone():null,this.options.endDate=s?s.clone():null,this.updateValues(),this.picker.renderAll()}getStartDate(){return this.options.startDate instanceof Date?this.options.startDate.clone():null}getEndDate(){return this.options.endDate instanceof Date?this.options.endDate.clone():null}onMouseEnter(e){const i=e.target;if(i instanceof HTMLElement){this.isContainer(i)&&this.initializeRepick();const e=i.closest(\".unit\");if(!(e instanceof HTMLElement))return;if(this.picker.isCalendarDay(e)){if(1!==this.picker.datePicked.length)return;let i=this.picker.datePicked[0].clone(),n=new t(e.dataset.time),s=!1;if(i.isAfter(n,\"day\")){const t=i.clone();i=n.clone(),n=t.clone(),s=!0}if([...this.picker.ui.container.querySelectorAll(\".day\")].forEach((o=>{const a=new t(o.dataset.time),r=this.picker.Calendar.getCalendarDayView(a);a.isBetween(i,n)&&r.classList.add(\"in-range\"),a.isSame(this.picker.datePicked[0],\"day\")&&(r.classList.add(\"start\"),r.classList.toggle(\"flipped\",s)),o===e&&(r.classList.add(\"end\"),r.classList.toggle(\"flipped\",s)),o.className=r.className})),this.options.tooltip){const t=this.options.tooltipNumber(n.diff(i,\"day\")+1);if(t>0){const i=new Intl.PluralRules(this.picker.options.lang).select(t),n=`${t} ${this.options.locale[i]}`;this.showTooltip(e,n)}else this.hideTooltip()}}}}onMouseLeave(t){if(this.isContainer(t.target)&&this.options.repick){const t=this.getStartDate(),e=this.getEndDate();t&&e&&(this.picker.datePicked.length=0,this.picker.renderAll())}}onClickCalendarDay(e){if(this.picker.isCalendarDay(e)){2===this.picker.datePicked.length&&(this.picker.datePicked.length=0);const i=new t(e.dataset.time);if(this.picker.datePicked[this.picker.datePicked.length]=i,2===this.picker.datePicked.length&&this.picker.datePicked[0].isAfter(this.picker.datePicked[1])){const t=this.picker.datePicked[1].clone();this.picker.datePicked[1]=this.picker.datePicked[0].clone(),this.picker.datePicked[0]=t.clone()}1!==this.picker.datePicked.length&&this.picker.options.autoApply||this.picker.trigger(\"preselect\",{start:this.picker.datePicked[0]instanceof Date?this.picker.datePicked[0].clone():null,end:this.picker.datePicked[1]instanceof Date?this.picker.datePicked[1].clone():null}),1===this.picker.datePicked.length&&(!this.options.strict&&this.picker.options.autoApply&&(this.picker.options.element===this.triggerElement&&this.setStartDate(this.picker.datePicked[0]),this.options.elementEnd===this.triggerElement&&this.setEndDate(this.picker.datePicked[0]),this.picker.trigger(\"select\",{start:this.picker.getStartDate(),end:this.picker.getEndDate()})),this.picker.renderAll()),2===this.picker.datePicked.length&&(this.picker.options.autoApply?(this.setDateRange(this.picker.datePicked[0],this.picker.datePicked[1]),this.picker.trigger(\"select\",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide()):(this.hideTooltip(),this.picker.renderAll()))}}onClickApplyButton(t){this.picker.isApplyButton(t)&&(1!==this.picker.datePicked.length||this.options.strict||(this.picker.options.element===this.triggerElement&&(this.options.endDate=null,this.setStartDate(this.picker.datePicked[0])),this.options.elementEnd===this.triggerElement&&(this.options.startDate=null,this.setEndDate(this.picker.datePicked[0]))),2===this.picker.datePicked.length&&this.setDateRange(this.picker.datePicked[0],this.picker.datePicked[1]),this.picker.trigger(\"select\",{start:this.picker.getStartDate(),end:this.picker.getEndDate()}),this.picker.hide())}showTooltip(t,e){this.tooltipElement.style.visibility=\"visible\",this.tooltipElement.innerHTML=e;const i=this.picker.ui.container.getBoundingClientRect(),n=this.tooltipElement.getBoundingClientRect(),s=t.getBoundingClientRect();let o=s.top,a=s.left;o-=i.top,a-=i.left,o-=n.height,a-=n.width/2,a+=s.width/2,this.tooltipElement.style.top=`${o}px`,this.tooltipElement.style.left=`${a}px`}hideTooltip(){this.tooltipElement.style.visibility=\"hidden\"}checkIntlPluralLocales(){if(!this.options.tooltip)return;const t=[...new Set([new Intl.PluralRules(this.picker.options.lang).select(0),new Intl.PluralRules(this.picker.options.lang).select(1),new Intl.PluralRules(this.picker.options.lang).select(2),new Intl.PluralRules(this.picker.options.lang).select(6),new Intl.PluralRules(this.picker.options.lang).select(18)])],e=Object.keys(this.options.locale);t.every((t=>e.includes(t)))||console.warn(`${this.getName()}: provide locales (${t.join(\", \")}) for correct tooltip text.`)}initializeRepick(){if(!this.options.repick)return;const t=this.getStartDate(),e=this.getEndDate();e&&this.triggerElement===this.picker.options.element&&(this.picker.datePicked[0]=e),t&&this.triggerElement===this.options.elementEnd&&(this.picker.datePicked[0]=t)}isContainer(t){return t===this.picker.ui.container}}class l extends o{options={native:!1,seconds:!1,stepHours:1,stepMinutes:5,stepSeconds:5,format12:!1};rangePlugin;timePicked={input:null,start:null,end:null};timePrePicked={input:null,start:null,end:null};binds={getDate:this.getDate.bind(this),getStartDate:this.getStartDate.bind(this),getEndDate:this.getEndDate.bind(this),onView:this.onView.bind(this),onInput:this.onInput.bind(this),onChange:this.onChange.bind(this),onClick:this.onClick.bind(this),setTime:this.setTime.bind(this),setStartTime:this.setStartTime.bind(this),setEndTime:this.setEndTime.bind(this)};getName(){return\"TimePlugin\"}onAttach(){this.binds._getDate=this.picker.getDate,this.binds._getStartDate=this.picker.getStartDate,this.binds._getEndDate=this.picker.getEndDate,Object.defineProperties(this.picker,{getDate:{configurable:!0,value:this.binds.getDate},getStartDate:{configurable:!0,value:this.binds.getStartDate},getEndDate:{configurable:!0,value:this.binds.getEndDate},setTime:{configurable:!0,value:this.binds.setTime},setStartTime:{configurable:!0,value:this.binds.setStartTime},setEndTime:{configurable:!0,value:this.binds.setEndTime}}),this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\"),this.parseValues(),this.picker.on(\"view\",this.binds.onView),this.picker.on(\"input\",this.binds.onInput),this.picker.on(\"change\",this.binds.onChange),this.picker.on(\"click\",this.binds.onClick)}onDetach(){delete this.picker.setTime,delete this.picker.setStartTime,delete this.picker.setEndTime,Object.defineProperties(this.picker,{getDate:{configurable:!0,value:this.binds._getDate},getStartDate:{configurable:!0,value:this.binds._getStartDate},getEndDate:{configurable:!0,value:this.binds._getEndDate}}),this.picker.off(\"view\",this.binds.onView),this.picker.off(\"input\",this.binds.onInput),this.picker.off(\"change\",this.binds.onChange),this.picker.off(\"click\",this.binds.onClick)}onView(t){const{view:e,target:i}=t.detail;if(\"Main\"===e){this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\");const t=document.createElement(\"div\");if(t.className=\"time-plugin-container\",this.rangePlugin){const e=this.getStartInput();t.appendChild(e),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:e});const i=this.getEndInput();t.appendChild(i),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:i})}else{const e=this.getSingleInput();t.appendChild(e),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:e})}i.appendChild(t),this.picker.trigger(\"view\",{view:\"TimePluginContainer\",target:t})}}onInput(e){const i=e.target;if(i instanceof HTMLInputElement&&i.classList.contains(\"time-plugin-input\")){const e=this.timePicked[i.name]||new t,[n,s]=i.value.split(\":\");e.setHours(Number(n)||0,Number(s)||0,0,0),this.picker.options.autoApply?(this.timePicked[i.name]=e,this.picker.updateValues()):this.timePrePicked[i.name]=e}}onChange(e){const i=e.target;if(i instanceof HTMLSelectElement&&i.classList.contains(\"time-plugin-custom-input\")){const e=/(\\w+)\\[(\\w+)\\]/,[,n,s]=i.name.match(e),o=Number(i.value);let a=new t;switch(!this.picker.options.autoApply&&this.timePrePicked[n]instanceof Date?a=this.timePrePicked[n].clone():this.timePicked[n]instanceof Date&&(a=this.timePicked[n].clone()),s){case\"HH\":if(this.options.format12){const t=i.closest(\".time-plugin-custom-block\").querySelector(`select[name=\"${n}[period]\"]`).value,e=this.handleFormat12(t,a,o);a.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0)}else a.setHours(o,a.getMinutes(),a.getSeconds(),0);break;case\"mm\":a.setHours(a.getHours(),o,a.getSeconds(),0);break;case\"ss\":a.setHours(a.getHours(),a.getMinutes(),o,0);break;case\"period\":if(this.options.format12){const t=i.closest(\".time-plugin-custom-block\").querySelector(`select[name=\"${n}[HH]\"]`).value,e=this.handleFormat12(i.value,a,Number(t));a.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0)}}if(this.picker.options.autoApply)this.timePicked[n]=a,this.picker.updateValues();else{this.timePrePicked[n]=a;const t=this.picker.ui.container.querySelector(\".apply-button\");if(this.rangePlugin){const e=this.rangePlugin.options,i=this.picker.datePicked,n=e.strict&&2===i.length||!e.strict&&i.length>0||!i.length&&e.strict&&e.startDate instanceof Date&&e.endDate instanceof Date||!i.length&&!e.strict&&(e.startDate instanceof Date||e.endDate instanceof Date);t.disabled=!n}else this.picker.datePicked.length&&(t.disabled=!1)}}}onClick(t){const e=t.target;if(e instanceof HTMLElement){const t=e.closest(\".unit\");if(!(t instanceof HTMLElement))return;this.picker.isApplyButton(t)&&(Object.keys(this.timePicked).forEach((t=>{this.timePrePicked[t]instanceof Date&&(this.timePicked[t]=this.timePrePicked[t].clone())})),this.picker.updateValues(),this.timePrePicked={input:null,start:null,end:null}),this.picker.isCancelButton(t)&&(this.timePrePicked={input:null,start:null,end:null},this.picker.renderAll())}}setTime(t){const e=this.handleTimeString(t);this.timePicked.input=e.clone(),this.picker.renderAll(),this.picker.updateValues()}setStartTime(t){const e=this.handleTimeString(t);this.timePicked.start=e.clone(),this.picker.renderAll(),this.picker.updateValues()}setEndTime(t){const e=this.handleTimeString(t);this.timePicked.end=e.clone(),this.picker.renderAll(),this.picker.updateValues()}handleTimeString(e){const i=new t,[n,s,o]=e.split(\":\").map((t=>Number(t))),a=n&&!Number.isNaN(n)?n:0,r=s&&!Number.isNaN(s)?s:0,c=o&&!Number.isNaN(o)?o:0;return i.setHours(a,r,c,0),i}getDate(){if(this.picker.options.date instanceof Date){const e=new t(this.picker.options.date,this.picker.options.format);if(this.timePicked.input instanceof Date){const t=this.timePicked.input;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getStartDate(){if(this.rangePlugin.options.startDate instanceof Date){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format);if(this.timePicked.start instanceof Date){const t=this.timePicked.start;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getEndDate(){if(this.rangePlugin.options.endDate instanceof Date){const e=new t(this.rangePlugin.options.endDate,this.picker.options.format);if(this.timePicked.end instanceof Date){const t=this.timePicked.end;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getSingleInput(){return this.options.native?this.getNativeInput(\"input\"):this.getCustomInput(\"input\")}getStartInput(){return this.options.native?this.getNativeInput(\"start\"):this.getCustomInput(\"start\")}getEndInput(){return this.options.native?this.getNativeInput(\"end\"):this.getCustomInput(\"end\")}getNativeInput(t){const e=document.createElement(\"input\");e.type=\"time\",e.name=t,e.className=\"time-plugin-input unit\";const i=this.timePicked[t];if(i){const t=`0${i.getHours()}`.slice(-2),n=`0${i.getMinutes()}`.slice(-2);e.value=`${t}:${n}`}return e}getCustomInput(t){const e=document.createElement(\"div\");e.className=\"time-plugin-custom-block\";const i=document.createElement(\"select\");i.className=\"time-plugin-custom-input unit\",i.name=`${t}[HH]`;const n=this.options.format12?1:0,s=this.options.format12?13:24;let o=null;!this.picker.options.autoApply&&this.timePrePicked[t]instanceof Date?o=this.timePrePicked[t].clone():this.timePicked[t]instanceof Date&&(o=this.timePicked[t].clone());for(let t=n;t{const e=document.createElement(\"option\");e.value=t,e.text=t,o&&\"PM\"===t&&o.getHours()>=12&&(e.selected=!0),i.appendChild(e)})),e.appendChild(i)}return e}handleFormat12(t,e,i){const n=e.clone();switch(t){case\"AM\":12===i?n.setHours(0,n.getMinutes(),n.getSeconds(),0):n.setHours(i,n.getMinutes(),n.getSeconds(),0);break;case\"PM\":12!==i?n.setHours(i+12,n.getMinutes(),n.getSeconds(),0):n.setHours(i,n.getMinutes(),n.getSeconds(),0)}return n}parseValues(){if(this.rangePlugin){if(this.rangePlugin.options.strict){if(this.rangePlugin.options.startDate&&this.rangePlugin.options.endDate){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format),i=new t(this.rangePlugin.options.endDate,this.picker.options.format);this.timePicked.start=e.clone(),this.timePicked.end=i.clone()}}else{if(this.rangePlugin.options.startDate){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format);this.timePicked.start=e.clone()}if(this.rangePlugin.options.endDate){const e=new t(this.rangePlugin.options.endDate,this.picker.options.format);this.timePicked.end=e.clone()}}if(this.rangePlugin.options.elementEnd)if(this.rangePlugin.options.strict){if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.rangePlugin.options.elementEnd instanceof HTMLInputElement&&this.rangePlugin.options.elementEnd.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format),i=new t(this.rangePlugin.options.elementEnd.value,this.picker.options.format);this.timePicked.start=e.clone(),this.timePicked.end=i.clone()}}else{if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format);this.timePicked.start=e.clone()}if(this.rangePlugin.options.elementEnd instanceof HTMLInputElement&&this.rangePlugin.options.elementEnd.value.length){const e=new t(this.rangePlugin.options.elementEnd.value,this.picker.options.format);this.timePicked.start=e.clone()}}else if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const[e,i]=this.picker.options.element.value.split(this.rangePlugin.options.delimiter);if(this.rangePlugin.options.strict){if(e&&i){const n=new t(e,this.picker.options.format),s=new t(i,this.picker.options.format);this.timePicked.start=n.clone(),this.timePicked.end=s.clone()}}else{if(e){const i=new t(e,this.picker.options.format);this.timePicked.start=i.clone()}if(i){const e=new t(i,this.picker.options.format);this.timePicked.start=e.clone()}}}}else{if(this.picker.options.date){const e=new t(this.picker.options.date,this.picker.options.format);this.timePicked.input=e.clone()}if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format);this.timePicked.input=e.clone()}}}}class h extends o{docElement=null;rangePlugin;binds={onView:this.onView.bind(this),onKeydown:this.onKeydown.bind(this)};options={unitIndex:1,dayIndex:2};getName(){return\"KbdPlugin\"}onAttach(){const t=this.picker.options.element,e=t.getBoundingClientRect();if(this.docElement=document.createElement(\"span\"),this.docElement.style.position=\"absolute\",this.docElement.style.top=`${t.offsetTop}px`,this.docElement.style.left=t.offsetLeft+e.width-25+\"px\",this.docElement.attachShadow({mode:\"open\"}),this.options.html)this.docElement.shadowRoot.innerHTML=this.options.html;else{const t=`\\n \\n\\n 📅\\n `;this.docElement.shadowRoot.innerHTML=t}const i=this.docElement.shadowRoot.querySelector(\"button\");i&&(i.addEventListener(\"click\",(t=>{t.preventDefault(),this.picker.show({target:this.picker.options.element})}),{capture:!0}),i.addEventListener(\"keydown\",(t=>{\"Escape\"===t.code&&this.picker.hide()}),{capture:!0})),this.picker.options.element.after(this.docElement),this.picker.on(\"view\",this.binds.onView),this.picker.on(\"keydown\",this.binds.onKeydown)}onDetach(){this.docElement&&this.docElement.isConnected&&this.docElement.remove(),this.picker.off(\"view\",this.binds.onView),this.picker.off(\"keydown\",this.binds.onKeydown)}onView(t){const{view:e,target:i}=t.detail;i&&\"querySelector\"in i&&(\"CalendarDay\"!==e||[\"locked\",\"not-available\"].some((t=>i.classList.contains(t)))?[...i.querySelectorAll(\".unit:not(.day)\")].forEach((t=>t.tabIndex=this.options.unitIndex)):i.tabIndex=this.options.dayIndex)}onKeydown(t){switch(this.onMouseEnter(t),t.code){case\"ArrowUp\":case\"ArrowDown\":this.verticalMove(t);break;case\"ArrowLeft\":case\"ArrowRight\":this.horizontalMove(t);break;case\"Enter\":case\"Space\":this.handleEnter(t);break;case\"Escape\":this.picker.hide()}}findAllowableDaySibling(t,e,i){const n=Array.from(t.querySelectorAll(`.day[tabindex=\"${this.options.dayIndex}\"]`)),s=n.indexOf(e);return n.filter(((t,e)=>i(e,s)&&t.tabIndex===this.options.dayIndex))[0]}changeMonth(t){const e={ArrowLeft:\"previous\",ArrowRight:\"next\"},i=this.picker.ui.container.querySelector(`.${e[t.code]}-button[tabindex=\"${this.options.unitIndex}\"]`);i&&!i.parentElement.classList.contains(`no-${e[t.code]}-month`)&&(i.dispatchEvent(new Event(\"click\",{bubbles:!0})),setTimeout((()=>{let e=null;switch(t.code){case\"ArrowLeft\":const t=this.picker.ui.container.querySelectorAll(`.day[tabindex=\"${this.options.dayIndex}\"]`);e=t[t.length-1];break;case\"ArrowRight\":e=this.picker.ui.container.querySelector(`.day[tabindex=\"${this.options.dayIndex}\"]`)}e&&e.focus()})))}verticalMove(t){const e=t.target;if(e.classList.contains(\"day\")){t.preventDefault();const i=this.findAllowableDaySibling(this.picker.ui.container,e,((e,i)=>e===(\"ArrowUp\"===t.code?i-7:i+7)));i&&i.focus()}}horizontalMove(t){const e=t.target;if(e.classList.contains(\"day\")){t.preventDefault();const i=this.findAllowableDaySibling(this.picker.ui.container,e,((e,i)=>e===(\"ArrowLeft\"===t.code?i-1:i+1)));i?i.focus():this.changeMonth(t)}}handleEnter(t){const e=t.target;e.classList.contains(\"day\")&&(t.preventDefault(),e.dispatchEvent(new Event(\"click\",{bubbles:!0})),setTimeout((()=>{if(this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\"),this.rangePlugin||!this.picker.options.autoApply){const t=this.picker.ui.container.querySelector(\".day.selected\");t&&setTimeout((()=>{t.focus()}))}})))}onMouseEnter(t){t.target.classList.contains(\"day\")&&setTimeout((()=>{const t=this.picker.ui.shadowRoot.activeElement;t&&t.dispatchEvent(new Event(\"mouseenter\",{bubbles:!0}))}))}}class d extends o{rangePlugin;lockPlugin;priority=10;binds={onView:this.onView.bind(this),onColorScheme:this.onColorScheme.bind(this)};options={dropdown:{months:!1,years:!1,minYear:1950,maxYear:null},darkMode:!0,locale:{resetButton:''}};matchMedia;getName(){return\"AmpPlugin\"}onAttach(){this.options.darkMode&&window&&\"matchMedia\"in window&&(this.matchMedia=window.matchMedia(\"(prefers-color-scheme: dark)\"),this.matchMedia.matches&&(this.picker.ui.container.dataset.theme=\"dark\"),this.matchMedia.addEventListener(\"change\",this.binds.onColorScheme)),this.options.weekNumbers&&this.picker.ui.container.classList.add(\"week-numbers\"),this.picker.on(\"view\",this.binds.onView)}onDetach(){this.options.darkMode&&window&&\"matchMedia\"in window&&this.matchMedia.removeEventListener(\"change\",this.binds.onColorScheme),this.picker.ui.container.removeAttribute(\"data-theme\"),this.picker.ui.container.classList.remove(\"week-numbers\"),this.picker.off(\"view\",this.binds.onView)}onView(t){this.lockPlugin=this.picker.PluginManager.getInstance(\"LockPlugin\"),this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\"),this.handleDropdown(t),this.handleResetButton(t),this.handleWeekNumbers(t)}onColorScheme(t){const e=t.matches?\"dark\":\"light\";this.picker.ui.container.dataset.theme=e}handleDropdown(e){const{view:i,target:n,date:s,index:o}=e.detail;if(\"CalendarHeader\"===i){const e=n.querySelector(\".month-name\");if(this.options.dropdown.months){e.childNodes[0].remove();const i=document.createElement(\"select\");i.className=\"month-name--select month-name--dropdown\";for(let e=0;e<12;e+=1){const n=document.createElement(\"option\"),o=new t(new Date(s.getFullYear(),e,2,0,0,0)),a=new t(new Date(s.getFullYear(),e,1,0,0,0));n.value=String(e),n.text=o.toLocaleString(this.picker.options.lang,{month:\"long\"}),this.lockPlugin&&(n.disabled=this.lockPlugin.options.minDate&&a.isBefore(new t(this.lockPlugin.options.minDate),\"month\")||this.lockPlugin.options.maxDate&&a.isAfter(new t(this.lockPlugin.options.maxDate),\"month\")),n.selected=a.getMonth()===s.getMonth(),i.appendChild(n)}i.addEventListener(\"change\",(t=>{const e=t.target;this.picker.calendars[0].setDate(1),this.picker.calendars[0].setMonth(Number(e.value)),this.picker.renderAll()})),e.prepend(i)}if(this.options.dropdown.years){e.childNodes[1].remove();const i=document.createElement(\"select\");i.className=\"month-name--select\";const n=this.options.dropdown.minYear,o=this.options.dropdown.maxYear?this.options.dropdown.maxYear:(new Date).getFullYear();if(s.getFullYear()>o){const t=document.createElement(\"option\");t.value=String(s.getFullYear()),t.text=String(s.getFullYear()),t.selected=!0,t.disabled=!0,i.appendChild(t)}for(let e=o;e>=n;e-=1){const n=document.createElement(\"option\"),o=new t(new Date(e,0,1,0,0,0));n.value=String(e),n.text=String(e),this.lockPlugin&&(n.disabled=this.lockPlugin.options.minDate&&o.isBefore(new t(this.lockPlugin.options.minDate),\"year\")||this.lockPlugin.options.maxDate&&o.isAfter(new t(this.lockPlugin.options.maxDate),\"year\")),n.selected=s.getFullYear()===e,i.appendChild(n)}if(s.getFullYear(){t.innerHTML=t.value,i.appendChild(t)}))}i.addEventListener(\"change\",(t=>{const e=t.target;this.picker.calendars[0].setFullYear(Number(e.value)),this.picker.renderAll()})),e.appendChild(i)}}}handleResetButton(t){const{view:e,target:i}=t.detail;if(\"CalendarHeader\"===e&&this.options.resetButton){const t=document.createElement(\"button\");t.className=\"reset-button unit\",t.innerHTML=this.options.locale.resetButton,t.addEventListener(\"click\",(t=>{t.preventDefault();let e=!0;\"function\"==typeof this.options.resetButton&&(e=this.options.resetButton.call(this)),e&&this.picker.clear()})),i.appendChild(t)}}handleWeekNumbers(e){if(this.options.weekNumbers){const{view:i,target:n}=e.detail;if(\"CalendarDayNames\"===i){const t=document.createElement(\"div\");t.className=\"wnum-header\",t.innerHTML=\"Wk\",n.prepend(t)}\"CalendarDays\"===i&&[...n.children].forEach(((e,i)=>{if(0===i||i%7==0){let i;if(e.classList.contains(\"day\"))i=new t(e.dataset.time);else{const e=n.querySelector(\".day\");i=new t(e.dataset.time)}let s=i.getWeek(this.picker.options.firstDay);53===s&&0===i.getMonth()&&(s=\"53/1\");const o=document.createElement(\"div\");o.className=\"wnum-item\",o.innerHTML=String(s),n.insertBefore(o,e)}}))}}}export{d as AmpPlugin,t as DateTime,h as KbdPlugin,a as LockPlugin,r as PresetPlugin,c as RangePlugin,l as TimePlugin,n as create,s as easepick};\n","import { Turbo } from '@hotwired/turbo-rails'\n\nexport function addParamToUrl(param, value) {\n let url = new URL(window.location.href)\n url.searchParams.set(param, value)\n Turbo.navigator.history.push(url)\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { easepick, PresetPlugin, RangePlugin } from '@easepick/bundle'\nimport { addParamToUrl } from './helpers'\nimport {\n addMonths,\n addYears,\n endOfMonth,\n endOfYear,\n format,\n formatISO,\n parse,\n startOfMonth,\n startOfYear,\n} from 'date-fns'\nimport Rails from '@rails/ujs'\n// @ts-ignore\nimport css from '../entrypoints/easepick.scss?inline'\nimport { i18n } from '../libraries/i18n'\n\nfunction dateToISO(str: string) {\n return formatISO(parse(str.trim(), i18n.t('date.formats.frontend.datefns.short'), new Date()), {\n representation: 'date',\n })\n}\n\nexport default class extends Controller {\n hiddenInputElement: HTMLInputElement\n form: HTMLFormElement\n static values = {\n companyCreatedAt: String,\n hasCompanyCreatedAtValue: Boolean,\n }\n declare companyCreatedAtValue: string\n declare hasCompanyCreatedAtValue: boolean\n\n connect() {\n this._addHiddenElement()\n this._updateHiddenInput()\n this.form = this.element.closest('form')\n\n const picker = new easepick.create({\n element: this.element as HTMLElement,\n css: css.toString(),\n lang: i18n.locale,\n format: i18n.t('date.formats.frontend.easepick.short'),\n readonly: false,\n plugins: [RangePlugin, PresetPlugin],\n calendars: 2,\n grid: 2,\n RangePlugin: {\n tooltip: false,\n },\n zIndex: 100,\n PresetPlugin: {\n position: 'left',\n customPreset: this._ranges(),\n },\n })\n\n picker.on('select', (e) => {\n this._updateHiddenInput()\n if (this.form.dataset.remote) {\n addParamToUrl('period', (this.form.querySelector('input[name=period]') as HTMLInputElement).value)\n Rails.fire(this.form, 'submit')\n } else {\n this.form.submit()\n }\n })\n\n this._addStyle(picker)\n this._addManualInputListener()\n }\n\n _addStyle(picker) {\n // Available options for colouring:\n // --color-bg-default: #3f51b5;\n // --color-fg-primary: #ffc107;\n // --color-fg-default: #fff;\n // --color-fg-accent: #ff9800;\n // --color-bg-inrange: #333;\n // --day-width: 35px;\n // --day-height: 30px;\n\n // TODO: We currently borrow the inrange colour from our previous datepicker\n // We should instead set an own one\n // This might be easier once we have gotten to Bootstrap 5 which introduces many more CSS variables\n let style = document.createElement('style')\n style.textContent = `\n :host {\n --color-fg-primary: var(--bs-primary);\n --color-bg-inrange: #ebf4f8;\n }\n .preset-plugin-container {\n justify-content: start;\n gap: 10px;\n }\n `\n picker.ui.shadowRoot.appendChild(style)\n }\n\n _ranges() {\n const now = new Date()\n const lastYear = addYears(now, -1)\n const lastMonth = addMonths(now, -1)\n const companyCreatedAt = new Date(this.companyCreatedAtValue)\n companyCreatedAt.setHours(0, 0, 0, 0)\n const endDate = addYears(now, 10)\n\n let ranges = {}\n ranges[i18n.t('date.picker.ytd')] = [startOfYear(now), now]\n ranges[`${format(now, 'yyyy')} (${i18n.t('date.picker.full_year')})`] = [startOfYear(now), endOfYear(now)]\n ranges[format(lastYear, 'yyyy')] = [startOfYear(lastYear), endOfYear(lastYear)]\n ranges[i18n.t('date.picker.this_month')] = [startOfMonth(now), endOfMonth(now)]\n ranges[i18n.t('date.picker.last_month')] = [startOfMonth(lastMonth), endOfMonth(lastMonth)]\n if (this.hasCompanyCreatedAtValue) {\n ranges[i18n.t('date.picker.all')] = [companyCreatedAt, endDate]\n }\n\n return ranges\n }\n\n _addHiddenElement() {\n this.hiddenInputElement = document.createElement('input')\n this.hiddenInputElement.setAttribute('type', 'hidden')\n this.hiddenInputElement.setAttribute('name', (this.element as HTMLInputElement).name)\n this.element.parentNode.insertBefore(this.hiddenInputElement, this.element.nextSibling)\n this.element.removeAttribute('name')\n }\n\n _updateHiddenInput() {\n const str = (this.element as HTMLInputElement).value\n if (str.trim() === '') {\n return\n }\n let [begin, end] = str.split('-')\n let formInput = this.element.closest('form').querySelector('input[name=period]') as HTMLInputElement\n formInput.value = `${dateToISO(begin)}_${dateToISO(end)}`\n }\n\n _addManualInputListener() {\n const inputElement = this.element as HTMLInputElement\n inputElement.addEventListener('change', () => {\n this._updateHiddenInput()\n this.updateUrlParams()\n if (this.form.dataset.remote) {\n Rails.fire(this.form, 'submit')\n } else {\n this.form.submit()\n }\n })\n }\n\n updateUrlParams() {\n const str = (this.element as HTMLInputElement).value\n if (str.trim() === '') {\n return\n }\n let [begin, end] = str.split(' - ')\n const urlParams = new URLSearchParams(window.location.search)\n urlParams.set('period', `${dateToISO(begin)}_${dateToISO(end)}`)\n window.history.replaceState({}, '', `${window.location.pathname}?${urlParams.toString()}`)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['inputField']\n\n declare hasInputFieldTarget: boolean\n declare inputFieldTarget: HTMLInputElement\n\n enableField(event) {\n event.preventDefault()\n if (this.hasInputFieldTarget) {\n this.inputFieldTarget.removeAttribute('readonly')\n this.inputFieldTarget.classList.remove('readonly')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n initialize() {\n Modal.getOrCreateInstance(document.querySelector('#feedback-info')).show()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static targets = ['label', 'input', 'filename']\n\n declare inputTarget: HTMLElement\n declare filenameTarget: HTMLElement\n\n connect() {\n this._handleFileChange = this._handleFileChange.bind(this)\n\n $(this.inputTarget).on('change', this._handleFileChange)\n\n if ((this.element as HTMLElement).dataset.filename) {\n this._setFileName((this.element as HTMLElement).dataset.filename)\n }\n }\n\n _handleFileChange() {\n let fileName = ($(this.inputTarget).val() as string).replace(/\\\\/g, '/').replace(/.*\\//, '')\n this._setFileName(fileName)\n }\n\n _setFileName(fileName) {\n if (this.targets.has('filename')) {\n $(this.filenameTarget).text(fileName)\n }\n }\n}\n","import flatpickr from 'flatpickr';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _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}\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\nfunction _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}\n\nfunction _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}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _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}\n\nfunction _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}\n\nfunction _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}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\n/*\nStimulus 3.0.0\nCopyright © 2021 Basecamp, LLC\n */\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach(name => values.add(name));\n return values;\n }, new Set()));\n}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(key => [key, definition[key]]) : [];\n}\n\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n\n const b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return constructor => class extended extends constructor {};\n }\n})();\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const {\n classes\n } = this;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n }\n\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n }\n\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n }\n\n }\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n }\n\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n }\n\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n }\n\n }\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, {\n [attributeName]: valueDescriptor\n });\n }, {});\n }\n\n }\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n const definition = parseValueDefinitionPair(valueDefinitionPair);\n const {\n key,\n name,\n reader: read,\n writer: write\n } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n\n }\n };\n}\n\nfunction parseValueDefinitionPair([token, typeDefinition]) {\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n}\n\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n const typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n const defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(`Type \"${typeFromObject}\" must match the type of the default value. Given default value: \"${typeObject.default}\" as \"${defaultValueType}\"`);\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n const typeFromObject = parseValueTypeObject(typeDefinition);\n const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n const typeFromConstant = parseValueTypeConstant(typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(`Unknown value type \"${typeDefinition}\"`);\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n const key = `${dasherize(token)}-value`;\n const type = parseValueTypeDefinition(typeDefinition);\n return {\n type,\n key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\n\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n\n boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n\n number(value) {\n return Number(value);\n },\n\n object(value) {\n const object = JSON.parse(value);\n\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n\n string(value) {\n return value;\n }\n\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n\n static get shouldLoad() {\n return true;\n }\n\n get application() {\n return this.context.application;\n }\n\n get scope() {\n return this.context.scope;\n }\n\n get element() {\n return this.scope.element;\n }\n\n get identifier() {\n return this.scope.identifier;\n }\n\n get targets() {\n return this.scope.targets;\n }\n\n get classes() {\n return this.scope.classes;\n }\n\n get data() {\n return this.scope.data;\n }\n\n initialize() {}\n\n connect() {}\n\n disconnect() {}\n\n dispatch(eventName, {\n target = this.element,\n detail = {},\n prefix = this.identifier,\n bubbles = true,\n cancelable = true\n } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, {\n detail,\n bubbles,\n cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n\n}\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nconst kebabCase = string => string.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\nconst capitalize$1 = string => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst booleanOptions = ['allowInput', 'altInput', 'animate', 'clickOpens', 'closeOnSelect', 'disableMobile', 'enableSeconds', 'enableTime', 'inline', 'noCalendar', 'shorthandCurrentMonth', 'static', 'time_24hr', 'weekNumbers', 'wrap'];\nconst stringOptions = ['altInputClass', 'conjunction', 'mode', 'nextArrow', 'position', 'prevArrow', 'monthSelectorType'];\nconst numberOptions = ['defaultHour', 'defaultMinute', 'defaultSeconds', 'hourIncrement', 'minuteIncrement', 'showMonths'];\nconst arrayOptions = ['disable', 'enable', 'disableDaysOfWeek', 'enableDaysOfWeek'];\nconst arrayOrStringOptions = ['defaultDate'];\nconst dateOptions = ['maxDate', 'minDate', 'maxTime', 'minTime', 'now'];\nconst dateFormats = ['altFormat', 'ariaDateFormat', 'dateFormat'];\nconst options = {\n string: stringOptions,\n boolean: booleanOptions,\n date: dateOptions,\n array: arrayOptions,\n number: numberOptions,\n arrayOrString: arrayOrStringOptions\n};\n\nconst events = ['change', 'open', 'close', 'monthChange', 'yearChange', 'ready', 'valueUpdate', 'dayCreate'];\n\nconst elements = ['calendarContainer', 'currentYearElement', 'days', 'daysContainer', 'input', 'nextMonthNav', 'monthNav', 'prevMonthNav', 'rContainer', 'selectedDateElem', 'todayDateElem', 'weekdayContainer'];\n\nconst mapping = {\n '%Y': 'Y',\n '%y': 'y',\n '%C': 'Y',\n '%m': 'm',\n '%-m': 'n',\n '%_m': 'n',\n '%B': 'F',\n '%^B': 'F',\n '%b': 'M',\n '%^b': 'M',\n '%h': 'M',\n '%^h': 'M',\n '%d': 'd',\n '%-d': 'j',\n '%e': 'j',\n '%H': 'H',\n '%k': 'H',\n '%I': 'h',\n '%l': 'h',\n '%-l': 'h',\n '%P': 'K',\n '%p': 'K',\n '%M': 'i',\n '%S': 'S',\n '%A': 'l',\n '%a': 'D',\n '%w': 'w'\n};\nconst strftimeRegex = new RegExp(Object.keys(mapping).join('|').replace(new RegExp('\\\\^', 'g'), '\\\\^'), 'g');\nconst convertDateFormat = format => {\n return format.replace(strftimeRegex, match => {\n return mapping[match];\n });\n};\n\nlet StimulusFlatpickr = /*#__PURE__*/function (_Controller) {\n _inherits(StimulusFlatpickr, _Controller);\n\n var _super = _createSuper(StimulusFlatpickr);\n\n function StimulusFlatpickr() {\n _classCallCheck(this, StimulusFlatpickr);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(StimulusFlatpickr, [{\n key: \"initialize\",\n value: function initialize() {\n this.config = {};\n }\n }, {\n key: \"connect\",\n value: function connect() {\n this._initializeEvents();\n\n this._initializeOptions();\n\n this._initializeDateFormats();\n\n this.fp = flatpickr(this.flatpickrElement, _objectSpread2({}, this.config));\n\n this._initializeElements();\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n const value = this.inputTarget.value;\n this.fp.destroy();\n this.inputTarget.value = value;\n }\n }, {\n key: \"_initializeEvents\",\n value: function _initializeEvents() {\n events.forEach(event => {\n if (this[event]) {\n const hook = `on${capitalize$1(event)}`;\n this.config[hook] = this[event].bind(this);\n }\n });\n }\n }, {\n key: \"_initializeOptions\",\n value: function _initializeOptions() {\n Object.keys(options).forEach(optionType => {\n const optionsCamelCase = options[optionType];\n optionsCamelCase.forEach(option => {\n const optionKebab = kebabCase(option);\n\n if (this.data.has(optionKebab)) {\n this.config[option] = this[`_${optionType}`](optionKebab);\n }\n });\n });\n\n this._handleDaysOfWeek();\n }\n }, {\n key: \"_handleDaysOfWeek\",\n value: function _handleDaysOfWeek() {\n if (this.config.disableDaysOfWeek) {\n this.config.disableDaysOfWeek = this._validateDaysOfWeek(this.config.disableDaysOfWeek);\n this.config.disable = [...(this.config.disable || []), this._disable.bind(this)];\n }\n\n if (this.config.enableDaysOfWeek) {\n this.config.enableDaysOfWeek = this._validateDaysOfWeek(this.config.enableDaysOfWeek);\n this.config.enable = [...(this.config.enable || []), this._enable.bind(this)];\n }\n }\n }, {\n key: \"_validateDaysOfWeek\",\n value: function _validateDaysOfWeek(days) {\n if (Array.isArray(days)) {\n return days.map(day => parseInt(day));\n } else {\n console.error('days of week must be a valid array');\n return [];\n }\n }\n }, {\n key: \"_disable\",\n value: function _disable(date) {\n const disabledDays = this.config.disableDaysOfWeek;\n return disabledDays.includes(date.getDay());\n }\n }, {\n key: \"_enable\",\n value: function _enable(date) {\n const enabledDays = this.config.enableDaysOfWeek;\n return enabledDays.includes(date.getDay());\n }\n }, {\n key: \"_initializeDateFormats\",\n value: function _initializeDateFormats() {\n dateFormats.forEach(dateFormat => {\n if (this.data.has(dateFormat)) {\n this.config[dateFormat] = convertDateFormat(this.data.get(dateFormat));\n }\n });\n }\n }, {\n key: \"_initializeElements\",\n value: function _initializeElements() {\n elements.forEach(element => {\n this[`${element}Target`] = this.fp[element];\n });\n }\n }, {\n key: \"_string\",\n value: function _string(option) {\n return this.data.get(option);\n }\n }, {\n key: \"_date\",\n value: function _date(option) {\n return this.data.get(option);\n }\n }, {\n key: \"_boolean\",\n value: function _boolean(option) {\n return !(this.data.get(option) == '0' || this.data.get(option) == 'false');\n }\n }, {\n key: \"_array\",\n value: function _array(option) {\n return JSON.parse(this.data.get(option));\n }\n }, {\n key: \"_number\",\n value: function _number(option) {\n return parseInt(this.data.get(option));\n }\n }, {\n key: \"_arrayOrString\",\n value: function _arrayOrString(option) {\n const val = this.data.get(option);\n\n try {\n return JSON.parse(val);\n } catch (e) {\n return val;\n }\n }\n }, {\n key: \"flatpickrElement\",\n get: function () {\n return this.hasInstanceTarget && this.instanceTarget || this.element;\n }\n }]);\n\n return StimulusFlatpickr;\n}(Controller);\n\n_defineProperty(StimulusFlatpickr, \"targets\", ['instance']);\n\nexport default StimulusFlatpickr;\n//# sourceMappingURL=index.m.js.map\n","import StimulusFlatpickr from 'stimulus-flatpickr'\n\nimport { Norwegian } from 'flatpickr/dist/l10n/no.js'\nimport { english } from 'flatpickr/dist/l10n/default.js'\nimport flatpickr from 'flatpickr'\nimport { i18n } from '../libraries/i18n'\nimport { DateOption } from 'flatpickr/dist/types/options'\n\n// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller\nexport default class FlatpickrController extends StimulusFlatpickr {\n locales = {\n nb: Norwegian,\n en: english,\n }\n config: Object\n fp: flatpickr.Instance\n\n hasBeenDisconnected = false\n\n initialize() {\n super.initialize()\n }\n\n disconnect() {\n this.hasBeenDisconnected = true\n }\n\n connect() {\n // We avoid rerunning this controller if it has been disconnected.\n // One example where this happens is when we move an element with this controller in the DOM.\n // We then get a connect&disconnect&connect sequence, and this makes us lose our input value.\n // One place we use this is with the controller \"move-element\" which moves a modal to a different element\n // If you need to change this logic, you can make sure this still works by checking that\n // the dates in the edit employee modal are pre-populated\n if (this.hasBeenDisconnected) return\n\n this.config = {\n ...this.config, //spread options in case some where defined in initialize\n locale: this.locales[i18n.locale],\n // NB! Other default are set in date_picker_input.rb\n // The reason is that it makes it easier to set the default alt-format with I18n from the project\n }\n super.connect()\n\n // 2022-06-29 We don`t use the calendar icon so this part if commented out\n // After upgrading to Bootstrap 5 this probably doesnt work since input-group-append was removed\n // If we decide to add back the calendar icon we will probably need to fix this code\n\n const picker = this.fp\n // Make the calendar icon in the input field clickable\n const pickerButton = picker._input.parentNode.querySelector('.input-group-text')\n if (pickerButton) {\n pickerButton.addEventListener('click', function () {\n picker.open()\n })\n }\n\n const originalParseDate = picker.parseDate\n picker.parseDate = (date: DateOption, format?: string, timeless?: boolean): Date | undefined => {\n // flatpickr use d.m.Y or m/d/Y format for manual input depending on locale\n // Also, we need to ensure that the input does not include letters to prevent cases like 'today'.\n if (typeof date === 'string' && (format === 'd.m.Y' || format === 'm/d/Y') && !/[a-zA-Z]/.test(date)) {\n const locale: 'en' | 'nb' = format === 'd.m.Y' ? 'nb' : 'en'\n const parsedDate = this.parseDateStr(date, locale)\n return typeof parsedDate === 'string' ? originalParseDate(parsedDate, 'Y-m-d', timeless) : undefined\n }\n\n return originalParseDate(date, format, timeless)\n }\n }\n\n parseDateStr(date: string, locale: 'en' | 'nb'): string | undefined {\n date = date.replace(/[\\s-]+/g, '') // Removes all whitespaces and hyphens\n const separator = ['.', '/'].find((s) => date.includes(s))\n const separatorCount = date.split('').filter((c) => c === separator).length\n let [date1, date2] = ['', '']\n const toFullYear = (y: string) => {\n return `${new Date().getFullYear().toString().slice(0, 2)}${y}`\n }\n const validateDates = (date1: string, date2: string): string | null => {\n if (Date.parse(date1) && Date.parse(date2)) {\n // return closest to current date\n const currentDate = new Date()\n const diff1 = Math.abs(Date.parse(date1) - currentDate.getTime())\n const diff2 = Math.abs(Date.parse(date2) - currentDate.getTime())\n return diff1 < diff2 ? date1 : date2\n } else if (Date.parse(date1)) {\n return date1\n } else if (Date.parse(date2)) {\n return date2\n } else {\n return undefined\n }\n }\n\n if (separatorCount === 0) {\n if (date.length === 4) {\n const [day1, month1] = [date.slice(0, 2), date.slice(2)]\n date1 = this.guessYear(month1) + '-' + month1 + '-' + day1\n } else if (date.length === 6) {\n const [year1, month1, day1] = [toFullYear(date.slice(0, 2)), date.slice(2, 4), date.slice(4)]\n const [day2, month2, year2] = [date.slice(0, 2), date.slice(2, 4), toFullYear(date.slice(4))]\n date1 = year1 + '-' + month1 + '-' + day1\n date2 = year2 + '-' + month2 + '-' + day2\n } else if (date.length === 8) {\n const [year1, month1, day1] = [date.slice(0, 4), date.slice(4, 6), date.slice(6)]\n const [day2, month2, year2] = [date.slice(0, 2), date.slice(2, 4), date.slice(4)]\n date1 = year1 + '-' + month1 + '-' + day1\n date2 = year2 + '-' + month2 + '-' + day2\n } else {\n return undefined\n }\n } else if (separatorCount === 1) {\n if (locale === 'nb') {\n const [day1, month1] = date.split(separator)\n date1 = this.guessYear(month1) + '-' + month1 + '-' + day1\n } else if (locale === 'en') {\n const [month1, day1] = date.split(separator)\n date1 = this.guessYear(month1) + '-' + month1 + '-' + day1\n }\n } else if (separatorCount === 2) {\n if (locale === 'nb') {\n let [day1, month1, year1] = date.split(separator)\n year1 = year1.length === 2 ? toFullYear(year1) : year1\n date1 = year1 + '-' + month1 + '-' + day1\n } else if (locale === 'en') {\n let [month1, day1, year1] = date.split(separator)\n year1 = year1.length === 2 ? toFullYear(year1) : year1\n date1 = year1 + '-' + month1 + '-' + day1\n }\n } else {\n return undefined\n }\n\n return validateDates(date1, date2)\n }\n\n guessYear(month: string | number): number {\n const currentMonth = new Date().getMonth() + 1\n\n // Check if the date this year is within one month of the current date\n if (Number(month) <= currentMonth + 1) {\n return new Date().getFullYear()\n }\n\n // If not, return the date for the same month of the previous year\n return new Date().getFullYear() - 1\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.monthSelectPlugin = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n\n function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n }\n function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n }\n\n var defaultConfig = {\n shorthand: false,\n dateFormat: \"F Y\",\n altFormat: \"F Y\",\n theme: \"light\",\n };\n function monthSelectPlugin(pluginConfig) {\n var config = __assign(__assign({}, defaultConfig), pluginConfig);\n return function (fp) {\n fp.config.dateFormat = config.dateFormat;\n fp.config.altFormat = config.altFormat;\n var self = { monthsContainer: null };\n function clearUnnecessaryDOMElements() {\n if (!fp.rContainer)\n return;\n clearNode(fp.rContainer);\n for (var index = 0; index < fp.monthElements.length; index++) {\n var element = fp.monthElements[index];\n if (!element.parentNode)\n continue;\n element.parentNode.removeChild(element);\n }\n }\n function build() {\n if (!fp.rContainer)\n return;\n self.monthsContainer = fp._createElement(\"div\", \"flatpickr-monthSelect-months\");\n self.monthsContainer.tabIndex = -1;\n buildMonths();\n fp.rContainer.appendChild(self.monthsContainer);\n fp.calendarContainer.classList.add(\"flatpickr-monthSelect-theme-\" + config.theme);\n }\n function buildMonths() {\n if (!self.monthsContainer)\n return;\n clearNode(self.monthsContainer);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < 12; i++) {\n var month = fp.createDay(\"flatpickr-monthSelect-month\", new Date(fp.currentYear, i), 0, i);\n if (month.dateObj.getMonth() === new Date().getMonth() &&\n month.dateObj.getFullYear() === new Date().getFullYear())\n month.classList.add(\"today\");\n month.textContent = monthToStr(i, config.shorthand, fp.l10n);\n month.addEventListener(\"click\", selectMonth);\n frag.appendChild(month);\n }\n self.monthsContainer.appendChild(frag);\n if (fp.config.minDate &&\n fp.currentYear === fp.config.minDate.getFullYear())\n fp.prevMonthNav.classList.add(\"flatpickr-disabled\");\n else\n fp.prevMonthNav.classList.remove(\"flatpickr-disabled\");\n if (fp.config.maxDate &&\n fp.currentYear === fp.config.maxDate.getFullYear())\n fp.nextMonthNav.classList.add(\"flatpickr-disabled\");\n else\n fp.nextMonthNav.classList.remove(\"flatpickr-disabled\");\n }\n function bindEvents() {\n fp._bind(fp.prevMonthNav, \"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n fp.changeYear(fp.currentYear - 1);\n selectYear();\n buildMonths();\n });\n fp._bind(fp.nextMonthNav, \"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n fp.changeYear(fp.currentYear + 1);\n selectYear();\n buildMonths();\n });\n fp._bind(self.monthsContainer, \"mouseover\", function (e) {\n if (fp.config.mode === \"range\")\n fp.onMouseOver(getEventTarget(e), \"flatpickr-monthSelect-month\");\n });\n }\n function setCurrentlySelected() {\n if (!fp.rContainer)\n return;\n if (!fp.selectedDates.length)\n return;\n var currentlySelected = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month.selected\");\n for (var index = 0; index < currentlySelected.length; index++) {\n currentlySelected[index].classList.remove(\"selected\");\n }\n var targetMonth = fp.selectedDates[0].getMonth();\n var month = fp.rContainer.querySelector(\".flatpickr-monthSelect-month:nth-child(\" + (targetMonth + 1) + \")\");\n if (month) {\n month.classList.add(\"selected\");\n }\n }\n function selectYear() {\n var selectedDate = fp.selectedDates[0];\n if (selectedDate) {\n selectedDate = new Date(selectedDate);\n selectedDate.setFullYear(fp.currentYear);\n if (fp.config.minDate && selectedDate < fp.config.minDate) {\n selectedDate = fp.config.minDate;\n }\n if (fp.config.maxDate && selectedDate > fp.config.maxDate) {\n selectedDate = fp.config.maxDate;\n }\n fp.currentYear = selectedDate.getFullYear();\n }\n fp.currentYearElement.value = String(fp.currentYear);\n if (fp.rContainer) {\n var months = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n months.forEach(function (month) {\n month.dateObj.setFullYear(fp.currentYear);\n if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||\n (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {\n month.classList.add(\"flatpickr-disabled\");\n }\n else {\n month.classList.remove(\"flatpickr-disabled\");\n }\n });\n }\n setCurrentlySelected();\n }\n function selectMonth(e) {\n e.preventDefault();\n e.stopPropagation();\n var eventTarget = getEventTarget(e);\n if (!(eventTarget instanceof Element))\n return;\n if (eventTarget.classList.contains(\"flatpickr-disabled\"))\n return;\n if (eventTarget.classList.contains(\"notAllowed\"))\n return; // necessary??\n setMonth(eventTarget.dateObj);\n if (fp.config.closeOnSelect) {\n var single = fp.config.mode === \"single\";\n var range = fp.config.mode === \"range\" && fp.selectedDates.length === 2;\n if (single || range)\n fp.close();\n }\n }\n function setMonth(date) {\n var selectedDate = new Date(fp.currentYear, date.getMonth(), date.getDate());\n var selectedDates = [];\n switch (fp.config.mode) {\n case \"single\":\n selectedDates = [selectedDate];\n break;\n case \"multiple\":\n selectedDates.push(selectedDate);\n break;\n case \"range\":\n if (fp.selectedDates.length === 2) {\n selectedDates = [selectedDate];\n }\n else {\n selectedDates = fp.selectedDates.concat([selectedDate]);\n selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n break;\n }\n fp.setDate(selectedDates, true);\n setCurrentlySelected();\n }\n var shifts = {\n 37: -1,\n 39: 1,\n 40: 3,\n 38: -3,\n };\n function onKeyDown(_, __, ___, e) {\n var shouldMove = shifts[e.keyCode] !== undefined;\n if (!shouldMove && e.keyCode !== 13) {\n return;\n }\n if (!fp.rContainer || !self.monthsContainer)\n return;\n var currentlySelected = fp.rContainer.querySelector(\".flatpickr-monthSelect-month.selected\");\n var index = Array.prototype.indexOf.call(self.monthsContainer.children, document.activeElement);\n if (index === -1) {\n var target = currentlySelected || self.monthsContainer.firstElementChild;\n target.focus();\n index = target.$i;\n }\n if (shouldMove) {\n self.monthsContainer.children[(12 + index + shifts[e.keyCode]) % 12].focus();\n }\n else if (e.keyCode === 13 &&\n self.monthsContainer.contains(document.activeElement)) {\n setMonth(document.activeElement.dateObj);\n }\n }\n function closeHook() {\n var _a;\n if (((_a = fp.config) === null || _a === void 0 ? void 0 : _a.mode) === \"range\" && fp.selectedDates.length === 1)\n fp.clear(false);\n if (!fp.selectedDates.length)\n buildMonths();\n }\n // Help the prev/next year nav honor config.minDate (see 3fa5a69)\n function stubCurrentMonth() {\n config._stubbedCurrentMonth = fp._initialDate.getMonth();\n fp._initialDate.setMonth(config._stubbedCurrentMonth);\n fp.currentMonth = config._stubbedCurrentMonth;\n }\n function unstubCurrentMonth() {\n if (!config._stubbedCurrentMonth)\n return;\n fp._initialDate.setMonth(config._stubbedCurrentMonth);\n fp.currentMonth = config._stubbedCurrentMonth;\n delete config._stubbedCurrentMonth;\n }\n function destroyPluginInstance() {\n if (self.monthsContainer !== null) {\n var months = self.monthsContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n for (var index = 0; index < months.length; index++) {\n months[index].removeEventListener(\"click\", selectMonth);\n }\n }\n }\n return {\n onParseConfig: function () {\n fp.config.enableTime = false;\n },\n onValueUpdate: setCurrentlySelected,\n onKeyDown: onKeyDown,\n onReady: [\n stubCurrentMonth,\n clearUnnecessaryDOMElements,\n build,\n bindEvents,\n setCurrentlySelected,\n function () {\n fp.config.onClose.push(closeHook);\n fp.loadedPlugins.push(\"monthSelect\");\n },\n ],\n onDestroy: [\n unstubCurrentMonth,\n destroyPluginInstance,\n function () {\n fp.config.onClose = fp.config.onClose.filter(function (hook) { return hook !== closeHook; });\n },\n ],\n };\n };\n }\n\n return monthSelectPlugin;\n\n})));\n","import FlatpickrController from './flatpickr_controller'\nimport monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js'\n\nexport default class extends FlatpickrController {\n initialize() {\n super.initialize()\n this.config = {\n altInput: true,\n allowInput: true,\n plugins: [\n monthSelectPlugin({\n shorthand: true,\n dateFormat: 'Y-m',\n }),\n ],\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\n/*\n This controller enables/disables the a target element based on targets value.\n */\nexport default class extends Controller {\n static targets = ['button']\n\n declare buttonTarget: HTMLFormElement\n declare hasButtonTarget: Boolean\n\n enableButton() {\n if (!this.hasButtonTarget) {\n console.error('Button must be defined.')\n return\n }\n this.buttonTarget.classList.remove('d-none')\n this.buttonTarget.classList.remove('disabled')\n this.buttonTarget.disabled = false\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['current', 'template']\n\n declare currentTarget: HTMLElement\n declare templateTargets: Array\n\n connect() {\n if (this.templateTargets.length === 0) return\n\n let templateKey = this.templateTargets[0].dataset.template\n this.toggle({ target: { value: templateKey } })\n }\n\n toggle(event) {\n let newSelectedTemplateKey = (event.target as HTMLInputElement).value\n let template = this.templateTargets.find((el) => el.dataset.template === newSelectedTemplateKey)\n this.currentTarget.innerHTML = template.innerHTML\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['amountInput', 'submit']\n declare amountInputTarget: HTMLInputElement\n\n connect() {\n this.parseExpression()\n }\n\n parseExpression() {\n this.removeOldFeedback()\n try {\n if (this.amountInputTarget.value === '') {\n return\n }\n\n const result = parseDecimal(this.amountInputTarget.value)\n\n if (result.isNaN()) {\n return\n }\n\n const oldValue = this.amountInputTarget.value\n this.amountInputTarget.value = new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n .format(result.toNumber())\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n // Simulate input if we have changed anything. This makes sure we update places where we listen to input changes\n // to show calculations immediately\n if (oldValue !== this.amountInputTarget.value) {\n this.amountInputTarget.dispatchEvent(new InputEvent('input'))\n }\n } catch (e) {\n if (e instanceof SyntaxError) {\n if (e.message == 'multiple decimal separators' && !this.hasInvalidFeedback()) {\n this.amountInputTarget.parentNode.appendChild(this.attachCommaPrompt())\n } else {\n console.log(e)\n }\n } else {\n throw e\n }\n }\n }\n\n clear(): void {\n if (this.amountInputTarget.value === '0,00') {\n this.amountInputTarget.value = ''\n }\n }\n\n attachCommaPrompt(): HTMLElement {\n const feedback = document.createElement('div')\n feedback.classList.add('comma-prompt')\n feedback.innerHTML = `${i18n.t(\n 'simple_form.hints.amount.only_single_comma_needed',\n )} \n `\n return feedback\n }\n\n removeOldFeedback(): void {\n let oldFeedback = this.element.querySelector('.comma-prompt')\n if (oldFeedback) {\n oldFeedback.parentNode.removeChild(oldFeedback)\n }\n }\n\n hasInvalidFeedback(): boolean {\n return this.amountInputTarget.classList.contains('is-invalid')\n }\n}\n","import CrudTableController from '../../crud_table_controller'\n\nexport default class extends CrudTableController {\n create(html: string): void {\n this.hideModal()\n window.location.reload()\n }\n\n update(hashid: string, html: string): void {\n window.location.reload() // We just reload page as other board members might have changed role.\n }\n\n destroy(hashid: string): void {\n window.location.reload() // We just reload page as other board members might have changed role.\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['serviceCard', 'serviceHeader', 'holdingCard', 'type', 'holdingHeader', 'description', 'alert']\n\n declare serviceCardTarget: HTMLElement\n declare serviceHeaderTarget: HTMLElement\n declare holdingCardTarget: HTMLElement\n declare holdingHeaderTarget: HTMLElement\n declare typeTarget: HTMLFormElement\n declare descriptionTarget: HTMLFormElement\n declare alertTarget: HTMLElement\n\n connect() {\n if (this.typeTarget.value === 'true') {\n this.setCardActive(this.holdingHeaderTarget)\n } else {\n this.setCardActive(this.serviceCardTarget)\n }\n }\n\n select(event) {\n this.setCardActive(event.target)\n }\n\n setCardActive(target) {\n if (target.closest('[data-found-company--card-select-target=\"serviceCard\"]')) {\n this.serviceCardTarget.classList.add('selected')\n this.holdingCardTarget.classList.remove('selected')\n this.serviceHeaderTarget.classList.remove('d-none')\n this.holdingHeaderTarget.classList.add('d-none')\n this.descriptionTarget.placeholder = i18n.t('found_company.company_type.description_placeholder.service')\n this.descriptionTarget.value = ''\n this.alertTarget.classList.remove('d-none')\n this.typeTarget.value = false\n } else {\n this.holdingCardTarget.classList.add('selected')\n this.serviceCardTarget.classList.remove('selected')\n this.holdingHeaderTarget.classList.remove('d-none')\n this.serviceHeaderTarget.classList.add('d-none')\n this.descriptionTarget.value = i18n.t('found_company.print.statue_holding')\n this.descriptionTarget.placeholder = i18n.t('found_company.company_type.description_placeholder.holding')\n this.alertTarget.classList.add('d-none')\n this.typeTarget.value = true\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { Collapse } from 'bootstrap'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = [\n 'companyName',\n 'businessCheckBox',\n 'businessForm',\n 'email',\n 'noBankCheckbox',\n 'selectedBank',\n 'updateSignatories',\n 'reopenLink',\n 'signatoriesTable',\n ]\n\n // Company name\n declare companyNameTarget: HTMLFormElement\n\n // About you\n declare businessCheckBoxTarget: HTMLFormElement\n declare businessFormTarget: HTMLFormElement\n declare emailTarget: HTMLFormElement\n\n // Select bank\n declare noBankCheckboxTarget: HTMLFormElement\n declare selectedBankTarget: HTMLFormElement\n\n // Awaiting Signatures\n declare updateSignatoriesTarget: HTMLElement\n declare reopenLinkTarget: HTMLElement\n declare signatoriesTableTarget: HTMLElement\n\n select() {\n if (this.businessCheckBoxTarget.checked) {\n this._addClass(this.businessFormTarget, 'd-none')\n } else {\n this._removeClass(this.businessFormTarget, 'd-none')\n }\n }\n\n selectBank(event) {\n let bankCards = document.querySelectorAll('[data-bank-name]')\n let targetCard = event.target.closest('[data-bank-name]')\n if (!targetCard) {\n if (this.noBankCheckboxTarget.checked) {\n this.selectedBankTarget.value = 'NO_BANK'\n } else {\n this.selectedBankTarget.value = ''\n }\n }\n bankCards.forEach((target: HTMLElement) => {\n let bankName = target.getAttribute('data-bank-name')\n let descTarget = document.querySelector(`[data-bank-description=\"${bankName}\"]`)\n if (target === targetCard) {\n if (target.classList.contains('selected')) {\n target.classList.remove('selected')\n descTarget.classList.add('d-none')\n this.selectedBankTarget.value = ''\n } else {\n target.classList.add('selected')\n descTarget.classList.remove('d-none')\n this.selectedBankTarget.value = bankName\n }\n } else {\n target.classList.remove('selected')\n descTarget.classList.add('d-none')\n }\n })\n }\n\n updateDescription(event) {\n $.ajax({\n type: 'PATCH',\n url: `/found_company/submissions/${event.target.dataset.submissionId}`,\n data: { found_company_submission: { current_page: 'company_type', description: event.target.value } },\n dataType: 'json',\n })\n }\n\n async updateEnvelope(event) {\n if (this.targets.has('updateSignatories')) {\n this.updateSignatoriesTarget.classList.add('fa-spin')\n }\n if (this.targets.has('signatoriesTable')) {\n this.signatoriesTableTarget.childNodes.forEach((row) => {\n let text = $(row).find('[data-text-id]')\n text.html(i18n.t('found_company.awaiting_signatures.updating'))\n $(row).find('svg').removeClass('fa-times-circle')\n $(row).find('svg').addClass('fa-sync fa-spin')\n })\n }\n\n let result = await $.ajax({\n type: 'GET',\n url: `/found_company/submissions/${event.target.dataset.submissionId}/update_envelope`,\n })\n let model = JSON.parse(result)\n model.signatories.forEach((signatory) => {\n let row = document.querySelector(`[data-hashid=\"signatory-${signatory.id}\"]`)\n let text = $(row).find('[data-text-id]')\n $(row).find('svg').removeClass('fa-sync fa-spin')\n if (signatory.signature_status == 'signed') {\n text.html(i18n.t('found_company.awaiting_signatures.signed'))\n $(row).find('svg').addClass('fa-check-circle')\n $(row).find('svg').removeClass('text-danger')\n $(row).find('svg').addClass('text-success')\n } else if (signatory.signature_status == 'rejected') {\n text.html(i18n.t('found_company.awaiting_signatures.rejected'))\n $(row).find('td.text-center').html(signatory.signature_comment)\n $(row).find('svg').addClass('fa-exclamation-triangle')\n this.reopenLinkTarget.classList.remove('d-none')\n this.updateSignatoriesTarget.parentElement.classList.add('d-none')\n } else {\n text.html(i18n.t('found_company.awaiting_signatures.not_signed'))\n $(row).find('svg').addClass('fa-times-circle')\n }\n })\n if (model.envelope_status == 'signed') {\n window.location.href = `/found_company/submissions/${event.target.dataset.submissionId}/edit`\n }\n if (this.targets.has('updateSignatories')) {\n this.updateSignatoriesTarget.classList.remove('fa-spin')\n }\n }\n\n setEmailForSignIn() {\n let path = '/found_company/authentications'\n document.cookie = `found_company_sign_in_email=${this.emailTarget.value}; path=${path}`\n // We set the sign up cookie so we can redirect the user to the found company sign in page.\n document.cookie = `signup=found_company; path=/`\n }\n\n showContinueSection() {\n let section = Collapse.getOrCreateInstance(document.querySelector('#continueSection'))\n if (this.companyNameTarget.value.trim() !== '' && this.companyNameTarget.value.trim().length >= 3) {\n section.show()\n } else {\n section.hide()\n }\n }\n\n _addClass(target, classes) {\n target.classList.add(classes)\n }\n\n _removeClass(target, classes) {\n target.classList.remove(classes)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['card']\n\n declare cardTarget: HTMLElement\n\n gdprClose(): void {\n this.hide()\n }\n\n gdprConsent(): void {\n document.cookie = 'gdpr_consent=yes; path=/'\n this.hide()\n location.reload()\n }\n\n gdprDissent(): void {\n document.cookie = 'gdpr_consent=no; path=/'\n this.hide()\n }\n\n hide(): void {\n this.cardTarget.classList.add('d-none')\n }\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError = /** @class */ (function (_super) {\n __extends(TypesenseError, _super);\n // Source: https://stackoverflow.com/a/58417721/123545\n function TypesenseError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.name = _newTarget.name;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TypesenseError;\n}(Error));\nexports.default = TypesenseError;\n//# sourceMappingURL=TypesenseError.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar HTTPError = /** @class */ (function (_super) {\n __extends(HTTPError, _super);\n function HTTPError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return HTTPError;\n}(TypesenseError_1.default));\nexports.default = HTTPError;\n//# sourceMappingURL=HTTPError.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar MissingConfigurationError = /** @class */ (function (_super) {\n __extends(MissingConfigurationError, _super);\n function MissingConfigurationError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MissingConfigurationError;\n}(TypesenseError_1.default));\nexports.default = MissingConfigurationError;\n//# sourceMappingURL=MissingConfigurationError.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar ObjectAlreadyExists = /** @class */ (function (_super) {\n __extends(ObjectAlreadyExists, _super);\n function ObjectAlreadyExists() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ObjectAlreadyExists;\n}(TypesenseError_1.default));\nexports.default = ObjectAlreadyExists;\n//# sourceMappingURL=ObjectAlreadyExists.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar ObjectNotFound = /** @class */ (function (_super) {\n __extends(ObjectNotFound, _super);\n function ObjectNotFound() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ObjectNotFound;\n}(TypesenseError_1.default));\nexports.default = ObjectNotFound;\n//# sourceMappingURL=ObjectNotFound.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar ObjectUnprocessable = /** @class */ (function (_super) {\n __extends(ObjectUnprocessable, _super);\n function ObjectUnprocessable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ObjectUnprocessable;\n}(TypesenseError_1.default));\nexports.default = ObjectUnprocessable;\n//# sourceMappingURL=ObjectUnprocessable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar RequestMalformed = /** @class */ (function (_super) {\n __extends(RequestMalformed, _super);\n function RequestMalformed() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return RequestMalformed;\n}(TypesenseError_1.default));\nexports.default = RequestMalformed;\n//# sourceMappingURL=RequestMalformed.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar RequestUnauthorized = /** @class */ (function (_super) {\n __extends(RequestUnauthorized, _super);\n function RequestUnauthorized() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return RequestUnauthorized;\n}(TypesenseError_1.default));\nexports.default = RequestUnauthorized;\n//# sourceMappingURL=RequestUnauthorized.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar ServerError = /** @class */ (function (_super) {\n __extends(ServerError, _super);\n function ServerError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return ServerError;\n}(TypesenseError_1.default));\nexports.default = ServerError;\n//# sourceMappingURL=ServerError.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nvar ImportError = /** @class */ (function (_super) {\n __extends(ImportError, _super);\n function ImportError(message, importResults) {\n var _this = _super.call(this, message) || this;\n _this.importResults = importResults;\n return _this;\n }\n return ImportError;\n}(TypesenseError_1.default));\nexports.default = ImportError;\n//# sourceMappingURL=ImportError.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImportError = exports.TypesenseError = exports.ServerError = exports.RequestUnauthorized = exports.RequestMalformed = exports.ObjectUnprocessable = exports.ObjectNotFound = exports.ObjectAlreadyExists = exports.MissingConfigurationError = exports.HTTPError = void 0;\nvar HTTPError_1 = __importDefault(require(\"./HTTPError\"));\nexports.HTTPError = HTTPError_1.default;\nvar MissingConfigurationError_1 = __importDefault(require(\"./MissingConfigurationError\"));\nexports.MissingConfigurationError = MissingConfigurationError_1.default;\nvar ObjectAlreadyExists_1 = __importDefault(require(\"./ObjectAlreadyExists\"));\nexports.ObjectAlreadyExists = ObjectAlreadyExists_1.default;\nvar ObjectNotFound_1 = __importDefault(require(\"./ObjectNotFound\"));\nexports.ObjectNotFound = ObjectNotFound_1.default;\nvar ObjectUnprocessable_1 = __importDefault(require(\"./ObjectUnprocessable\"));\nexports.ObjectUnprocessable = ObjectUnprocessable_1.default;\nvar RequestMalformed_1 = __importDefault(require(\"./RequestMalformed\"));\nexports.RequestMalformed = RequestMalformed_1.default;\nvar RequestUnauthorized_1 = __importDefault(require(\"./RequestUnauthorized\"));\nexports.RequestUnauthorized = RequestUnauthorized_1.default;\nvar ServerError_1 = __importDefault(require(\"./ServerError\"));\nexports.ServerError = ServerError_1.default;\nvar ImportError_1 = __importDefault(require(\"./ImportError\"));\nexports.ImportError = ImportError_1.default;\nvar TypesenseError_1 = __importDefault(require(\"./TypesenseError\"));\nexports.TypesenseError = TypesenseError_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\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};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar logger = __importStar(require(\"loglevel\"));\nvar Errors_1 = require(\"./Errors\");\nvar Configuration = /** @class */ (function () {\n function Configuration(options) {\n var _this = this;\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map(function (node) { return _this.setDefaultPathInNode(node); })\n .map(function (node) { return _this.setDefaultPortInNode(node); })\n .map(function (node) { return (__assign({}, node)); }); // Make a deep copy\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n options.numRetries ||\n this.nodes.length + (this.nearestNode == null ? 0 : 1) ||\n 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n this.additionalHeaders = options.additionalHeaders;\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n this.showDeprecationWarnings(options);\n this.validate();\n }\n Configuration.prototype.validate = function () {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new Errors_1.MissingConfigurationError(\"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\");\n }\n if (this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)) {\n throw new Errors_1.MissingConfigurationError(\"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\");\n }\n if (this.apiKey == null) {\n throw new Errors_1.MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n return true;\n };\n Configuration.prototype.validateNodes = function () {\n var _this = this;\n return this.nodes.some(function (node) {\n return _this.isNodeMissingAnyParameters(node);\n });\n };\n Configuration.prototype.isNodeMissingAnyParameters = function (node) {\n return (![\"protocol\", \"host\", \"port\", \"path\"].every(function (key) {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null);\n };\n Configuration.prototype.setDefaultPathInNode = function (node) {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n };\n Configuration.prototype.setDefaultPortInNode = function (node) {\n if (node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n };\n Configuration.prototype.showDeprecationWarnings = function (options) {\n if (options.timeoutSeconds) {\n this.logger.warn(\"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\");\n }\n if (options.masterNode) {\n this.logger.warn(\"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\");\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\");\n }\n };\n Configuration.prototype.shuffleArray = function (array) {\n var _a;\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n _a = [array[j], array[i]], array[i] = _a[0], array[j] = _a[1];\n }\n };\n return Configuration;\n}());\nexports.default = Configuration;\n//# sourceMappingURL=Configuration.js.map","/*! Axios v1.8.2 Copyright (c) 2025 Matt Zabriskie and contributors */\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.8.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nvar Errors_1 = require(\"./Errors\");\nvar TypesenseError_1 = __importDefault(require(\"./Errors/TypesenseError\"));\nvar APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nvar HEALTHY = true;\nvar UNHEALTHY = false;\nvar ApiCall = /** @class */ (function () {\n function ApiCall(configuration) {\n this.configuration = configuration;\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n this.logger = this.configuration.logger;\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n ApiCall.prototype.get = function (endpoint, queryParameters, _a) {\n if (queryParameters === void 0) { queryParameters = {}; }\n var _b = _a === void 0 ? {} : _a, _c = _b.abortSignal, abortSignal = _c === void 0 ? null : _c, _d = _b.responseType, responseType = _d === void 0 ? undefined : _d;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_e) {\n return [2 /*return*/, this.performRequest(\"get\", endpoint, {\n queryParameters: queryParameters,\n abortSignal: abortSignal,\n responseType: responseType,\n })];\n });\n });\n };\n ApiCall.prototype.delete = function (endpoint, queryParameters) {\n if (queryParameters === void 0) { queryParameters = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.performRequest(\"delete\", endpoint, { queryParameters: queryParameters })];\n });\n });\n };\n ApiCall.prototype.post = function (endpoint, bodyParameters, queryParameters, additionalHeaders) {\n if (bodyParameters === void 0) { bodyParameters = {}; }\n if (queryParameters === void 0) { queryParameters = {}; }\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.performRequest(\"post\", endpoint, {\n queryParameters: queryParameters,\n bodyParameters: bodyParameters,\n additionalHeaders: additionalHeaders,\n })];\n });\n });\n };\n ApiCall.prototype.put = function (endpoint, bodyParameters, queryParameters) {\n if (bodyParameters === void 0) { bodyParameters = {}; }\n if (queryParameters === void 0) { queryParameters = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.performRequest(\"put\", endpoint, {\n queryParameters: queryParameters,\n bodyParameters: bodyParameters,\n })];\n });\n });\n };\n ApiCall.prototype.patch = function (endpoint, bodyParameters, queryParameters) {\n if (bodyParameters === void 0) { bodyParameters = {}; }\n if (queryParameters === void 0) { queryParameters = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.performRequest(\"patch\", endpoint, {\n queryParameters: queryParameters,\n bodyParameters: bodyParameters,\n })];\n });\n });\n };\n ApiCall.prototype.performRequest = function (requestType, endpoint, _a) {\n var _b, _c, _d;\n var _e = _a.queryParameters, queryParameters = _e === void 0 ? null : _e, _f = _a.bodyParameters, bodyParameters = _f === void 0 ? null : _f, _g = _a.additionalHeaders, additionalHeaders = _g === void 0 ? {} : _g, _h = _a.abortSignal, abortSignal = _h === void 0 ? null : _h, _j = _a.responseType, responseType = _j === void 0 ? undefined : _j, _k = _a.skipConnectionTimeout, skipConnectionTimeout = _k === void 0 ? false : _k;\n return __awaiter(this, void 0, void 0, function () {\n var requestNumber, lastException, _loop_1, this_1, numTries, state_1;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n this.configuration.validate();\n requestNumber = Date.now();\n this.logger.debug(\"Request #\".concat(requestNumber, \": Performing \").concat(requestType.toUpperCase(), \" request: \").concat(endpoint));\n _loop_1 = function (numTries) {\n var node, abortListener, requestOptions, cancelToken, source_1, response, error_1;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n node = this_1.getNextNode(requestNumber);\n this_1.logger.debug(\"Request #\".concat(requestNumber, \": Attempting \").concat(requestType.toUpperCase(), \" request Try #\").concat(numTries, \" to Node \").concat(node.index));\n if (abortSignal && abortSignal.aborted) {\n return [2 /*return*/, { value: Promise.reject(new Error(\"Request aborted by caller.\")) }];\n }\n abortListener = void 0;\n _m.label = 1;\n case 1:\n _m.trys.push([1, 3, 5, 6]);\n requestOptions = {\n method: requestType,\n url: this_1.uriFor(endpoint, node),\n headers: Object.assign({}, this_1.defaultHeaders(), additionalHeaders, this_1.additionalUserHeaders),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n responseType: responseType,\n validateStatus: function (status) {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n function (data, headers) {\n var transformedData = data;\n if (headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this_1.connectionTimeoutSeconds * 1000;\n }\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n if (this_1.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this_1.apiKey;\n }\n if (this_1.configuration.httpAgent) {\n this_1.logger.debug(\"Request #\".concat(requestNumber, \": Using custom httpAgent\"));\n requestOptions.httpAgent = this_1.configuration.httpAgent;\n }\n if (this_1.configuration.httpsAgent) {\n this_1.logger.debug(\"Request #\".concat(requestNumber, \": Using custom httpsAgent\"));\n requestOptions.httpsAgent = this_1.configuration.httpsAgent;\n }\n if (bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))) {\n requestOptions.data = bodyParameters;\n }\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n cancelToken = axios_1.default.CancelToken;\n source_1 = cancelToken.source();\n abortListener = function () { return source_1.cancel(); };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source_1.token;\n }\n return [4 /*yield*/, (0, axios_1.default)(requestOptions)];\n case 2:\n response = _m.sent();\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this_1.setNodeHealthcheck(node, HEALTHY);\n }\n this_1.logger.debug(\"Request #\".concat(requestNumber, \": Request to Node \").concat(node.index, \" was made. Response Code was \").concat(response.status, \".\"));\n if (response.status >= 200 && response.status < 300) {\n return [2 /*return*/, { value: Promise.resolve(response.data) }];\n }\n else if (response.status < 500) {\n return [2 /*return*/, { value: Promise.reject(this_1.customErrorForResponse(response, (_b = response.data) === null || _b === void 0 ? void 0 : _b.message)) }];\n }\n else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this_1.customErrorForResponse(response, (_c = response.data) === null || _c === void 0 ? void 0 : _c.message);\n }\n return [3 /*break*/, 6];\n case 3:\n error_1 = _m.sent();\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n this_1.setNodeHealthcheck(node, UNHEALTHY);\n lastException = error_1;\n this_1.logger.warn(\"Request #\".concat(requestNumber, \": Request to Node \").concat(node.index, \" failed due to \\\"\").concat(error_1.code, \" \").concat(error_1.message).concat(error_1.response == null\n ? \"\"\n : \" - \" + JSON.stringify((_d = error_1.response) === null || _d === void 0 ? void 0 : _d.data), \"\\\"\"));\n // this.logger.debug(error.stack)\n this_1.logger.warn(\"Request #\".concat(requestNumber, \": Sleeping for \").concat(this_1.retryIntervalSeconds, \"s and then retrying request...\"));\n return [4 /*yield*/, this_1.timer(this_1.retryIntervalSeconds)];\n case 4:\n _m.sent();\n return [3 /*break*/, 6];\n case 5:\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n numTries = 1;\n _l.label = 1;\n case 1:\n if (!(numTries <= this.numRetriesPerRequest + 1)) return [3 /*break*/, 4];\n return [5 /*yield**/, _loop_1(numTries)];\n case 2:\n state_1 = _l.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n _l.label = 3;\n case 3:\n numTries++;\n return [3 /*break*/, 1];\n case 4:\n this.logger.debug(\"Request #\".concat(requestNumber, \": No retries left. Raising last error\"));\n return [2 /*return*/, Promise.reject(lastException)];\n }\n });\n });\n };\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n ApiCall.prototype.getNextNode = function (requestNumber) {\n if (requestNumber === void 0) { requestNumber = 0; }\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\"Request #\".concat(requestNumber, \": Nodes Health: Node \").concat(this.nearestNode.index, \" is \").concat(this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"));\n if (this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) {\n this.logger.debug(\"Request #\".concat(requestNumber, \": Updated current node to Node \").concat(this.nearestNode.index));\n return this.nearestNode;\n }\n this.logger.debug(\"Request #\".concat(requestNumber, \": Falling back to individual nodes\"));\n }\n // Fallback to nodes as usual\n this.logger.debug(\"Request #\".concat(requestNumber, \": Nodes Health: \").concat(this.nodes\n .map(function (node) {\n return \"Node \".concat(node.index, \" is \").concat(node.isHealthy === true ? \"Healthy\" : \"Unhealthy\");\n })\n .join(\" || \")));\n var candidateNode = this.nodes[0];\n for (var i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)) {\n this.logger.debug(\"Request #\".concat(requestNumber, \": Updated current node to Node \").concat(candidateNode.index));\n return candidateNode;\n }\n }\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\"Request #\".concat(requestNumber, \": No healthy nodes were found. Returning the next node, Node \").concat(candidateNode.index));\n return candidateNode;\n };\n ApiCall.prototype.nodeDueForHealthcheck = function (node, requestNumber) {\n if (requestNumber === void 0) { requestNumber = 0; }\n var isDueForHealthcheck = Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\"Request #\".concat(requestNumber, \": Node \").concat(node.index, \" has exceeded healtcheckIntervalSeconds of \").concat(this.healthcheckIntervalSeconds, \". Adding it back into rotation.\"));\n }\n return isDueForHealthcheck;\n };\n ApiCall.prototype.initializeMetadataForNodes = function () {\n var _this = this;\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n this.nodes.forEach(function (node, i) {\n node.index = i;\n _this.setNodeHealthcheck(node, HEALTHY);\n });\n };\n ApiCall.prototype.setNodeHealthcheck = function (node, isHealthy) {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n };\n ApiCall.prototype.uriFor = function (endpoint, node) {\n if (node.url != null) {\n return \"\".concat(node.url).concat(endpoint);\n }\n return \"\".concat(node.protocol, \"://\").concat(node.host, \":\").concat(node.port).concat(node.path).concat(endpoint);\n };\n ApiCall.prototype.defaultHeaders = function () {\n var defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n };\n ApiCall.prototype.timer = function (seconds) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) { return setTimeout(resolve, seconds * 1000); })];\n });\n });\n };\n ApiCall.prototype.customErrorForResponse = function (response, messageFromServer) {\n var errorMessage = \"Request failed with HTTP code \".concat(response.status);\n if (typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\") {\n errorMessage += \" | Server said: \".concat(messageFromServer);\n }\n var error = new TypesenseError_1.default(errorMessage);\n if (response.status === 400) {\n error = new Errors_1.RequestMalformed(errorMessage);\n }\n else if (response.status === 401) {\n error = new Errors_1.RequestUnauthorized(errorMessage);\n }\n else if (response.status === 404) {\n error = new Errors_1.ObjectNotFound(errorMessage);\n }\n else if (response.status === 409) {\n error = new Errors_1.ObjectAlreadyExists(errorMessage);\n }\n else if (response.status === 422) {\n error = new Errors_1.ObjectUnprocessable(errorMessage);\n }\n else if (response.status >= 500 && response.status <= 599) {\n error = new Errors_1.ServerError(errorMessage);\n }\n else {\n error = new Errors_1.HTTPError(errorMessage);\n }\n error.httpStatus = response.status;\n return error;\n };\n return ApiCall;\n}());\nexports.default = ApiCall;\n//# sourceMappingURL=ApiCall.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/collections\";\nvar Collections = /** @class */ (function () {\n function Collections(apiCall) {\n this.apiCall = apiCall;\n }\n Collections.prototype.create = function (schema, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.post(RESOURCEPATH, schema, options)];\n });\n });\n };\n Collections.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n Object.defineProperty(Collections, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Collections;\n}());\nexports.default = Collections;\n//# sourceMappingURL=Collections.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar defaultCacheResponseForSeconds = 2 * 60;\nvar defaultMaxSize = 100;\nvar RequestWithCache = /** @class */ (function () {\n function RequestWithCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n RequestWithCache.prototype.clearCache = function () {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n };\n // Todo: should probably be passed a callback instead, or an apiCall instance. Types are messy this way\n RequestWithCache.prototype.perform = function (requestContext, requestFunction, requestFunctionArguments, cacheOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, cacheResponseForSeconds, _b, maxSize, isCacheDisabled, requestFunctionArgumentsJSON, cacheEntry, now, isEntryValid, cachePromiseEntry, isEntryValid, responsePromise, response, isCacheOverMaxSize, oldestEntry, isResponsePromiseCacheOverMaxSize, oldestEntry;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = cacheOptions.cacheResponseForSeconds, cacheResponseForSeconds = _a === void 0 ? defaultCacheResponseForSeconds : _a, _b = cacheOptions.maxSize, maxSize = _b === void 0 ? defaultMaxSize : _b;\n isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0;\n if (isCacheDisabled) {\n return [2 /*return*/, requestFunction.call.apply(requestFunction, __spreadArray([requestContext], requestFunctionArguments, false))];\n }\n requestFunctionArgumentsJSON = JSON.stringify(requestFunctionArguments);\n cacheEntry = this.responseCache.get(requestFunctionArgumentsJSON);\n now = Date.now();\n if (cacheEntry) {\n isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestFunctionArgumentsJSON);\n this.responseCache.set(requestFunctionArgumentsJSON, cacheEntry);\n return [2 /*return*/, Promise.resolve(cacheEntry.response)];\n }\n else {\n this.responseCache.delete(requestFunctionArgumentsJSON);\n }\n }\n cachePromiseEntry = this.responsePromiseCache.get(requestFunctionArgumentsJSON);\n if (cachePromiseEntry) {\n isEntryValid = now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestFunctionArgumentsJSON);\n this.responsePromiseCache.set(requestFunctionArgumentsJSON, cachePromiseEntry);\n return [2 /*return*/, cachePromiseEntry.responsePromise];\n }\n else {\n this.responsePromiseCache.delete(requestFunctionArgumentsJSON);\n }\n }\n responsePromise = requestFunction.call.apply(requestFunction, __spreadArray([requestContext], requestFunctionArguments, false));\n this.responsePromiseCache.set(requestFunctionArgumentsJSON, {\n requestTimestamp: now,\n responsePromise: responsePromise,\n });\n return [4 /*yield*/, responsePromise];\n case 1:\n response = _c.sent();\n this.responseCache.set(requestFunctionArgumentsJSON, {\n requestTimestamp: now,\n response: response,\n });\n isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n oldestEntry = this.responseCache.keys().next().value;\n this.responseCache.delete(oldestEntry);\n }\n isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n oldestEntry = this.responsePromiseCache.keys().next().value;\n this.responsePromiseCache.delete(oldestEntry);\n }\n return [2 /*return*/, response];\n }\n });\n });\n };\n return RequestWithCache;\n}());\nexports.default = RequestWithCache;\n//# sourceMappingURL=RequestWithCache.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchOnlyDocuments = void 0;\nvar RequestWithCache_1 = __importDefault(require(\"./RequestWithCache\"));\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar RESOURCEPATH = \"/documents\";\nvar SearchOnlyDocuments = /** @class */ (function () {\n function SearchOnlyDocuments(collectionName, apiCall, configuration) {\n this.collectionName = collectionName;\n this.apiCall = apiCall;\n this.configuration = configuration;\n this.requestWithCache = new RequestWithCache_1.default();\n }\n SearchOnlyDocuments.prototype.clearCache = function () {\n this.requestWithCache.clearCache();\n };\n SearchOnlyDocuments.prototype.search = function (searchParameters, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _c === void 0 ? this.configuration\n .cacheSearchResultsForSeconds : _c, _d = _b.abortSignal, abortSignal = _d === void 0 ? null : _d;\n return __awaiter(this, void 0, void 0, function () {\n var additionalQueryParams, key, queryParams;\n return __generator(this, function (_e) {\n additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n for (key in searchParameters) {\n if (Array.isArray(searchParameters[key])) {\n additionalQueryParams[key] = searchParameters[key].join(\",\");\n }\n }\n queryParams = Object.assign({}, searchParameters, additionalQueryParams);\n return [2 /*return*/, this.requestWithCache.perform(this.apiCall, this.apiCall.get, [this.endpointPath(\"search\"), queryParams, { abortSignal: abortSignal }], {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n })];\n });\n });\n };\n SearchOnlyDocuments.prototype.endpointPath = function (operation) {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(SearchOnlyDocuments, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return SearchOnlyDocuments;\n}());\nexports.SearchOnlyDocuments = SearchOnlyDocuments;\n//# sourceMappingURL=SearchOnlyDocuments.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Errors_1 = require(\"./Errors\");\nvar SearchOnlyDocuments_1 = require(\"./SearchOnlyDocuments\");\nvar Documents = /** @class */ (function (_super) {\n __extends(Documents, _super);\n function Documents(collectionName, apiCall, configuration) {\n return _super.call(this, collectionName, apiCall, configuration) || this;\n }\n Documents.prototype.create = function (document, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!document)\n throw new Error(\"No document provided\");\n return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, options)];\n });\n });\n };\n Documents.prototype.upsert = function (document, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!document)\n throw new Error(\"No document provided\");\n return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: \"upsert\" }))];\n });\n });\n };\n Documents.prototype.update = function (document, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!document)\n throw new Error(\"No document provided\");\n if (options[\"filter_by\"] != null) {\n return [2 /*return*/, this.apiCall.patch(this.endpointPath(), document, Object.assign({}, options))];\n }\n else {\n return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: \"update\" }))];\n }\n return [2 /*return*/];\n });\n });\n };\n Documents.prototype.delete = function (query) {\n if (query === void 0) { query = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath(), query)];\n });\n });\n };\n Documents.prototype.createMany = function (documents, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.configuration.logger.warn(\"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\");\n return [2 /*return*/, this.import(documents, options)];\n });\n });\n };\n Documents.prototype.import = function (documents, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var documentsInJSONLFormat, resultsInJSONLFormat, resultsInJSONFormat, failedItems;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Array.isArray(documents)) {\n try {\n documentsInJSONLFormat = documents\n .map(function (document) { return JSON.stringify(document); })\n .join(\"\\n\");\n }\n catch (error) {\n // if rangeerror, throw custom error message\n if (RangeError instanceof error &&\n (error === null || error === void 0 ? void 0 : error.includes(\"Too many properties to enumerate\"))) {\n throw new Error(\"\".concat(error, \"\\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\\n\\n Please try reducing the number of keys in your document, or using CURL to import your data.\\n \"));\n }\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n }\n else {\n documentsInJSONLFormat = documents;\n }\n return [4 /*yield*/, this.apiCall.performRequest(\"post\", this.endpointPath(\"import\"), {\n queryParameters: options,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n })];\n case 1:\n resultsInJSONLFormat = _a.sent();\n if (Array.isArray(documents)) {\n resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map(function (r) { return JSON.parse(r); });\n failedItems = resultsInJSONFormat.filter(function (r) { return r.success === false; });\n if (failedItems.length > 0) {\n throw new Errors_1.ImportError(\"\".concat(resultsInJSONFormat.length - failedItems.length, \" documents imported successfully, \").concat(failedItems.length, \" documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document.\"), resultsInJSONFormat);\n }\n else {\n return [2 /*return*/, resultsInJSONFormat];\n }\n }\n else {\n return [2 /*return*/, resultsInJSONLFormat];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n Documents.prototype.export = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath(\"export\"), options)];\n });\n });\n };\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n Documents.prototype.exportStream = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n })];\n });\n });\n };\n return Documents;\n}(SearchOnlyDocuments_1.SearchOnlyDocuments));\nexports.default = Documents;\n//# sourceMappingURL=Documents.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar RESOURCEPATH = \"/overrides\";\nvar Overrides = /** @class */ (function () {\n function Overrides(collectionName, apiCall) {\n this.collectionName = collectionName;\n this.apiCall = apiCall;\n }\n Overrides.prototype.upsert = function (overrideId, params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(overrideId), params)];\n });\n });\n };\n Overrides.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Overrides.prototype.endpointPath = function (operation) {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(Overrides.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(Overrides, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Overrides;\n}());\nexports.default = Overrides;\n//# sourceMappingURL=Overrides.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar Overrides_1 = __importDefault(require(\"./Overrides\"));\nvar Override = /** @class */ (function () {\n function Override(collectionName, overrideId, apiCall) {\n this.collectionName = collectionName;\n this.overrideId = overrideId;\n this.apiCall = apiCall;\n }\n Override.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Override.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Override.prototype.endpointPath = function () {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(Overrides_1.default.RESOURCEPATH, \"/\").concat(this.overrideId);\n };\n return Override;\n}());\nexports.default = Override;\n//# sourceMappingURL=Override.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar RESOURCEPATH = \"/synonyms\";\nvar Synonyms = /** @class */ (function () {\n function Synonyms(collectionName, apiCall) {\n this.collectionName = collectionName;\n this.apiCall = apiCall;\n }\n Synonyms.prototype.upsert = function (synonymId, params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(synonymId), params)];\n });\n });\n };\n Synonyms.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Synonyms.prototype.endpointPath = function (operation) {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(Synonyms.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(Synonyms, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Synonyms;\n}());\nexports.default = Synonyms;\n//# sourceMappingURL=Synonyms.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar Synonyms_1 = __importDefault(require(\"./Synonyms\"));\nvar Synonym = /** @class */ (function () {\n function Synonym(collectionName, synonymId, apiCall) {\n this.collectionName = collectionName;\n this.synonymId = synonymId;\n this.apiCall = apiCall;\n }\n Synonym.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Synonym.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Synonym.prototype.endpointPath = function () {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(Synonyms_1.default.RESOURCEPATH, \"/\").concat(this.synonymId);\n };\n return Synonym;\n}());\nexports.default = Synonym;\n//# sourceMappingURL=Synonym.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Document = void 0;\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar Documents_1 = __importDefault(require(\"./Documents\"));\nvar Document = /** @class */ (function () {\n function Document(collectionName, documentId, apiCall) {\n this.collectionName = collectionName;\n this.documentId = documentId;\n this.apiCall = apiCall;\n }\n Document.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Document.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Document.prototype.update = function (partialDocument, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.patch(this.endpointPath(), partialDocument, options)];\n });\n });\n };\n Document.prototype.endpointPath = function () {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.collectionName).concat(Documents_1.default.RESOURCEPATH, \"/\").concat(this.documentId);\n };\n return Document;\n}());\nexports.Document = Document;\n//# sourceMappingURL=Document.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar Documents_1 = __importDefault(require(\"./Documents\"));\nvar Errors_1 = require(\"./Errors\");\nvar Overrides_1 = __importDefault(require(\"./Overrides\"));\nvar Override_1 = __importDefault(require(\"./Override\"));\nvar Synonyms_1 = __importDefault(require(\"./Synonyms\"));\nvar Synonym_1 = __importDefault(require(\"./Synonym\"));\nvar Document_1 = require(\"./Document\");\nvar Collection = /** @class */ (function () {\n function Collection(name, apiCall, configuration) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n this.individualDocuments = {};\n this.individualOverrides = {};\n this.individualSynonyms = {};\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n this._documents = new Documents_1.default(this.name, this.apiCall, this.configuration);\n this._overrides = new Overrides_1.default(this.name, this.apiCall);\n this._synonyms = new Synonyms_1.default(this.name, this.apiCall);\n }\n Collection.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Collection.prototype.update = function (schema) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.patch(this.endpointPath(), schema)];\n });\n });\n };\n Collection.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Collection.prototype.exists = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.retrieve()];\n case 1:\n _a.sent();\n return [2 /*return*/, true];\n case 2:\n e_1 = _a.sent();\n if (e_1 instanceof Errors_1.ObjectNotFound)\n return [2 /*return*/, false];\n throw e_1;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n Collection.prototype.documents = function (documentId) {\n if (!documentId) {\n return this._documents;\n }\n else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document_1.Document(this.name, documentId, this.apiCall);\n }\n return this.individualDocuments[documentId];\n }\n };\n Collection.prototype.overrides = function (overrideId) {\n if (overrideId === undefined) {\n return this._overrides;\n }\n else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override_1.default(this.name, overrideId, this.apiCall);\n }\n return this.individualOverrides[overrideId];\n }\n };\n Collection.prototype.synonyms = function (synonymId) {\n if (synonymId === undefined) {\n return this._synonyms;\n }\n else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym_1.default(this.name, synonymId, this.apiCall);\n }\n return this.individualSynonyms[synonymId];\n }\n };\n Collection.prototype.endpointPath = function () {\n return \"\".concat(Collections_1.default.RESOURCEPATH, \"/\").concat(this.name);\n };\n return Collection;\n}());\nexports.default = Collection;\n//# sourceMappingURL=Collection.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/aliases\";\nvar Aliases = /** @class */ (function () {\n function Aliases(apiCall) {\n this.apiCall = apiCall;\n }\n Aliases.prototype.upsert = function (name, mapping) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(name), mapping)];\n });\n });\n };\n Aliases.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n Aliases.prototype.endpointPath = function (aliasName) {\n return \"\".concat(Aliases.RESOURCEPATH, \"/\").concat(aliasName);\n };\n Object.defineProperty(Aliases, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Aliases;\n}());\nexports.default = Aliases;\n//# sourceMappingURL=Aliases.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Aliases_1 = __importDefault(require(\"./Aliases\"));\nvar Alias = /** @class */ (function () {\n function Alias(name, apiCall) {\n this.name = name;\n this.apiCall = apiCall;\n }\n Alias.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Alias.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Alias.prototype.endpointPath = function () {\n return \"\".concat(Aliases_1.default.RESOURCEPATH, \"/\").concat(this.name);\n };\n return Alias;\n}());\nexports.default = Alias;\n//# sourceMappingURL=Alias.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar crypto_1 = require(\"crypto\");\nvar RESOURCEPATH = \"/keys\";\nvar Keys = /** @class */ (function () {\n function Keys(apiCall) {\n this.apiCall = apiCall;\n this.apiCall = apiCall;\n }\n Keys.prototype.create = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.post(Keys.RESOURCEPATH, params)];\n });\n });\n };\n Keys.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n Keys.prototype.generateScopedSearchKey = function (searchKey, parameters) {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when usined with the search endpoint.\n var paramsJSON = JSON.stringify(parameters);\n var digest = Buffer.from((0, crypto_1.createHmac)(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"));\n var keyPrefix = searchKey.substr(0, 4);\n var rawScopedKey = \"\".concat(digest).concat(keyPrefix).concat(paramsJSON);\n return Buffer.from(rawScopedKey).toString(\"base64\");\n };\n Object.defineProperty(Keys, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Keys;\n}());\nexports.default = Keys;\n//# sourceMappingURL=Keys.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Keys_1 = __importDefault(require(\"./Keys\"));\nvar Key = /** @class */ (function () {\n function Key(id, apiCall) {\n this.id = id;\n this.apiCall = apiCall;\n }\n Key.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Key.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Key.prototype.endpointPath = function () {\n return \"\".concat(Keys_1.default.RESOURCEPATH, \"/\").concat(this.id);\n };\n return Key;\n}());\nexports.default = Key;\n//# sourceMappingURL=Key.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/debug\";\nvar Debug = /** @class */ (function () {\n function Debug(apiCall) {\n this.apiCall = apiCall;\n }\n Debug.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n return Debug;\n}());\nexports.default = Debug;\n//# sourceMappingURL=Debug.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/metrics.json\";\nvar Metrics = /** @class */ (function () {\n function Metrics(apiCall) {\n this.apiCall = apiCall;\n }\n Metrics.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n return Metrics;\n}());\nexports.default = Metrics;\n//# sourceMappingURL=Metrics.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/health\";\nvar Health = /** @class */ (function () {\n function Health(apiCall) {\n this.apiCall = apiCall;\n }\n Health.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n return Health;\n}());\nexports.default = Health;\n//# sourceMappingURL=Health.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/operations\";\nvar Operations = /** @class */ (function () {\n function Operations(apiCall) {\n this.apiCall = apiCall;\n }\n Operations.prototype.perform = function (operationName, queryParameters) {\n if (queryParameters === void 0) { queryParameters = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.post(\"\".concat(RESOURCEPATH, \"/\").concat(operationName), {}, queryParameters)];\n });\n });\n };\n return Operations;\n}());\nexports.default = Operations;\n//# sourceMappingURL=Operations.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RequestWithCache_1 = __importDefault(require(\"./RequestWithCache\"));\nvar RESOURCEPATH = \"/multi_search\";\nvar MultiSearch = /** @class */ (function () {\n function MultiSearch(apiCall, configuration, useTextContentType) {\n if (useTextContentType === void 0) { useTextContentType = false; }\n this.apiCall = apiCall;\n this.configuration = configuration;\n this.useTextContentType = useTextContentType;\n this.requestWithCache = new RequestWithCache_1.default();\n }\n MultiSearch.prototype.clearCache = function () {\n this.requestWithCache.clearCache();\n };\n MultiSearch.prototype.perform = function (searchRequests, commonParams, _a) {\n if (commonParams === void 0) { commonParams = {}; }\n var _b = _a === void 0 ? {} : _a, _c = _b.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _c === void 0 ? this.configuration\n .cacheSearchResultsForSeconds : _c;\n return __awaiter(this, void 0, void 0, function () {\n var additionalHeaders, additionalQueryParams, queryParams;\n return __generator(this, function (_d) {\n additionalHeaders = {};\n if (this.useTextContentType) {\n additionalHeaders[\"content-type\"] = \"text/plain\";\n }\n additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n queryParams = Object.assign({}, commonParams, additionalQueryParams);\n return [2 /*return*/, this.requestWithCache.perform(this.apiCall, this.apiCall.post, [RESOURCEPATH, searchRequests, queryParams, additionalHeaders], { cacheResponseForSeconds: cacheSearchResultsForSeconds })];\n });\n });\n };\n return MultiSearch;\n}());\nexports.default = MultiSearch;\n//# sourceMappingURL=MultiSearch.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/presets\";\nvar Presets = /** @class */ (function () {\n function Presets(apiCall) {\n this.apiCall = apiCall;\n }\n Presets.prototype.upsert = function (presetId, params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(presetId), params)];\n });\n });\n };\n Presets.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Presets.prototype.endpointPath = function (operation) {\n return \"\".concat(Presets.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(Presets, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Presets;\n}());\nexports.default = Presets;\n//# sourceMappingURL=Presets.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Presets_1 = __importDefault(require(\"./Presets\"));\nvar Preset = /** @class */ (function () {\n function Preset(presetId, apiCall) {\n this.presetId = presetId;\n this.apiCall = apiCall;\n }\n Preset.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Preset.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Preset.prototype.endpointPath = function () {\n return \"\".concat(Presets_1.default.RESOURCEPATH, \"/\").concat(this.presetId);\n };\n return Preset;\n}());\nexports.default = Preset;\n//# sourceMappingURL=Preset.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/analytics/rules\";\nvar AnalyticsRules = /** @class */ (function () {\n function AnalyticsRules(apiCall) {\n this.apiCall = apiCall;\n this.apiCall = apiCall;\n }\n AnalyticsRules.prototype.upsert = function (name, params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(name), params)];\n });\n });\n };\n AnalyticsRules.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n AnalyticsRules.prototype.endpointPath = function (operation) {\n return \"\".concat(AnalyticsRules.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(AnalyticsRules, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return AnalyticsRules;\n}());\nexports.default = AnalyticsRules;\n//# sourceMappingURL=AnalyticsRules.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AnalyticsRules_1 = __importDefault(require(\"./AnalyticsRules\"));\nvar AnalyticsRule = /** @class */ (function () {\n function AnalyticsRule(name, apiCall) {\n this.name = name;\n this.apiCall = apiCall;\n }\n AnalyticsRule.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n AnalyticsRule.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n AnalyticsRule.prototype.endpointPath = function () {\n return \"\".concat(AnalyticsRules_1.default.RESOURCEPATH, \"/\").concat(this.name);\n };\n return AnalyticsRule;\n}());\nexports.default = AnalyticsRule;\n//# sourceMappingURL=AnalyticsRule.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AnalyticsRules_1 = __importDefault(require(\"./AnalyticsRules\"));\nvar AnalyticsRule_1 = __importDefault(require(\"./AnalyticsRule\"));\nvar RESOURCEPATH = \"/analytics\";\nvar Analytics = /** @class */ (function () {\n function Analytics(apiCall) {\n this.apiCall = apiCall;\n this.individualAnalyticsRules = {};\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules_1.default(this.apiCall);\n }\n Analytics.prototype.rules = function (id) {\n if (id === undefined) {\n return this._analyticsRules;\n }\n else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule_1.default(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n };\n Object.defineProperty(Analytics, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Analytics;\n}());\nexports.default = Analytics;\n//# sourceMappingURL=Analytics.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/stopwords\";\nvar Stopwords = /** @class */ (function () {\n function Stopwords(apiCall) {\n this.apiCall = apiCall;\n }\n Stopwords.prototype.upsert = function (stopwordId, params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(stopwordId), params)];\n });\n });\n };\n Stopwords.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Stopwords.prototype.endpointPath = function (operation) {\n return \"\".concat(Stopwords.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(Stopwords, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Stopwords;\n}());\nexports.default = Stopwords;\n//# sourceMappingURL=Stopwords.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Stopwords_1 = __importDefault(require(\"./Stopwords\"));\nvar Stopword = /** @class */ (function () {\n function Stopword(stopwordId, apiCall) {\n this.stopwordId = stopwordId;\n this.apiCall = apiCall;\n }\n Stopword.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Stopword.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Stopword.prototype.endpointPath = function () {\n return \"\".concat(Stopwords_1.default.RESOURCEPATH, \"/\").concat(this.stopwordId);\n };\n return Stopword;\n}());\nexports.default = Stopword;\n//# sourceMappingURL=Stopword.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RESOURCEPATH = \"/conversations/models\";\nvar ConversationModels = /** @class */ (function () {\n function ConversationModels(apiCall) {\n this.apiCall = apiCall;\n this.apiCall = apiCall;\n }\n ConversationModels.prototype.create = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.post(this.endpointPath(), params)];\n });\n });\n };\n ConversationModels.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n ConversationModels.prototype.endpointPath = function (operation) {\n return \"\".concat(ConversationModels.RESOURCEPATH).concat(operation === undefined ? \"\" : \"/\" + operation);\n };\n Object.defineProperty(ConversationModels, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return ConversationModels;\n}());\nexports.default = ConversationModels;\n//# sourceMappingURL=ConversationModels.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ConversationModels_1 = __importDefault(require(\"./ConversationModels\"));\nvar ConversationModel = /** @class */ (function () {\n function ConversationModel(id, apiCall) {\n this.id = id;\n this.apiCall = apiCall;\n }\n ConversationModel.prototype.update = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(), params)];\n });\n });\n };\n ConversationModel.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n ConversationModel.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n ConversationModel.prototype.endpointPath = function () {\n return \"\".concat(ConversationModels_1.default.RESOURCEPATH, \"/\").concat(this.id);\n };\n return ConversationModel;\n}());\nexports.default = ConversationModel;\n//# sourceMappingURL=ConversationModel.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ConversationModels_1 = __importDefault(require(\"./ConversationModels\"));\nvar ConversationModel_1 = __importDefault(require(\"./ConversationModel\"));\nvar RESOURCEPATH = \"/conversations\";\nvar Conversations = /** @class */ (function () {\n function Conversations(apiCall) {\n this.apiCall = apiCall;\n this.individualConversationModels = {};\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels_1.default(this.apiCall);\n }\n Conversations.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(RESOURCEPATH)];\n });\n });\n };\n Conversations.prototype.models = function (id) {\n if (id === undefined) {\n return this._conversationsModels;\n }\n else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel_1.default(id, this.apiCall);\n }\n return this.individualConversationModels[id];\n }\n };\n Object.defineProperty(Conversations, \"RESOURCEPATH\", {\n get: function () {\n return RESOURCEPATH;\n },\n enumerable: false,\n configurable: true\n });\n return Conversations;\n}());\nexports.default = Conversations;\n//# sourceMappingURL=Conversations.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Conversations_1 = __importDefault(require(\"./Conversations\"));\nvar Conversation = /** @class */ (function () {\n function Conversation(id, apiCall) {\n this.id = id;\n this.apiCall = apiCall;\n }\n Conversation.prototype.retrieve = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.get(this.endpointPath())];\n });\n });\n };\n Conversation.prototype.update = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.put(this.endpointPath(), params)];\n });\n });\n };\n Conversation.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.apiCall.delete(this.endpointPath())];\n });\n });\n };\n Conversation.prototype.endpointPath = function () {\n return \"\".concat(Conversations_1.default.RESOURCEPATH, \"/\").concat(this.id);\n };\n return Conversation;\n}());\nexports.default = Conversation;\n//# sourceMappingURL=Conversation.js.map","\"use strict\";\n/* eslint-disable no-dupe-class-members */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Configuration_1 = __importDefault(require(\"./Configuration\"));\nvar ApiCall_1 = __importDefault(require(\"./ApiCall\"));\nvar Collections_1 = __importDefault(require(\"./Collections\"));\nvar Collection_1 = __importDefault(require(\"./Collection\"));\nvar Aliases_1 = __importDefault(require(\"./Aliases\"));\nvar Alias_1 = __importDefault(require(\"./Alias\"));\nvar Keys_1 = __importDefault(require(\"./Keys\"));\nvar Key_1 = __importDefault(require(\"./Key\"));\nvar Debug_1 = __importDefault(require(\"./Debug\"));\nvar Metrics_1 = __importDefault(require(\"./Metrics\"));\nvar Health_1 = __importDefault(require(\"./Health\"));\nvar Operations_1 = __importDefault(require(\"./Operations\"));\nvar MultiSearch_1 = __importDefault(require(\"./MultiSearch\"));\nvar Presets_1 = __importDefault(require(\"./Presets\"));\nvar Preset_1 = __importDefault(require(\"./Preset\"));\nvar Analytics_1 = __importDefault(require(\"./Analytics\"));\nvar Stopwords_1 = __importDefault(require(\"./Stopwords\"));\nvar Stopword_1 = __importDefault(require(\"./Stopword\"));\nvar Conversations_1 = __importDefault(require(\"./Conversations\"));\nvar Conversation_1 = __importDefault(require(\"./Conversation\"));\nvar Client = /** @class */ (function () {\n function Client(options) {\n var _a;\n options.sendApiKeyAsQueryParam = (_a = options.sendApiKeyAsQueryParam) !== null && _a !== void 0 ? _a : false;\n this.configuration = new Configuration_1.default(options);\n this.apiCall = new ApiCall_1.default(this.configuration);\n this.debug = new Debug_1.default(this.apiCall);\n this.metrics = new Metrics_1.default(this.apiCall);\n this.health = new Health_1.default(this.apiCall);\n this.operations = new Operations_1.default(this.apiCall);\n this.multiSearch = new MultiSearch_1.default(this.apiCall, this.configuration);\n this._collections = new Collections_1.default(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases_1.default(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys_1.default(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets_1.default(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords_1.default(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics_1.default(this.apiCall);\n this._conversations = new Conversations_1.default(this.apiCall);\n this.individualConversations = {};\n }\n Client.prototype.collections = function (collectionName) {\n if (collectionName === undefined) {\n return this._collections;\n }\n else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection_1.default(collectionName, this.apiCall, this.configuration);\n }\n return this.individualCollections[collectionName];\n }\n };\n Client.prototype.aliases = function (aliasName) {\n if (aliasName === undefined) {\n return this._aliases;\n }\n else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias_1.default(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n };\n Client.prototype.keys = function (id) {\n if (id === undefined) {\n return this._keys;\n }\n else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key_1.default(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n };\n Client.prototype.presets = function (id) {\n if (id === undefined) {\n return this._presets;\n }\n else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset_1.default(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n };\n Client.prototype.stopwords = function (id) {\n if (id === undefined) {\n return this._stopwords;\n }\n else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword_1.default(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n };\n Client.prototype.conversations = function (id) {\n if (id === undefined) {\n return this._conversations;\n }\n else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation_1.default(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n };\n return Client;\n}());\nexports.default = Client;\n//# sourceMappingURL=Client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchOnlyCollection = void 0;\nvar SearchOnlyDocuments_1 = require(\"./SearchOnlyDocuments\");\nvar SearchOnlyCollection = /** @class */ (function () {\n function SearchOnlyCollection(name, apiCall, configuration) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n this._documents = new SearchOnlyDocuments_1.SearchOnlyDocuments(this.name, this.apiCall, this.configuration);\n }\n SearchOnlyCollection.prototype.documents = function () {\n return this._documents;\n };\n return SearchOnlyCollection;\n}());\nexports.SearchOnlyCollection = SearchOnlyCollection;\n//# sourceMappingURL=SearchOnlyCollection.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Configuration_1 = __importDefault(require(\"./Configuration\"));\nvar ApiCall_1 = __importDefault(require(\"./ApiCall\"));\nvar MultiSearch_1 = __importDefault(require(\"./MultiSearch\"));\nvar SearchOnlyCollection_1 = require(\"./SearchOnlyCollection\");\nvar SearchClient = /** @class */ (function () {\n function SearchClient(options) {\n var _a;\n options.sendApiKeyAsQueryParam = (_a = options.sendApiKeyAsQueryParam) !== null && _a !== void 0 ? _a : true;\n if (options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000) {\n console.warn(\"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\");\n options.sendApiKeyAsQueryParam = false;\n }\n this.configuration = new Configuration_1.default(options);\n this.apiCall = new ApiCall_1.default(this.configuration);\n this.multiSearch = new MultiSearch_1.default(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n SearchClient.prototype.clearCache = function () {\n this.multiSearch.clearCache();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(function (_a) {\n var _ = _a[0], collection = _a[1];\n collection.documents().clearCache();\n });\n };\n SearchClient.prototype.collections = function (collectionName) {\n if (!collectionName) {\n throw new Error(\"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\");\n }\n else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection_1.SearchOnlyCollection(collectionName, this.apiCall, this.configuration);\n }\n return this.individualCollections[collectionName];\n }\n };\n return SearchClient;\n}());\nexports.default = SearchClient;\n//# sourceMappingURL=SearchClient.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Errors = exports.SearchClient = exports.Client = void 0;\nvar Client_1 = __importDefault(require(\"./Typesense/Client\"));\nexports.Client = Client_1.default;\nvar SearchClient_1 = __importDefault(require(\"./Typesense/SearchClient\"));\nexports.SearchClient = SearchClient_1.default;\nvar Errors = __importStar(require(\"./Typesense/Errors\"));\nexports.Errors = Errors;\nexports.default = { Client: Client_1.default, SearchClient: SearchClient_1.default, Errors: Errors };\n//# sourceMappingURL=Typesense.js.map","import { Controller } from '@hotwired/stimulus'\nimport Typesense, { Client } from 'typesense'\n\nexport default class extends Controller {\n static targets = ['resultList', 'template']\n\n client: Client\n declare resultListTarget: HTMLElement\n declare templateTarget: HTMLTemplateElement\n\n CATEGORY_TO_NAME = { help_articles: 'Hjelp', account_descriptions: 'Kontoplan' }\n CATEGORY_TO_COLOUR = { help_articles: 'primary', account_descriptions: 'secondary' }\n\n connect() {\n this.hideResults()\n }\n\n initialize() {\n this.client = new Typesense.Client((window as any).typesenseConfig)\n }\n\n showResults() {\n this.resultListTarget.classList.remove('d-none')\n }\n\n hideResults() {\n this.resultListTarget.classList.add('d-none')\n }\n\n async search(event: Event) {\n const query = (event.target as HTMLInputElement).value\n\n if (query.length == 0) {\n this.hideResults()\n } else {\n this.showResults()\n }\n\n const collectionOrder = ['help_articles', 'account_descriptions']\n\n // See https://typesense.org/docs/0.21.0/api/documents.html#federated-multi-search for example params\n\n let collectionParameters = collectionOrder.map((collection) => {\n return {\n q: query,\n collection: collection,\n }\n })\n\n let searchParameters = {\n searches: collectionParameters,\n }\n\n let commonSearchParams = {\n query_by: 'title',\n per_page: 5,\n }\n\n // @ts-ignore\n const result = await this.client.multiSearch.perform(searchParameters, commonSearchParams)\n\n this.resultListTarget.innerHTML = ''\n\n result.results.forEach((categoryResult) => {\n // @ts-ignore\n let collectionName = categoryResult.request_params.collection_name\n // @ts-ignore\n let res = Math.min(5, categoryResult.found)\n for (let i = 0; i < res; i++) {\n // @ts-ignore\n let hit = categoryResult.hits[i]\n this.createSearchResult(collectionName, hit['document']['title'], hit['document']['path'])\n }\n })\n }\n\n createSearchResult(collectionName, title, path) {\n let newNode = this.templateTarget.content.firstChild.cloneNode(true) as HTMLElement\n this.resultListTarget.appendChild(newNode)\n newNode.querySelector('.search-title').innerHTML = title\n const categoryNode = newNode.querySelector('.search-category')\n categoryNode.innerHTML = this.CATEGORY_TO_NAME[collectionName]\n categoryNode.classList.add(`bg-${this.CATEGORY_TO_COLOUR[collectionName]}`)\n ;(newNode as HTMLAnchorElement).href = `https://www.lucaregnskap.no${path}`\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static values = {\n filename: String,\n contentType: String,\n }\n\n filenameValue: string\n contentTypeValue: string\n\n connect() {\n let content = (this.element as HTMLElement).innerText\n let blob = new Blob([content], { type: this.contentTypeValue })\n let link = document.createElement('a')\n link.download = this.filenameValue\n link.innerHTML = i18n.t('navigation.download')\n link.href = window.URL.createObjectURL(blob)\n this.element.parentNode.insertBefore(link, this.element)\n }\n}\n","export function getModelHashIds(rows: Array): Array {\n return rows.map((row) => row.dataset.modelHashid)\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../../util/rails_fetch'\nimport { BulkActionParams } from '../bulk_action_table_controller'\nimport { getModelHashIds } from '../../util/get_model_hash_ids'\n\nexport default class extends Controller {\n async merge(params: BulkActionParams) {\n const checkedRows = params.checkedRows\n const hashIds = getModelHashIds(checkedRows)\n\n const data = {\n inbox_id: hashIds,\n }\n\n await rails_fetch(`/${(window as any).current_company_id}/inbox/merge`, {\n method: 'POST',\n body: JSON.stringify(data),\n })\n .then((response) => response.text())\n .then((data) => {\n eval(data)\n })\n }\n\n async massDestroy(params: BulkActionParams) {\n const checkedRows = params.checkedRows\n const hashIds = getModelHashIds(checkedRows)\n\n const data = {\n inbox_id: hashIds,\n }\n\n await rails_fetch(`/${(window as any).current_company_id}/inbox/mass_destroy`, {\n method: 'DELETE',\n body: JSON.stringify(data),\n })\n .then((response) => response.text())\n .then((data) => {\n eval(data)\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport PreviewController from './preview_controller'\n\nexport default class extends Controller {\n static targets = ['preview']\n\n declare previewTarget: HTMLElement\n\n preview(event) {\n event.preventDefault()\n this.previewController.toggle(event.currentTarget.href)\n event.currentTarget.classList.add('fw-bold')\n\n return false\n }\n\n get previewController(): PreviewController {\n return this.application.getControllerForElementAndIdentifier(this.previewTarget, 'preview') as PreviewController\n }\n}\n","/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id.\n // If an id already exists, it simply returns it.\n\n var select2Id = element.getAttribute('data-select2-id');\n if (select2Id == null) {\n // If element has id, use it.\n if (element.id) {\n select2Id = element.id;\n element.setAttribute('data-select2-id', select2Id);\n } else {\n element.setAttribute('data-select2-id', ++id);\n select2Id = id.toString();\n }\n }\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n ''\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n ''\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option[aria-selected]');\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'option',\n 'aria-selected': 'false'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n ''\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '' +\n '' +\n '×' +\n '' +\n ''\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n $selection.append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').width();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n ''\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!$.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._syncA);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n self._syncA();\n self._syncS(null, mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener(\n 'DOMAttrModified',\n self._syncA,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeInserted',\n self._syncS,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeRemoved',\n self._syncS,\n false\n );\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB ||\n (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (evt, mutations) {\n var changed = false;\n var self = this;\n\n // Ignore any mutation events raised for elements that aren't options or\n // optgroups. This handles the case when the select element is destroyed\n if (\n evt && evt.target && (\n evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n )\n ) {\n return;\n }\n\n if (!mutations) {\n // If mutation events aren't supported, then we can only assume that the\n // change affected the selections\n changed = true;\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n changed = true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n changed = true;\n } else if ($.isArray(mutations)) {\n $.each(mutations, function(evt, mutation) {\n if (self._isChangeMutation(evt, mutation)) {\n // We've found a change mutation.\n // Let's escape from the loop and continue\n changed = true;\n return false;\n }\n });\n }\n return changed;\n };\n\n Select2.prototype._syncSubtree = function (evt, mutations) {\n var changed = this._isChangeMutation(evt, mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container.hasClass('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container.addClass('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._syncA);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._syncA, false);\n this.$element[0]\n .removeEventListener('DOMNodeInserted', this._syncS, false);\n this.$element[0]\n .removeEventListener('DOMNodeRemoved', this._syncS, false);\n }\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('select2/compat/utils',[\n 'jquery'\n], function ($) {\n function syncCssClasses ($dest, $src, adapter) {\n var classes, replacements = [], adapted;\n\n classes = $.trim($dest.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Save all Select2 classes\n if (this.indexOf('select2-') === 0) {\n replacements.push(this);\n }\n });\n }\n\n classes = $.trim($src.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Only adapt non-Select2 classes\n if (this.indexOf('select2-') !== 0) {\n adapted = adapter(this);\n\n if (adapted != null) {\n replacements.push(adapted);\n }\n }\n });\n }\n\n $dest.attr('class', replacements.join(' '));\n }\n\n return {\n syncCssClasses: syncCssClasses\n };\n});\n\nS2.define('select2/compat/containerCss',[\n 'jquery',\n './utils'\n], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _containerAdapter (clazz) {\n return null;\n }\n\n function ContainerCSS () { }\n\n ContainerCSS.prototype.render = function (decorated) {\n var $container = decorated.call(this);\n\n var containerCssClass = this.options.get('containerCssClass') || '';\n\n if ($.isFunction(containerCssClass)) {\n containerCssClass = containerCssClass(this.$element);\n }\n\n var containerCssAdapter = this.options.get('adaptContainerCssClass');\n containerCssAdapter = containerCssAdapter || _containerAdapter;\n\n if (containerCssClass.indexOf(':all:') !== -1) {\n containerCssClass = containerCssClass.replace(':all:', '');\n\n var _cssAdapter = containerCssAdapter;\n\n containerCssAdapter = function (clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var containerCss = this.options.get('containerCss') || {};\n\n if ($.isFunction(containerCss)) {\n containerCss = containerCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\n\n $container.css(containerCss);\n $container.addClass(containerCssClass);\n\n return $container;\n };\n\n return ContainerCSS;\n});\n\nS2.define('select2/compat/dropdownCss',[\n 'jquery',\n './utils'\n], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _dropdownAdapter (clazz) {\n return null;\n }\n\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if ($.isFunction(dropdownCssClass)) {\n dropdownCssClass = dropdownCssClass(this.$element);\n }\n\n var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\n dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n var _cssAdapter = dropdownCssAdapter;\n\n dropdownCssAdapter = function (clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var dropdownCss = this.options.get('dropdownCss') || {};\n\n if ($.isFunction(dropdownCss)) {\n dropdownCss = dropdownCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\n\n $dropdown.css(dropdownCss);\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/compat/initSelection',[\n 'jquery'\n], function ($) {\n function InitSelection (decorated, $element, options) {\n if (options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `initSelection` option has been deprecated in favor' +\n ' of a custom data adapter that overrides the `current` method. ' +\n 'This method is now called multiple times instead of a single ' +\n 'time when the instance is initialized. Support will be removed ' +\n 'for the `initSelection` option in future versions of Select2'\n );\n }\n\n this.initSelection = options.get('initSelection');\n this._isInitialized = false;\n\n decorated.call(this, $element, options);\n }\n\n InitSelection.prototype.current = function (decorated, callback) {\n var self = this;\n\n if (this._isInitialized) {\n decorated.call(this, callback);\n\n return;\n }\n\n this.initSelection.call(null, this.$element, function (data) {\n self._isInitialized = true;\n\n if (!$.isArray(data)) {\n data = [data];\n }\n\n callback(data);\n });\n };\n\n return InitSelection;\n});\n\nS2.define('select2/compat/inputData',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function InputData (decorated, $element, options) {\n this._currentData = [];\n this._valueSeparator = options.get('valueSeparator') || ',';\n\n if ($element.prop('type') === 'hidden') {\n if (options.get('debug') && console && console.warn) {\n console.warn(\n 'Select2: Using a hidden input with Select2 is no longer ' +\n 'supported and may stop working in the future. It is recommended ' +\n 'to use a `` element instead.'\n );\n }\n }\n\n decorated.call(this, $element, options);\n }\n\n InputData.prototype.current = function (_, callback) {\n function getSelected (data, selectedIds) {\n var selected = [];\n\n if (data.selected || $.inArray(data.id, selectedIds) !== -1) {\n data.selected = true;\n selected.push(data);\n } else {\n data.selected = false;\n }\n\n if (data.children) {\n selected.push.apply(selected, getSelected(data.children, selectedIds));\n }\n\n return selected;\n }\n\n var selected = [];\n\n for (var d = 0; d < this._currentData.length; d++) {\n var data = this._currentData[d];\n\n selected.push.apply(\n selected,\n getSelected(\n data,\n this.$element.val().split(\n this._valueSeparator\n )\n )\n );\n }\n\n callback(selected);\n };\n\n InputData.prototype.select = function (_, data) {\n if (!this.options.get('multiple')) {\n this.current(function (allData) {\n $.map(allData, function (data) {\n data.selected = false;\n });\n });\n\n this.$element.val(data.id);\n this.$element.trigger('input').trigger('change');\n } else {\n var value = this.$element.val();\n value += this._valueSeparator + data.id;\n\n this.$element.val(value);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n InputData.prototype.unselect = function (_, data) {\n var self = this;\n\n data.selected = false;\n\n this.current(function (allData) {\n var values = [];\n\n for (var d = 0; d < allData.length; d++) {\n var item = allData[d];\n\n if (data.id == item.id) {\n continue;\n }\n\n values.push(item.id);\n }\n\n self.$element.val(values.join(self._valueSeparator));\n self.$element.trigger('input').trigger('change');\n });\n };\n\n InputData.prototype.query = function (_, params, callback) {\n var results = [];\n\n for (var d = 0; d < this._currentData.length; d++) {\n var data = this._currentData[d];\n\n var matches = this.matches(params, data);\n\n if (matches !== null) {\n results.push(matches);\n }\n }\n\n callback({\n results: results\n });\n };\n\n InputData.prototype.addOptions = function (_, $options) {\n var options = $.map($options, function ($option) {\n return Utils.GetData($option[0], 'data');\n });\n\n this._currentData.push.apply(this._currentData, options);\n };\n\n return InputData;\n});\n\nS2.define('select2/compat/matcher',[\n 'jquery'\n], function ($) {\n function oldMatcher (matcher) {\n function wrappedMatcher (params, data) {\n var match = $.extend(true, {}, data);\n\n if (params.term == null || $.trim(params.term) === '') {\n return match;\n }\n\n if (data.children) {\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n // Check if the child object matches\n // The old matcher returned a boolean true or false\n var doesMatch = matcher(params.term, child.text, child);\n\n // If the child didn't match, pop it off\n if (!doesMatch) {\n match.children.splice(c, 1);\n }\n }\n\n if (match.children.length > 0) {\n return match;\n }\n }\n\n if (matcher(params.term, data.text, data)) {\n return match;\n }\n\n return null;\n }\n\n return wrappedMatcher;\n }\n\n return oldMatcher;\n});\n\nS2.define('select2/compat/query',[\n\n], function () {\n function Query (decorated, $element, options) {\n if (options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `query` option has been deprecated in favor of a ' +\n 'custom data adapter that overrides the `query` method. Support ' +\n 'will be removed for the `query` option in future versions of ' +\n 'Select2.'\n );\n }\n\n decorated.call(this, $element, options);\n }\n\n Query.prototype.query = function (_, params, callback) {\n params.callback = callback;\n\n var query = this.options.get('query');\n\n query.call(null, params);\n };\n\n return Query;\n});\n\nS2.define('select2/dropdown/attachContainer',[\n\n], function () {\n function AttachContainer (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n AttachContainer.prototype.position =\n function (decorated, $dropdown, $container) {\n var $dropdownContainer = $container.find('.dropdown-wrapper');\n $dropdownContainer.append($dropdown);\n\n $dropdown.addClass('select2-dropdown--below');\n $container.addClass('select2-container--below');\n };\n\n return AttachContainer;\n});\n\nS2.define('select2/dropdown/stopPropagation',[\n\n], function () {\n function StopPropagation () { }\n\n StopPropagation.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n var stoppedEvents = [\n 'blur',\n 'change',\n 'click',\n 'dblclick',\n 'focus',\n 'focusin',\n 'focusout',\n 'input',\n 'keydown',\n 'keyup',\n 'keypress',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseover',\n 'mouseup',\n 'search',\n 'touchend',\n 'touchstart'\n ];\n\n this.$dropdown.on(stoppedEvents.join(' '), function (evt) {\n evt.stopPropagation();\n });\n };\n\n return StopPropagation;\n});\n\nS2.define('select2/selection/stopPropagation',[\n\n], function () {\n function StopPropagation () { }\n\n StopPropagation.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n var stoppedEvents = [\n 'blur',\n 'change',\n 'click',\n 'dblclick',\n 'focus',\n 'focusin',\n 'focusout',\n 'input',\n 'keydown',\n 'keyup',\n 'keypress',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseover',\n 'mouseup',\n 'search',\n 'touchend',\n 'touchstart'\n ];\n\n this.$selection.on(stoppedEvents.join(' '), function (evt) {\n evt.stopPropagation();\n });\n };\n\n return StopPropagation;\n});\n\n/*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n(function (factory) {\n if ( typeof S2.define === 'function' && S2.define.amd ) {\n // AMD. Register as an anonymous module.\n S2.define('jquery-mousewheel',['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS style for Browserify\n module.exports = factory;\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function ($) {\n\n var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n slice = Array.prototype.slice,\n nullLowestDeltaTimeout, lowestDelta;\n\n if ( $.event.fixHooks ) {\n for ( var i = toFix.length; i; ) {\n $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n }\n }\n\n var special = $.event.special.mousewheel = {\n version: '3.1.12',\n\n setup: function() {\n if ( this.addEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.addEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = handler;\n }\n // Store the line height and page height for this particular element\n $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n },\n\n teardown: function() {\n if ( this.removeEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.removeEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = null;\n }\n // Clean up the data we added to the element\n $.removeData(this, 'mousewheel-line-height');\n $.removeData(this, 'mousewheel-page-height');\n },\n\n getLineHeight: function(elem) {\n var $elem = $(elem),\n $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n if (!$parent.length) {\n $parent = $('body');\n }\n return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n },\n\n getPageHeight: function(elem) {\n return $(elem).height();\n },\n\n settings: {\n adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n normalizeOffset: true // calls getBoundingClientRect for each event\n }\n };\n\n $.fn.extend({\n mousewheel: function(fn) {\n return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n },\n\n unmousewheel: function(fn) {\n return this.unbind('mousewheel', fn);\n }\n });\n\n\n function handler(event) {\n var orgEvent = event || window.event,\n args = slice.call(arguments, 1),\n delta = 0,\n deltaX = 0,\n deltaY = 0,\n absDelta = 0,\n offsetX = 0,\n offsetY = 0;\n event = $.event.fix(orgEvent);\n event.type = 'mousewheel';\n\n // Old school scrollwheel delta\n if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }\n if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }\n if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }\n if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n deltaX = deltaY * -1;\n deltaY = 0;\n }\n\n // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n delta = deltaY === 0 ? deltaX : deltaY;\n\n // New school wheel delta (wheel event)\n if ( 'deltaY' in orgEvent ) {\n deltaY = orgEvent.deltaY * -1;\n delta = deltaY;\n }\n if ( 'deltaX' in orgEvent ) {\n deltaX = orgEvent.deltaX;\n if ( deltaY === 0 ) { delta = deltaX * -1; }\n }\n\n // No change actually happened, no reason to go any further\n if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n // Need to convert lines and pages to pixels if we aren't already in pixels\n // There are three delta modes:\n // * deltaMode 0 is by pixels, nothing to do\n // * deltaMode 1 is by lines\n // * deltaMode 2 is by pages\n if ( orgEvent.deltaMode === 1 ) {\n var lineHeight = $.data(this, 'mousewheel-line-height');\n delta *= lineHeight;\n deltaY *= lineHeight;\n deltaX *= lineHeight;\n } else if ( orgEvent.deltaMode === 2 ) {\n var pageHeight = $.data(this, 'mousewheel-page-height');\n delta *= pageHeight;\n deltaY *= pageHeight;\n deltaX *= pageHeight;\n }\n\n // Store lowest absolute delta to normalize the delta values\n absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n if ( !lowestDelta || absDelta < lowestDelta ) {\n lowestDelta = absDelta;\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n lowestDelta /= 40;\n }\n }\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n // Divide all the things by 40!\n delta /= 40;\n deltaX /= 40;\n deltaY /= 40;\n }\n\n // Get a whole, normalized value for the deltas\n delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);\n deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n // Normalise offsetX and offsetY properties\n if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n var boundingRect = this.getBoundingClientRect();\n offsetX = event.clientX - boundingRect.left;\n offsetY = event.clientY - boundingRect.top;\n }\n\n // Add information to the event object\n event.deltaX = deltaX;\n event.deltaY = deltaY;\n event.deltaFactor = lowestDelta;\n event.offsetX = offsetX;\n event.offsetY = offsetY;\n // Go ahead and set deltaMode to 0 since we converted to pixels\n // Although this is a little odd since we overwrite the deltaX/Y\n // properties with normalized deltas.\n event.deltaMode = 0;\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n // Clearout lowestDelta after sometime to better\n // handle multiple device types that give different\n // a different lowestDelta\n // Ex: trackpad = 3 and mouse wheel = 120\n if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n return ($.event.dispatch || $.event.handle).apply(this, args);\n }\n\n function nullLowestDelta() {\n lowestDelta = null;\n }\n\n function shouldAdjustOldDeltas(orgEvent, absDelta) {\n // If this is an older event and the delta is divisable by 120,\n // then we are assuming that the browser is treating this as an\n // older mouse wheel event and that we should divide the deltas\n // by 40 to try and get a more usable deltaFactor.\n // Side note, this actually impacts the reported scroll distance\n // in older browsers and can cause scrolling to be slower than native.\n // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n }\n\n}));\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","import './jquery'\nimport select2 from 'select2/dist/js/select2.full'\n// import 'select2/dist/js/i18n/nb'\n\nselect2((window as any).jQuery)\n\n// The following code hard codes in Norwegian language as the default\n// We have to do this since we were not able to get import 'select2/dist/js/i18n/nb' to work properly with Vite.\n// We will need to fix this in the future, but one way might be when we drop\n// select2 altogether for another option (like tom-select)\n$.fn.select2.defaults.set('language', {\n errorLoading: function () {\n return 'Kunne ikke hente resultater.'\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum\n\n return 'Vennligst fjern ' + overChars + ' tegn'\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length\n\n return 'Vennligst skriv inn ' + remainingChars + ' tegn til'\n },\n loadingMore: function () {\n return 'Laster flere resultater…'\n },\n maximumSelected: function (args) {\n return 'Du kan velge maks ' + args.maximum + ' elementer'\n },\n noResults: function () {\n return 'Ingen treff'\n },\n searching: function () {\n return 'Søker…'\n },\n removeAllItems: function () {\n return 'Fjern alle elementer'\n },\n})\n\n// Select2 and Turbo don't play nicely together and creates double dropdowns\n// when using the back button in the browser. See this StackOverflow discussion for details:\n// https://stackoverflow.com/questions/36497723/select2-with-ajax-gets-initialized-several-times-with-rails-turbolinks-events\n// NB: This code is not really testable, so before you decide to change it, make double sure it works in other places\n// than the one you are currently working on. A couple of good places to use the back button are:\n// * Supplier invoice filter (status and partner boxes)\n// * New customer invoice and edit draft customer invoice\n// * Supplier invoice\n$(document).on('turbo:before-cache', function () {\n // This corrects the select2 to be duplicated when clicking the back button.\n $('.select2-hidden-accessible').select2('destroy')\n})\n\n// This fixes a bug where the search input in a select2 is not selected on open when using jQuery 3.6.0 and later\n// See more info here:\n// https://forums.select2.org/t/search-being-unfocused/1203/12\n// If you want to check if this can be removed, check https://lucalabs.atlassian.net/browse/IN-8317 or just\n// open the Supplier Invoice Index page and then click the supplier filter. You should be able to automatically\n// start typing\n$(document).on('select2:open', () => {\n ;(document.querySelector('.select2-container--open .select2-search__field') as HTMLElement).focus()\n})\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { DEFAULT_STATIC_PARMS } from '../standalone/components/Select2Builder'\nimport Rails from '@rails/ujs'\nimport '~/libraries/select2'\nimport { addParamToUrl } from './helpers'\n\n// Index filter is a select2 select box that auto submits on change and looks like a select2\n\nexport default class extends Controller {\n initialize() {\n let select2Element = $(this.element)\n select2Element.select2({\n ...DEFAULT_STATIC_PARMS,\n minimumInputLength: 0,\n })\n\n if (this._autoCommit()) {\n select2Element.on('select2:select', (event) => {\n let form = this.element.closest('form')\n let selectElement = select2Element[0] as HTMLSelectElement\n addParamToUrl(selectElement.name, selectElement.value)\n Rails.fire(form, 'submit')\n })\n }\n }\n\n _autoCommit(): boolean {\n // Default is true\n return !this.data.has('autoCommit') || this.data.get('autoCommit') === 'true'\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static targets = ['entries', 'pagination']\n\n declare entriesTarget: HTMLElement\n declare paginationTarget: HTMLElement\n\n isLoading = false\n\n scroll() {\n let nextPage = this.paginationTarget.querySelector(\"a[rel='next'\") as HTMLAnchorElement\n if (nextPage) {\n let url = nextPage.href\n let body = document.body,\n html = document.documentElement\n let height = Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n )\n\n if (window.pageYOffset >= height - window.innerHeight - 50) {\n this.loadMore(url)\n }\n }\n }\n\n loadMore(url) {\n if (!this.isLoading) {\n this.isLoading = true\n $.ajax({\n type: 'GET',\n url: url,\n dataType: 'json',\n success: (data) => {\n this.entriesTarget.insertAdjacentHTML('beforeend', data.entries)\n if (data.pagination) {\n this.paginationTarget.innerHTML = data.pagination\n } else {\n this.paginationTarget.innerHTML = ''\n }\n this.isLoading = false\n },\n })\n }\n }\n}\n","/*!\n * dist/inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2024 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.9\n */\n!function(e, t) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = t(); else if (\"function\" == typeof define && define.amd) define([], t); else {\n var n = t();\n for (var i in n) (\"object\" == typeof exports ? exports : e)[i] = n[i];\n }\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function() {\n \"use strict\";\n var e = {\n 3976: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n t.default = {\n _maxTestPos: 500,\n placeholder: \"_\",\n optionalmarker: [ \"[\", \"]\" ],\n quantifiermarker: [ \"{\", \"}\" ],\n groupmarker: [ \"(\", \")\" ],\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: function() {},\n onincomplete: function() {},\n oncleared: function() {},\n repeat: 0,\n greedy: !1,\n autoUnmask: !1,\n removeMaskOnSubmit: !1,\n clearMaskOnLostFocus: !0,\n insertMode: !0,\n insertModeVisual: !0,\n clearIncomplete: !1,\n alias: null,\n onKeyDown: function() {},\n onBeforeMask: null,\n onBeforePaste: function(e, t) {\n return \"function\" == typeof t.onBeforeMask ? t.onBeforeMask.call(this, e, t) : e;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: !0,\n showMaskOnHover: !0,\n onKeyValidation: function() {},\n skipOptionalPartCharacter: \" \",\n numericInput: !1,\n rightAlign: !1,\n undoOnEscape: !0,\n radixPoint: \"\",\n _radixDance: !1,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: !0,\n tabThrough: !1,\n supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n isComplete: null,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: void 0,\n jitMasking: !1,\n nullable: !0,\n inputEventOnly: !1,\n noValuePatching: !1,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"text\",\n importDataAttributes: !0,\n shiftPositions: !0,\n usePrototypeDefinitions: !0,\n validationEventTimeOut: 3e3,\n substitutes: {}\n };\n },\n 7392: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n t.default = {\n 9: {\n validator: \"[0-9\\uff10-\\uff19]\",\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n }\n };\n },\n 253: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e, t, n) {\n if (void 0 === n) return e.__data ? e.__data[t] : null;\n e.__data = e.__data || {}, e.__data[t] = n;\n };\n },\n 3776: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.Event = void 0, t.off = function(e, t) {\n var n, i;\n u(this[0]) && e && (n = this[0].eventRegistry, i = this[0], e.split(\" \").forEach((function(e) {\n var a = o(e.split(\".\"), 2);\n (function(e, i) {\n var a, r, o = [];\n if (e.length > 0) if (void 0 === t) for (a = 0, r = n[e][i].length; a < r; a++) o.push({\n ev: e,\n namespace: i && i.length > 0 ? i : \"global\",\n handler: n[e][i][a]\n }); else o.push({\n ev: e,\n namespace: i && i.length > 0 ? i : \"global\",\n handler: t\n }); else if (i.length > 0) for (var l in n) for (var s in n[l]) if (s === i) if (void 0 === t) for (a = 0, \n r = n[l][s].length; a < r; a++) o.push({\n ev: l,\n namespace: s,\n handler: n[l][s][a]\n }); else o.push({\n ev: l,\n namespace: s,\n handler: t\n });\n return o;\n })(a[0], a[1]).forEach((function(e) {\n var t = e.ev, a = e.handler;\n !function(e, t, a) {\n if (e in n == 1) if (i.removeEventListener ? i.removeEventListener(e, a, !1) : i.detachEvent && i.detachEvent(\"on\".concat(e), a), \n \"global\" === t) for (var r in n[e]) n[e][r].splice(n[e][r].indexOf(a), 1); else n[e][t].splice(n[e][t].indexOf(a), 1);\n }(t, e.namespace, a);\n }));\n })));\n return this;\n }, t.on = function(e, t) {\n if (u(this[0])) {\n var n = this[0].eventRegistry, i = this[0];\n e.split(\" \").forEach((function(e) {\n var a = o(e.split(\".\"), 2), r = a[0], l = a[1];\n !function(e, a) {\n i.addEventListener ? i.addEventListener(e, t, !1) : i.attachEvent && i.attachEvent(\"on\".concat(e), t), \n n[e] = n[e] || {}, n[e][a] = n[e][a] || [], n[e][a].push(t);\n }(r, void 0 === l ? \"global\" : l);\n }));\n }\n return this;\n }, t.trigger = function(e) {\n var t = arguments;\n if (u(this[0])) for (var n = this[0].eventRegistry, i = this[0], o = \"string\" == typeof e ? e.split(\" \") : [ e.type ], l = 0; l < o.length; l++) {\n var s = o[l].split(\".\"), f = s[0], p = s[1] || \"global\";\n if (void 0 !== c && \"global\" === p) {\n var d, h = {\n bubbles: !0,\n cancelable: !0,\n composed: !0,\n detail: arguments[1]\n };\n if (c.createEvent) {\n try {\n if (\"input\" === f) h.inputType = \"insertText\", d = new InputEvent(f, h); else d = new CustomEvent(f, h);\n } catch (e) {\n (d = c.createEvent(\"CustomEvent\")).initCustomEvent(f, h.bubbles, h.cancelable, h.detail);\n }\n e.type && (0, a.default)(d, e), i.dispatchEvent(d);\n } else (d = c.createEventObject()).eventType = f, d.detail = arguments[1], e.type && (0, \n a.default)(d, e), i.fireEvent(\"on\" + d.eventType, d);\n } else if (void 0 !== n[f]) {\n arguments[0] = arguments[0].type ? arguments[0] : r.default.Event(arguments[0]), \n arguments[0].detail = arguments.slice(1);\n var v = n[f];\n (\"global\" === p ? Object.values(v).flat() : v[p]).forEach((function(e) {\n return e.apply(i, t);\n }));\n }\n }\n return this;\n };\n var i = s(n(9380)), a = s(n(600)), r = s(n(4963));\n function o(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != n) {\n var i, a, r, o, l = [], s = !0, c = !1;\n try {\n if (r = (n = n.call(e)).next, 0 === t) {\n if (Object(n) !== n) return;\n s = !1;\n } else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return l;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return l(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return l(e, t);\n }(e, t) || function() {\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 }();\n }\n function l(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n function s(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var c = i.default.document;\n function u(e) {\n return e instanceof Element;\n }\n var f = t.Event = void 0;\n \"function\" == typeof i.default.CustomEvent ? t.Event = f = i.default.CustomEvent : i.default.Event && c && c.createEvent ? (t.Event = f = function(e, t) {\n t = t || {\n bubbles: !1,\n cancelable: !1,\n composed: !0,\n detail: void 0\n };\n var n = c.createEvent(\"CustomEvent\");\n return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n;\n }, f.prototype = i.default.Event.prototype) : \"undefined\" != typeof Event && (t.Event = f = Event);\n },\n 600: function(e, t) {\n function n(e) {\n return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, n(e);\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function e() {\n var t, i, a, r, o, l, s = arguments[0] || {}, c = 1, u = arguments.length, f = !1;\n \"boolean\" == typeof s && (f = s, s = arguments[c] || {}, c++);\n \"object\" !== n(s) && \"function\" != typeof s && (s = {});\n for (;c < u; c++) if (null != (t = arguments[c])) for (i in t) a = s[i], s !== (r = t[i]) && (f && r && (\"[object Object]\" === Object.prototype.toString.call(r) || (o = Array.isArray(r))) ? (o ? (o = !1, \n l = a && Array.isArray(a) ? a : []) : l = a && \"[object Object]\" === Object.prototype.toString.call(a) ? a : {}, \n s[i] = e(f, l, r)) : void 0 !== r && (s[i] = r));\n return s;\n };\n },\n 4963: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var i = l(n(9380)), a = l(n(253)), r = n(3776), o = l(n(600));\n function l(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var s = i.default.document;\n function c(e) {\n return e instanceof c ? e : this instanceof c ? void (null != e && e !== i.default && (this[0] = e.nodeName ? e : void 0 !== e[0] && e[0].nodeName ? e[0] : s.querySelector(e), \n void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new c(e);\n }\n c.prototype = {\n on: r.on,\n off: r.off,\n trigger: r.trigger\n }, c.extend = o.default, c.data = a.default, c.Event = r.Event;\n t.default = c;\n },\n 9845: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mobile = t.iphone = t.ie = void 0;\n var i, a = (i = n(9380)) && i.__esModule ? i : {\n default: i\n };\n var r = a.default.navigator && a.default.navigator.userAgent || \"\";\n t.ie = r.indexOf(\"MSIE \") > 0 || r.indexOf(\"Trident/\") > 0, t.mobile = a.default.navigator && a.default.navigator.userAgentData && a.default.navigator.userAgentData.mobile || a.default.navigator && a.default.navigator.maxTouchPoints || \"ontouchstart\" in a.default, \n t.iphone = /iphone/i.test(r);\n },\n 7184: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e) {\n return e.replace(n, \"\\\\$1\");\n };\n var n = new RegExp(\"(\\\\\" + [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ].join(\"|\\\\\") + \")\", \"gim\");\n },\n 6030: function(e, t, n) {\n function i(e) {\n return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, i(e);\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventHandlers = void 0;\n var a, r = n(9845), o = (a = n(9380)) && a.__esModule ? a : {\n default: a\n }, l = n(7760), s = n(2839), c = n(8711), u = n(7215), f = n(4713);\n function p() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ p = function() {\n return t;\n };\n var e, t = {}, n = Object.prototype, a = n.hasOwnProperty, r = Object.defineProperty || function(e, t, n) {\n e[t] = n.value;\n }, o = \"function\" == typeof Symbol ? Symbol : {}, l = o.iterator || \"@@iterator\", s = o.asyncIterator || \"@@asyncIterator\", c = o.toStringTag || \"@@toStringTag\";\n function u(e, t, n) {\n return Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), e[t];\n }\n try {\n u({}, \"\");\n } catch (e) {\n u = function(e, t, n) {\n return e[t] = n;\n };\n }\n function f(e, t, n, i) {\n var a = t && t.prototype instanceof k ? t : k, o = Object.create(a.prototype), l = new D(i || []);\n return r(o, \"_invoke\", {\n value: E(e, n, l)\n }), o;\n }\n function d(e, t, n) {\n try {\n return {\n type: \"normal\",\n arg: e.call(t, n)\n };\n } catch (e) {\n return {\n type: \"throw\",\n arg: e\n };\n }\n }\n t.wrap = f;\n var h = \"suspendedStart\", v = \"suspendedYield\", m = \"executing\", g = \"completed\", y = {};\n function k() {}\n function b() {}\n function x() {}\n var w = {};\n u(w, l, (function() {\n return this;\n }));\n var P = Object.getPrototypeOf, S = P && P(P(L([])));\n S && S !== n && a.call(S, l) && (w = S);\n var O = x.prototype = k.prototype = Object.create(w);\n function _(e) {\n [ \"next\", \"throw\", \"return\" ].forEach((function(t) {\n u(e, t, (function(e) {\n return this._invoke(t, e);\n }));\n }));\n }\n function M(e, t) {\n function n(r, o, l, s) {\n var c = d(e[r], e, o);\n if (\"throw\" !== c.type) {\n var u = c.arg, f = u.value;\n return f && \"object\" == i(f) && a.call(f, \"__await\") ? t.resolve(f.__await).then((function(e) {\n n(\"next\", e, l, s);\n }), (function(e) {\n n(\"throw\", e, l, s);\n })) : t.resolve(f).then((function(e) {\n u.value = e, l(u);\n }), (function(e) {\n return n(\"throw\", e, l, s);\n }));\n }\n s(c.arg);\n }\n var o;\n r(this, \"_invoke\", {\n value: function(e, i) {\n function a() {\n return new t((function(t, a) {\n n(e, i, t, a);\n }));\n }\n return o = o ? o.then(a, a) : a();\n }\n });\n }\n function E(t, n, i) {\n var a = h;\n return function(r, o) {\n if (a === m) throw new Error(\"Generator is already running\");\n if (a === g) {\n if (\"throw\" === r) throw o;\n return {\n value: e,\n done: !0\n };\n }\n for (i.method = r, i.arg = o; ;) {\n var l = i.delegate;\n if (l) {\n var s = j(l, i);\n if (s) {\n if (s === y) continue;\n return s;\n }\n }\n if (\"next\" === i.method) i.sent = i._sent = i.arg; else if (\"throw\" === i.method) {\n if (a === h) throw a = g, i.arg;\n i.dispatchException(i.arg);\n } else \"return\" === i.method && i.abrupt(\"return\", i.arg);\n a = m;\n var c = d(t, n, i);\n if (\"normal\" === c.type) {\n if (a = i.done ? g : v, c.arg === y) continue;\n return {\n value: c.arg,\n done: i.done\n };\n }\n \"throw\" === c.type && (a = g, i.method = \"throw\", i.arg = c.arg);\n }\n };\n }\n function j(t, n) {\n var i = n.method, a = t.iterator[i];\n if (a === e) return n.delegate = null, \"throw\" === i && t.iterator.return && (n.method = \"return\", \n n.arg = e, j(t, n), \"throw\" === n.method) || \"return\" !== i && (n.method = \"throw\", \n n.arg = new TypeError(\"The iterator does not provide a '\" + i + \"' method\")), y;\n var r = d(a, t.iterator, n.arg);\n if (\"throw\" === r.type) return n.method = \"throw\", n.arg = r.arg, n.delegate = null, \n y;\n var o = r.arg;\n return o ? o.done ? (n[t.resultName] = o.value, n.next = t.nextLoc, \"return\" !== n.method && (n.method = \"next\", \n n.arg = e), n.delegate = null, y) : o : (n.method = \"throw\", n.arg = new TypeError(\"iterator result is not an object\"), \n n.delegate = null, y);\n }\n function T(e) {\n var t = {\n tryLoc: e[0]\n };\n 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), \n this.tryEntries.push(t);\n }\n function A(e) {\n var t = e.completion || {};\n t.type = \"normal\", delete t.arg, e.completion = t;\n }\n function D(e) {\n this.tryEntries = [ {\n tryLoc: \"root\"\n } ], e.forEach(T, this), this.reset(!0);\n }\n function L(t) {\n if (t || \"\" === t) {\n var n = t[l];\n if (n) return n.call(t);\n if (\"function\" == typeof t.next) return t;\n if (!isNaN(t.length)) {\n var r = -1, o = function n() {\n for (;++r < t.length; ) if (a.call(t, r)) return n.value = t[r], n.done = !1, n;\n return n.value = e, n.done = !0, n;\n };\n return o.next = o;\n }\n }\n throw new TypeError(i(t) + \" is not iterable\");\n }\n return b.prototype = x, r(O, \"constructor\", {\n value: x,\n configurable: !0\n }), r(x, \"constructor\", {\n value: b,\n configurable: !0\n }), b.displayName = u(x, c, \"GeneratorFunction\"), t.isGeneratorFunction = function(e) {\n var t = \"function\" == typeof e && e.constructor;\n return !!t && (t === b || \"GeneratorFunction\" === (t.displayName || t.name));\n }, t.mark = function(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, x) : (e.__proto__ = x, u(e, c, \"GeneratorFunction\")), \n e.prototype = Object.create(O), e;\n }, t.awrap = function(e) {\n return {\n __await: e\n };\n }, _(M.prototype), u(M.prototype, s, (function() {\n return this;\n })), t.AsyncIterator = M, t.async = function(e, n, i, a, r) {\n void 0 === r && (r = Promise);\n var o = new M(f(e, n, i, a), r);\n return t.isGeneratorFunction(n) ? o : o.next().then((function(e) {\n return e.done ? e.value : o.next();\n }));\n }, _(O), u(O, c, \"Generator\"), u(O, l, (function() {\n return this;\n })), u(O, \"toString\", (function() {\n return \"[object Generator]\";\n })), t.keys = function(e) {\n var t = Object(e), n = [];\n for (var i in t) n.push(i);\n return n.reverse(), function e() {\n for (;n.length; ) {\n var i = n.pop();\n if (i in t) return e.value = i, e.done = !1, e;\n }\n return e.done = !0, e;\n };\n }, t.values = L, D.prototype = {\n constructor: D,\n reset: function(t) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, \n this.method = \"next\", this.arg = e, this.tryEntries.forEach(A), !t) for (var n in this) \"t\" === n.charAt(0) && a.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = e);\n },\n stop: function() {\n this.done = !0;\n var e = this.tryEntries[0].completion;\n if (\"throw\" === e.type) throw e.arg;\n return this.rval;\n },\n dispatchException: function(t) {\n if (this.done) throw t;\n var n = this;\n function i(i, a) {\n return l.type = \"throw\", l.arg = t, n.next = i, a && (n.method = \"next\", n.arg = e), \n !!a;\n }\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r], l = o.completion;\n if (\"root\" === o.tryLoc) return i(\"end\");\n if (o.tryLoc <= this.prev) {\n var s = a.call(o, \"catchLoc\"), c = a.call(o, \"finallyLoc\");\n if (s && c) {\n if (this.prev < o.catchLoc) return i(o.catchLoc, !0);\n if (this.prev < o.finallyLoc) return i(o.finallyLoc);\n } else if (s) {\n if (this.prev < o.catchLoc) return i(o.catchLoc, !0);\n } else {\n if (!c) throw new Error(\"try statement without catch or finally\");\n if (this.prev < o.finallyLoc) return i(o.finallyLoc);\n }\n }\n }\n },\n abrupt: function(e, t) {\n for (var n = this.tryEntries.length - 1; n >= 0; --n) {\n var i = this.tryEntries[n];\n if (i.tryLoc <= this.prev && a.call(i, \"finallyLoc\") && this.prev < i.finallyLoc) {\n var r = i;\n break;\n }\n }\n r && (\"break\" === e || \"continue\" === e) && r.tryLoc <= t && t <= r.finallyLoc && (r = null);\n var o = r ? r.completion : {};\n return o.type = e, o.arg = t, r ? (this.method = \"next\", this.next = r.finallyLoc, \n y) : this.complete(o);\n },\n complete: function(e, t) {\n if (\"throw\" === e.type) throw e.arg;\n return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, \n this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), \n y;\n },\n finish: function(e) {\n for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n var n = this.tryEntries[t];\n if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), A(n), y;\n }\n },\n catch: function(e) {\n for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n var n = this.tryEntries[t];\n if (n.tryLoc === e) {\n var i = n.completion;\n if (\"throw\" === i.type) {\n var a = i.arg;\n A(n);\n }\n return a;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function(t, n, i) {\n return this.delegate = {\n iterator: L(t),\n resultName: n,\n nextLoc: i\n }, \"next\" === this.method && (this.arg = e), y;\n }\n }, t;\n }\n function d(e, t) {\n var n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!n) {\n if (Array.isArray(e) || (n = function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return h(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return h(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n n && (e = n);\n var i = 0, a = function() {};\n return {\n s: a,\n n: function() {\n return i >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[i++]\n };\n },\n e: function(e) {\n throw e;\n },\n f: a\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 var r, o = !0, l = !1;\n return {\n s: function() {\n n = n.call(e);\n },\n n: function() {\n var e = n.next();\n return o = e.done, e;\n },\n e: function(e) {\n l = !0, r = e;\n },\n f: function() {\n try {\n o || null == n.return || n.return();\n } finally {\n if (l) throw r;\n }\n }\n };\n }\n function h(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n function v(e, t, n, i, a, r, o) {\n try {\n var l = e[r](o), s = l.value;\n } catch (e) {\n return void n(e);\n }\n l.done ? t(s) : Promise.resolve(s).then(i, a);\n }\n var m, g, y = t.EventHandlers = {\n keyEvent: function(e, t, n, i, a) {\n var o = this.inputmask, p = o.opts, d = o.dependencyLib, h = o.maskset, v = this, m = d(v), g = e.key, k = c.caret.call(o, v), b = p.onKeyDown.call(this, e, c.getBuffer.call(o), k, p);\n if (void 0 !== b) return b;\n if (g === s.keys.Backspace || g === s.keys.Delete || r.iphone && g === s.keys.BACKSPACE_SAFARI || e.ctrlKey && g === s.keys.x && !(\"oncut\" in v)) e.preventDefault(), \n u.handleRemove.call(o, v, g, k), (0, l.writeBuffer)(v, c.getBuffer.call(o, !0), h.p, e, v.inputmask._valueGet() !== c.getBuffer.call(o).join(\"\")); else if (g === s.keys.End || g === s.keys.PageDown) {\n e.preventDefault();\n var x = c.seekNext.call(o, c.getLastValidPosition.call(o));\n c.caret.call(o, v, e.shiftKey ? k.begin : x, x, !0);\n } else g === s.keys.Home && !e.shiftKey || g === s.keys.PageUp ? (e.preventDefault(), \n c.caret.call(o, v, 0, e.shiftKey ? k.begin : 0, !0)) : p.undoOnEscape && g === s.keys.Escape && !0 !== e.altKey ? ((0, \n l.checkVal)(v, !0, !1, o.undoValue.split(\"\")), m.trigger(\"click\")) : g !== s.keys.Insert || e.shiftKey || e.ctrlKey || void 0 !== o.userOptions.insertMode ? !0 === p.tabThrough && g === s.keys.Tab ? !0 === e.shiftKey ? (k.end = c.seekPrevious.call(o, k.end, !0), \n !0 === f.getTest.call(o, k.end - 1).match.static && k.end--, k.begin = c.seekPrevious.call(o, k.end, !0), \n k.begin >= 0 && k.end > 0 && (e.preventDefault(), c.caret.call(o, v, k.begin, k.end))) : (k.begin = c.seekNext.call(o, k.begin, !0), \n k.end = c.seekNext.call(o, k.begin, !0), k.end < h.maskLength && k.end--, k.begin <= h.maskLength && (e.preventDefault(), \n c.caret.call(o, v, k.begin, k.end))) : e.shiftKey || (p.insertModeVisual && !1 === p.insertMode ? g === s.keys.ArrowRight ? setTimeout((function() {\n var e = c.caret.call(o, v);\n c.caret.call(o, v, e.begin);\n }), 0) : g === s.keys.ArrowLeft && setTimeout((function() {\n var e = c.translatePosition.call(o, v.inputmask.caretPos.begin);\n c.translatePosition.call(o, v.inputmask.caretPos.end);\n o.isRTL ? c.caret.call(o, v, e + (e === h.maskLength ? 0 : 1)) : c.caret.call(o, v, e - (0 === e ? 0 : 1));\n }), 0) : void 0 === o.keyEventHook || o.keyEventHook(e)) : u.isSelection.call(o, k) ? p.insertMode = !p.insertMode : (p.insertMode = !p.insertMode, \n c.caret.call(o, v, k.begin, k.begin));\n return o.isComposing = g == s.keys.Process || g == s.keys.Unidentified, o.ignorable = g.length > 1 && !(\"textarea\" === v.tagName.toLowerCase() && g == s.keys.Enter), \n y.keypressEvent.call(this, e, t, n, i, a);\n },\n keypressEvent: function(e, t, n, i, a) {\n var r = this.inputmask || this, o = r.opts, f = r.dependencyLib, p = r.maskset, d = r.el, h = f(d), v = e.key;\n if (!0 === t || e.ctrlKey && e.altKey && !r.ignorable || !(e.ctrlKey || e.metaKey || r.ignorable)) {\n if (v) {\n var m, g = t ? {\n begin: a,\n end: a\n } : c.caret.call(r, d);\n t || (v = o.substitutes[v] || v), p.writeOutBuffer = !0;\n var y = u.isValid.call(r, g, v, i, void 0, void 0, void 0, t);\n if (!1 !== y && (c.resetMaskSet.call(r, !0), m = void 0 !== y.caret ? y.caret : c.seekNext.call(r, y.pos.begin ? y.pos.begin : y.pos), \n p.p = m), m = o.numericInput && void 0 === y.caret ? c.seekPrevious.call(r, m) : m, \n !1 !== n && (setTimeout((function() {\n o.onKeyValidation.call(d, v, y);\n }), 0), p.writeOutBuffer && !1 !== y)) {\n var k = c.getBuffer.call(r);\n (0, l.writeBuffer)(d, k, m, e, !0 !== t);\n }\n if (e.preventDefault(), t) return !1 !== y && (y.forwardPosition = m), y;\n }\n } else v === s.keys.Enter && r.undoValue !== r._valueGet(!0) && (r.undoValue = r._valueGet(!0), \n setTimeout((function() {\n h.trigger(\"change\");\n }), 0));\n },\n pasteEvent: (m = p().mark((function e(t) {\n var n, i, a, r, s, u;\n return p().wrap((function(e) {\n for (;;) switch (e.prev = e.next) {\n case 0:\n n = function(e, n, i, a, o) {\n var s = c.caret.call(e, n, void 0, void 0, !0), u = i.substr(0, s.begin), f = i.substr(s.end, i.length);\n if (u == (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).slice(0, s.begin).join(\"\") && (u = \"\"), \n f == (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).slice(s.end).join(\"\") && (f = \"\"), \n a = u + a + f, e.isRTL && !0 !== r.numericInput) {\n a = a.split(\"\");\n var p, h = d(c.getBufferTemplate.call(e));\n try {\n for (h.s(); !(p = h.n()).done; ) {\n var v = p.value;\n a[0] === v && a.shift();\n }\n } catch (e) {\n h.e(e);\n } finally {\n h.f();\n }\n a = a.reverse().join(\"\");\n }\n var m = a;\n if (\"function\" == typeof o) {\n if (!1 === (m = o.call(e, m, r))) return !1;\n m || (m = i);\n }\n (0, l.checkVal)(n, !0, !1, m.toString().split(\"\"), t);\n }, i = this, a = this.inputmask, r = a.opts, s = a._valueGet(!0), a.skipInputEvent = !0, \n t.clipboardData && t.clipboardData.getData ? u = t.clipboardData.getData(\"text/plain\") : o.default.clipboardData && o.default.clipboardData.getData && (u = o.default.clipboardData.getData(\"Text\")), \n n(a, i, s, u, r.onBeforePaste), t.preventDefault();\n\n case 7:\n case \"end\":\n return e.stop();\n }\n }), e, this);\n })), g = function() {\n var e = this, t = arguments;\n return new Promise((function(n, i) {\n var a = m.apply(e, t);\n function r(e) {\n v(a, n, i, r, o, \"next\", e);\n }\n function o(e) {\n v(a, n, i, r, o, \"throw\", e);\n }\n r(void 0);\n }));\n }, function(e) {\n return g.apply(this, arguments);\n }),\n inputFallBackEvent: function(e) {\n var t = this.inputmask, n = t.opts, i = t.dependencyLib;\n var a, o = this, u = o.inputmask._valueGet(!0), p = (t.isRTL ? c.getBuffer.call(t).slice().reverse() : c.getBuffer.call(t)).join(\"\"), d = c.caret.call(t, o, void 0, void 0, !0);\n if (p !== u) {\n if (a = function(e, i, a) {\n for (var r, o, l, s = e.substr(0, a.begin).split(\"\"), u = e.substr(a.begin).split(\"\"), p = i.substr(0, a.begin).split(\"\"), d = i.substr(a.begin).split(\"\"), h = s.length >= p.length ? s.length : p.length, v = u.length >= d.length ? u.length : d.length, m = \"\", g = [], y = \"~\"; s.length < h; ) s.push(y);\n for (;p.length < h; ) p.push(y);\n for (;u.length < v; ) u.unshift(y);\n for (;d.length < v; ) d.unshift(y);\n var k = s.concat(u), b = p.concat(d);\n for (o = 0, r = k.length; o < r; o++) switch (l = f.getPlaceholder.call(t, c.translatePosition.call(t, o)), \n m) {\n case \"insertText\":\n b[o - 1] === k[o] && a.begin == k.length - 1 && g.push(k[o]), o = r;\n break;\n\n case \"insertReplacementText\":\n case \"deleteContentBackward\":\n k[o] === y ? a.end++ : o = r;\n break;\n\n default:\n k[o] !== b[o] && (k[o + 1] !== y && k[o + 1] !== l && void 0 !== k[o + 1] || (b[o] !== l || b[o + 1] !== y) && b[o] !== y ? b[o + 1] === y && b[o] === k[o + 1] ? (m = \"insertText\", \n g.push(k[o]), a.begin--, a.end--) : k[o] !== l && k[o] !== y && (k[o + 1] === y || b[o] !== k[o] && b[o + 1] === k[o + 1]) ? (m = \"insertReplacementText\", \n g.push(k[o]), a.begin--) : k[o] === y ? (m = \"deleteContentBackward\", (c.isMask.call(t, c.translatePosition.call(t, o), !0) || b[o] === n.radixPoint) && a.end++) : o = r : (m = \"insertText\", \n g.push(k[o]), a.begin--, a.end--));\n }\n return {\n action: m,\n data: g,\n caret: a\n };\n }(u, p, d), (o.inputmask.shadowRoot || o.ownerDocument).activeElement !== o && o.focus(), \n (0, l.writeBuffer)(o, c.getBuffer.call(t)), c.caret.call(t, o, d.begin, d.end, !0), \n !r.mobile && t.skipNextInsert && \"insertText\" === e.inputType && \"insertText\" === a.action && t.isComposing) return !1;\n switch (\"insertCompositionText\" === e.inputType && \"insertText\" === a.action && t.isComposing ? t.skipNextInsert = !0 : t.skipNextInsert = !1, \n a.action) {\n case \"insertText\":\n case \"insertReplacementText\":\n a.data.forEach((function(e, n) {\n var a = new i.Event(\"keypress\");\n a.key = e, t.ignorable = !1, y.keypressEvent.call(o, a);\n })), setTimeout((function() {\n t.$el.trigger(\"keyup\");\n }), 0);\n break;\n\n case \"deleteContentBackward\":\n var h = new i.Event(\"keydown\");\n h.key = s.keys.Backspace, y.keyEvent.call(o, h);\n break;\n\n default:\n (0, l.applyInputValue)(o, u), c.caret.call(t, o, d.begin, d.end, !0);\n }\n e.preventDefault();\n }\n },\n setValueEvent: function(e) {\n var t = this.inputmask, n = t.dependencyLib, i = this, a = e && e.detail ? e.detail[0] : arguments[1];\n void 0 === a && (a = i.inputmask._valueGet(!0)), (0, l.applyInputValue)(i, a, new n.Event(\"input\")), \n (e.detail && void 0 !== e.detail[1] || void 0 !== arguments[2]) && c.caret.call(t, i, e.detail ? e.detail[1] : arguments[2]);\n },\n focusEvent: function(e) {\n var t = this.inputmask, n = t.opts, i = t && t._valueGet();\n n.showMaskOnFocus && i !== c.getBuffer.call(t).join(\"\") && (0, l.writeBuffer)(this, c.getBuffer.call(t), c.seekNext.call(t, c.getLastValidPosition.call(t))), \n !0 !== n.positionCaretOnTab || !1 !== t.mouseEnter || u.isComplete.call(t, c.getBuffer.call(t)) && -1 !== c.getLastValidPosition.call(t) || y.clickEvent.apply(this, [ e, !0 ]), \n t.undoValue = t && t._valueGet(!0);\n },\n invalidEvent: function(e) {\n this.inputmask.validationEvent = !0;\n },\n mouseleaveEvent: function() {\n var e = this.inputmask, t = e.opts, n = this;\n e.mouseEnter = !1, t.clearMaskOnLostFocus && (n.inputmask.shadowRoot || n.ownerDocument).activeElement !== n && (0, \n l.HandleNativePlaceholder)(n, e.originalPlaceholder);\n },\n clickEvent: function(e, t) {\n var n = this.inputmask;\n n.clicked++;\n var i = this;\n if ((i.inputmask.shadowRoot || i.ownerDocument).activeElement === i) {\n var a = c.determineNewCaretPosition.call(n, c.caret.call(n, i), t);\n void 0 !== a && c.caret.call(n, i, a);\n }\n },\n cutEvent: function(e) {\n var t = this.inputmask, n = t.maskset, i = this, a = c.caret.call(t, i), r = t.isRTL ? c.getBuffer.call(t).slice(a.end, a.begin) : c.getBuffer.call(t).slice(a.begin, a.end), f = t.isRTL ? r.reverse().join(\"\") : r.join(\"\");\n o.default.navigator && o.default.navigator.clipboard ? o.default.navigator.clipboard.writeText(f) : o.default.clipboardData && o.default.clipboardData.getData && o.default.clipboardData.setData(\"Text\", f), \n u.handleRemove.call(t, i, s.keys.Delete, a), (0, l.writeBuffer)(i, c.getBuffer.call(t), n.p, e, t.undoValue !== t._valueGet(!0));\n },\n blurEvent: function(e) {\n var t = this.inputmask, n = t.opts, i = t.dependencyLib;\n t.clicked = 0;\n var a = i(this), r = this;\n if (r.inputmask) {\n (0, l.HandleNativePlaceholder)(r, t.originalPlaceholder);\n var o = r.inputmask._valueGet(), s = c.getBuffer.call(t).slice();\n \"\" !== o && (n.clearMaskOnLostFocus && (-1 === c.getLastValidPosition.call(t) && o === c.getBufferTemplate.call(t).join(\"\") ? s = [] : l.clearOptionalTail.call(t, s)), \n !1 === u.isComplete.call(t, s) && (setTimeout((function() {\n a.trigger(\"incomplete\");\n }), 0), n.clearIncomplete && (c.resetMaskSet.call(t, !1), s = n.clearMaskOnLostFocus ? [] : c.getBufferTemplate.call(t).slice())), \n (0, l.writeBuffer)(r, s, void 0, e)), o = t._valueGet(!0), t.undoValue !== o && (\"\" != o || t.undoValue != c.getBufferTemplate.call(t).join(\"\") || t.undoValue == c.getBufferTemplate.call(t).join(\"\") && t.maskset.validPositions.length > 0) && (t.undoValue = o, \n a.trigger(\"change\"));\n }\n },\n mouseenterEvent: function() {\n var e = this.inputmask, t = e.opts.showMaskOnHover, n = this;\n if (e.mouseEnter = !0, (n.inputmask.shadowRoot || n.ownerDocument).activeElement !== n) {\n var i = (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).join(\"\");\n t && (0, l.HandleNativePlaceholder)(n, i);\n }\n },\n submitEvent: function() {\n var e = this.inputmask, t = e.opts;\n e.undoValue !== e._valueGet(!0) && e.$el.trigger(\"change\"), -1 === c.getLastValidPosition.call(e) && e._valueGet && e._valueGet() === c.getBufferTemplate.call(e).join(\"\") && e._valueSet(\"\"), \n t.clearIncomplete && !1 === u.isComplete.call(e, c.getBuffer.call(e)) && e._valueSet(\"\"), \n t.removeMaskOnSubmit && (e._valueSet(e.unmaskedvalue(), !0), setTimeout((function() {\n (0, l.writeBuffer)(e.el, c.getBuffer.call(e));\n }), 0));\n },\n resetEvent: function() {\n var e = this.inputmask;\n e.refreshValue = !0, setTimeout((function() {\n (0, l.applyInputValue)(e.el, e._valueGet(!0));\n }), 0);\n }\n };\n },\n 9716: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventRuler = void 0;\n var i, a = n(7760), r = (i = n(2394)) && i.__esModule ? i : {\n default: i\n }, o = n(2839), l = n(8711);\n t.EventRuler = {\n on: function(e, t, n) {\n var i = e.inputmask.dependencyLib, s = function(t) {\n t.originalEvent && (t = t.originalEvent || t, arguments[0] = t);\n var s, c = this, u = c.inputmask, f = u ? u.opts : void 0;\n if (void 0 === u && \"FORM\" !== this.nodeName) {\n var p = i.data(c, \"_inputmask_opts\");\n i(c).off(), p && new r.default(p).mask(c);\n } else {\n if ([ \"submit\", \"reset\", \"setvalue\" ].includes(t.type) || \"FORM\" === this.nodeName || !(c.disabled || c.readOnly && !(\"keydown\" === t.type && t.ctrlKey && t.key === o.keys.c || !1 === f.tabThrough && t.key === o.keys.Tab))) {\n switch (t.type) {\n case \"input\":\n if (!0 === u.skipInputEvent) return u.skipInputEvent = !1, t.preventDefault();\n break;\n\n case \"click\":\n case \"focus\":\n return u.validationEvent ? (u.validationEvent = !1, e.blur(), (0, a.HandleNativePlaceholder)(e, (u.isRTL ? l.getBufferTemplate.call(u).slice().reverse() : l.getBufferTemplate.call(u)).join(\"\")), \n setTimeout((function() {\n e.focus();\n }), f.validationEventTimeOut), !1) : (s = arguments, void setTimeout((function() {\n e.inputmask && n.apply(c, s);\n }), 0));\n }\n var d = n.apply(c, arguments);\n return !1 === d && (t.preventDefault(), t.stopPropagation()), d;\n }\n t.preventDefault();\n }\n };\n [ \"submit\", \"reset\" ].includes(t) ? (s = s.bind(e), null !== e.form && i(e.form).on(t, s)) : i(e).on(t, s), \n e.inputmask.events[t] = e.inputmask.events[t] || [], e.inputmask.events[t].push(s);\n },\n off: function(e, t) {\n if (e.inputmask && e.inputmask.events) {\n var n = e.inputmask.dependencyLib, i = e.inputmask.events;\n for (var a in t && ((i = [])[t] = e.inputmask.events[t]), i) {\n for (var r = i[a]; r.length > 0; ) {\n var o = r.pop();\n [ \"submit\", \"reset\" ].includes(a) ? null !== e.form && n(e.form).off(a, o) : n(e).off(a, o);\n }\n delete e.inputmask.events[a];\n }\n }\n }\n };\n },\n 219: function(e, t, n) {\n var i = p(n(7184)), a = p(n(2394)), r = n(2839), o = n(8711), l = n(4713);\n function s(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != n) {\n var i, a, r, o, l = [], s = !0, c = !1;\n try {\n if (r = (n = n.call(e)).next, 0 === t) {\n if (Object(n) !== n) return;\n s = !1;\n } else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return l;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return c(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return c(e, t);\n }(e, t) || function() {\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 }();\n }\n function c(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n function u(e) {\n return u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, u(e);\n }\n function f(e, t) {\n for (var n = 0; n < t.length; n++) {\n var i = t[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), \n Object.defineProperty(e, (a = i.key, r = void 0, r = function(e, t) {\n if (\"object\" !== u(e) || null === e) return e;\n var n = e[Symbol.toPrimitive];\n if (void 0 !== n) {\n var i = n.call(e, t || \"default\");\n if (\"object\" !== u(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(a, \"string\"), \"symbol\" === u(r) ? r : String(r)), i);\n }\n var a, r;\n }\n function p(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n n(1313);\n var d = a.default.dependencyLib, h = function() {\n function e(t, n, i, a) {\n !function(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.mask = t, this.format = n, this.opts = i, this.inputmask = a, this._date = new Date(1, 0, 1), \n this.initDateObject(t, this.opts, this.inputmask);\n }\n var t, n, i;\n return t = e, (n = [ {\n key: \"date\",\n get: function() {\n return void 0 === this._date && (this._date = new Date(1, 0, 1), this.initDateObject(void 0, this.opts, this.inputmask)), \n this._date;\n }\n }, {\n key: \"initDateObject\",\n value: function(e, t, n) {\n var i;\n for (P(t).lastIndex = 0; i = P(t).exec(this.format); ) {\n var a = /\\d+$/.exec(i[0]), r = a ? i[0][0] + \"x\" : i[0], o = void 0;\n if (void 0 !== e) {\n if (a) {\n var s = P(t).lastIndex, c = j.call(n, i.index, t, n && n.maskset);\n P(t).lastIndex = s, o = e.slice(0, e.indexOf(c.nextMatch[0]));\n } else {\n for (var u = i[0][0], f = i.index; n && (t.placeholder[l.getTest.call(n, f).match.placeholder] || l.getTest.call(n, f).match.placeholder) === u; ) f++;\n var p = f - i.index;\n o = e.slice(0, p || y[r] && y[r][4] || r.length);\n }\n e = e.slice(o.length);\n }\n Object.prototype.hasOwnProperty.call(y, r) && this.setValue(this, o, r, y[r][2], y[r][1]);\n }\n }\n }, {\n key: \"setValue\",\n value: function(e, t, n, i, a) {\n if (void 0 !== t) switch (i) {\n case \"ampm\":\n e[i] = t, e[\"raw\" + i] = t.replace(/\\s/g, \"_\");\n break;\n\n case \"month\":\n if (\"mmm\" === n || \"mmmm\" === n) {\n e[i] = _(\"mmm\" === n ? m.monthNames.slice(0, 12).findIndex((function(e) {\n return t.toLowerCase() === e.toLowerCase();\n })) + 1 : m.monthNames.slice(12, 24).findIndex((function(e) {\n return t.toLowerCase() === e.toLowerCase();\n })) + 1, 2), e[i] = \"00\" === e[i] ? \"\" : e[i].toString(), e[\"raw\" + i] = e[i];\n break;\n }\n\n default:\n e[i] = t.replace(/[^0-9]/g, \"0\"), e[\"raw\" + i] = t.replace(/\\s/g, \"_\");\n }\n if (void 0 !== a) {\n var r = e[i];\n (\"day\" === i && 29 === parseInt(r) || \"month\" === i && 2 === parseInt(r)) && (29 !== parseInt(e.day) || 2 !== parseInt(e.month) || \"\" !== e.year && void 0 !== e.year || e._date.setFullYear(2012, 1, 29)), \n \"day\" === i && (g = !0, 0 === parseInt(r) && (r = 1)), \"month\" === i && (g = !0), \n \"year\" === i && (g = !0, r.length < y[n][4] && (r = _(r, y[n][4], !0))), (\"\" !== r && !isNaN(r) || \"ampm\" === i) && a.call(e._date, r);\n }\n }\n }, {\n key: \"reset\",\n value: function() {\n this._date = new Date(1, 0, 1);\n }\n }, {\n key: \"reInit\",\n value: function() {\n this._date = void 0, this.date;\n }\n } ]) && f(t.prototype, n), i && f(t, i), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e;\n }(), v = (new Date).getFullYear(), m = a.default.prototype.i18n, g = !1, y = {\n d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n return _(Date.prototype.getDate.call(this), 2);\n } ],\n ddd: [ \"\" ],\n dddd: [ \"\" ],\n m: [ \"[1-9]|1[012]\", function(e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return Date.prototype.getMonth.call(this) + 1;\n } ],\n mm: [ \"0[1-9]|1[012]\", function(e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return _(Date.prototype.getMonth.call(this) + 1, 2);\n } ],\n mmm: [ m.monthNames.slice(0, 12).join(\"|\"), function(e) {\n var t = m.monthNames.slice(0, 12).findIndex((function(t) {\n return e.toLowerCase() === t.toLowerCase();\n }));\n return -1 !== t && Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return m.monthNames.slice(0, 12)[Date.prototype.getMonth.call(this)];\n } ],\n mmmm: [ m.monthNames.slice(12, 24).join(\"|\"), function(e) {\n var t = m.monthNames.slice(12, 24).findIndex((function(t) {\n return e.toLowerCase() === t.toLowerCase();\n }));\n return -1 !== t && Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return m.monthNames.slice(12, 24)[Date.prototype.getMonth.call(this)];\n } ],\n yy: [ \"[0-9]{2}\", function(e) {\n var t = (new Date).getFullYear().toString().slice(0, 2);\n Date.prototype.setFullYear.call(this, \"\".concat(t).concat(e));\n }, \"year\", function() {\n return _(Date.prototype.getFullYear.call(this), 2);\n }, 2 ],\n yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n return _(Date.prototype.getFullYear.call(this), 4);\n }, 4 ],\n h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n return _(Date.prototype.getHours.call(this), 2);\n } ],\n hx: [ function(e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function(e) {\n return Date.prototype.getHours;\n } ],\n H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n return _(Date.prototype.getHours.call(this), 2);\n } ],\n Hx: [ function(e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function(e) {\n return function() {\n return _(Date.prototype.getHours.call(this), e);\n };\n } ],\n M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n return _(Date.prototype.getMinutes.call(this), 2);\n } ],\n s: [ \"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds ],\n ss: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n return _(Date.prototype.getSeconds.call(this), 2);\n } ],\n l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return _(Date.prototype.getMilliseconds.call(this), 3);\n }, 3 ],\n L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return _(Date.prototype.getMilliseconds.call(this), 2);\n }, 2 ],\n t: [ \"[ap]\", b, \"ampm\", x, 1 ],\n tt: [ \"[ap]m\", b, \"ampm\", x, 2 ],\n T: [ \"[AP]\", b, \"ampm\", x, 1 ],\n TT: [ \"[AP]M\", b, \"ampm\", x, 2 ],\n Z: [ \".*\", void 0, \"Z\", function() {\n var e = this.toString().match(/\\((.+)\\)/)[1];\n e.includes(\" \") && (e = (e = e.replace(\"-\", \" \").toUpperCase()).split(\" \").map((function(e) {\n return s(e, 1)[0];\n })).join(\"\"));\n return e;\n } ],\n o: [ \"\" ],\n S: [ \"\" ]\n }, k = {\n isoDate: \"yyyy-mm-dd\",\n isoTime: \"HH:MM:ss\",\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n };\n function b(e) {\n var t = this.getHours();\n e.toLowerCase().includes(\"p\") ? this.setHours(t + 12) : e.toLowerCase().includes(\"a\") && t >= 12 && this.setHours(t - 12);\n }\n function x() {\n var e = this.getHours();\n return (e = e || 12) >= 12 ? \"PM\" : \"AM\";\n }\n function w(e) {\n var t = /\\d+$/.exec(e[0]);\n if (t && void 0 !== t[0]) {\n var n = y[e[0][0] + \"x\"].slice(\"\");\n return n[0] = n[0](t[0]), n[3] = n[3](t[0]), n;\n }\n if (y[e[0]]) return y[e[0]];\n }\n function P(e) {\n if (!e.tokenizer) {\n var t = [], n = [];\n for (var i in y) if (/\\.*x$/.test(i)) {\n var a = i[0] + \"\\\\d+\";\n -1 === n.indexOf(a) && n.push(a);\n } else -1 === t.indexOf(i[0]) && t.push(i[0]);\n e.tokenizer = \"(\" + (n.length > 0 ? n.join(\"|\") + \"|\" : \"\") + t.join(\"+|\") + \")+?|.\", \n e.tokenizer = new RegExp(e.tokenizer, \"g\");\n }\n return e.tokenizer;\n }\n function S(e, t, n) {\n if (!g) return !0;\n if (void 0 === e.rawday || !isFinite(e.rawday) && new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day || \"29\" == e.day && (!isFinite(e.rawyear) || void 0 === e.rawyear || \"\" === e.rawyear) || new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day) return t;\n if (\"29\" == e.day) {\n var i = j.call(this, t.pos, n, this.maskset);\n if (i.targetMatch && \"yyyy\" === i.targetMatch[0] && t.pos - i.targetMatchIndex == 2) return t.remove = t.pos + 1, \n t;\n } else if (2 == e.date.getMonth() && \"30\" == e.day && void 0 !== t.c) return e.day = \"03\", \n e.date.setDate(3), e.date.setMonth(1), t.insert = [ {\n pos: t.pos,\n c: \"0\"\n }, {\n pos: t.pos + 1,\n c: t.c\n } ], t.caret = o.seekNext.call(this, t.pos + 1), t;\n return !1;\n }\n function O(e, t, n, a) {\n var r, o, l = \"\", s = 0, c = {};\n for (P(n).lastIndex = 0; r = P(n).exec(e); ) {\n if (void 0 === t) if (o = w(r)) l += \"(\" + o[0] + \")\", n.placeholder && \"\" !== n.placeholder ? (c[s] = n.placeholder[r.index % n.placeholder.length], \n c[n.placeholder[r.index % n.placeholder.length]] = r[0].charAt(0)) : c[s] = r[0].charAt(0); else switch (r[0]) {\n case \"[\":\n l += \"(\";\n break;\n\n case \"]\":\n l += \")?\";\n break;\n\n default:\n l += (0, i.default)(r[0]), c[s] = r[0].charAt(0);\n } else if (o = w(r)) if (!0 !== a && o[3]) l += o[3].call(t.date); else o[2] ? l += t[\"raw\" + o[2]] : l += r[0]; else l += r[0];\n s++;\n }\n return void 0 === t && (n.placeholder = c), l;\n }\n function _(e, t, n) {\n for (e = String(e), t = t || 2; e.length < t; ) e = n ? e + \"0\" : \"0\" + e;\n return e;\n }\n function M(e, t, n) {\n return \"string\" == typeof e ? new h(e, t, n, this) : e && \"object\" === u(e) && Object.prototype.hasOwnProperty.call(e, \"date\") ? e : void 0;\n }\n function E(e, t) {\n return O(t.inputFormat, {\n date: e\n }, t);\n }\n function j(e, t, n) {\n var i, a, r = this, o = n && n.tests[e] ? t.placeholder[n.tests[e][0].match.placeholder] || n.tests[e][0].match.placeholder : \"\", s = 0, c = 0;\n for (P(t).lastIndex = 0; a = P(t).exec(t.inputFormat); ) {\n var u = /\\d+$/.exec(a[0]);\n if (u) c = parseInt(u[0]); else {\n for (var f = a[0][0], p = s; r && (t.placeholder[l.getTest.call(r, p).match.placeholder] || l.getTest.call(r, p).match.placeholder) === f; ) p++;\n 0 === (c = p - s) && (c = a[0].length);\n }\n if (s += c, -1 != a[0].indexOf(o) || s >= e + 1) {\n i = a, a = P(t).exec(t.inputFormat);\n break;\n }\n }\n return {\n targetMatchIndex: s - c,\n nextMatch: a,\n targetMatch: i\n };\n }\n a.default.extendAliases({\n datetime: {\n mask: function(e) {\n return e.numericInput = !1, y.S = m.ordinalSuffix.join(\"|\"), e.inputFormat = k[e.inputFormat] || e.inputFormat, \n e.displayFormat = k[e.displayFormat] || e.displayFormat || e.inputFormat, e.outputFormat = k[e.outputFormat] || e.outputFormat || e.inputFormat, \n e.regex = O(e.inputFormat, void 0, e), e.min = M(e.min, e.inputFormat, e), e.max = M(e.max, e.inputFormat, e), \n null;\n },\n placeholder: \"\",\n inputFormat: \"isoDateTime\",\n displayFormat: null,\n outputFormat: null,\n min: null,\n max: null,\n skipOptionalPartCharacter: \"\",\n preValidation: function(e, t, n, i, a, r, o, l) {\n if (l) return !0;\n if (isNaN(n) && e[t] !== n) {\n var s = j.call(this, t, a, r);\n if (s.nextMatch && s.nextMatch[0] === n && s.targetMatch[0].length > 1) {\n var c = w(s.targetMatch)[0];\n if (new RegExp(c).test(\"0\" + e[t - 1])) return e[t] = e[t - 1], e[t - 1] = \"0\", \n {\n fuzzy: !0,\n buffer: e,\n refreshFromBuffer: {\n start: t - 1,\n end: t + 1\n },\n pos: t + 1\n };\n }\n }\n return !0;\n },\n postValidation: function(e, t, n, i, a, r, o, s) {\n var c, u, f = this;\n if (o) return !0;\n if (!1 === i && (((c = j.call(f, t + 1, a, r)).targetMatch && c.targetMatchIndex === t && c.targetMatch[0].length > 1 && void 0 !== y[c.targetMatch[0]] || (c = j.call(f, t + 2, a, r)).targetMatch && c.targetMatchIndex === t + 1 && c.targetMatch[0].length > 1 && void 0 !== y[c.targetMatch[0]]) && (u = w(c.targetMatch)[0]), \n void 0 !== u && (void 0 !== r.validPositions[t + 1] && new RegExp(u).test(n + \"0\") ? (e[t] = n, \n e[t + 1] = \"0\", i = {\n pos: t + 2,\n caret: t\n }) : new RegExp(u).test(\"0\" + n) && (e[t] = \"0\", e[t + 1] = n, i = {\n pos: t + 2\n })), !1 === i)) return i;\n if (i.fuzzy && (e = i.buffer, t = i.pos), (c = j.call(f, t, a, r)).targetMatch && c.targetMatch[0] && void 0 !== y[c.targetMatch[0]]) {\n var p = w(c.targetMatch);\n u = p[0];\n var d = e.slice(c.targetMatchIndex, c.targetMatchIndex + c.targetMatch[0].length);\n if (!1 === new RegExp(u).test(d.join(\"\")) && 2 === c.targetMatch[0].length && r.validPositions[c.targetMatchIndex] && r.validPositions[c.targetMatchIndex + 1] && (r.validPositions[c.targetMatchIndex + 1].input = \"0\"), \n \"year\" == p[2]) for (var h = l.getMaskTemplate.call(f, !1, 1, void 0, !0), m = t + 1; m < e.length; m++) e[m] = h[m], \n r.validPositions.splice(t + 1, 1);\n }\n var g = i, k = M.call(f, e.join(\"\"), a.inputFormat, a);\n return g && !isNaN(k.date.getTime()) && (a.prefillYear && (g = function(e, t, n) {\n if (e.year !== e.rawyear) {\n var i = v.toString(), a = e.rawyear.replace(/[^0-9]/g, \"\"), r = i.slice(0, a.length), o = i.slice(a.length);\n if (2 === a.length && a === r) {\n var l = new Date(v, e.month - 1, e.day);\n e.day == l.getDate() && (!n.max || n.max.date.getTime() >= l.getTime()) && (e.date.setFullYear(v), \n e.year = i, t.insert = [ {\n pos: t.pos + 1,\n c: o[0]\n }, {\n pos: t.pos + 2,\n c: o[1]\n } ]);\n }\n }\n return t;\n }(k, g, a)), g = function(e, t, n, i, a) {\n if (!t) return t;\n if (t && n.min && !isNaN(n.min.date.getTime())) {\n var r;\n for (e.reset(), P(n).lastIndex = 0; r = P(n).exec(n.inputFormat); ) {\n var o;\n if ((o = w(r)) && o[3]) {\n for (var l = o[1], s = e[o[2]], c = n.min[o[2]], u = n.max ? n.max[o[2]] : c + 1, f = [], p = !1, d = 0; d < c.length; d++) void 0 !== i.validPositions[d + r.index] || p ? (f[d] = s[d], \n p = p || s[d] > c[d]) : (d + r.index == 0 && s[d] < c[d] ? (f[d] = s[d], p = !0) : f[d] = c[d], \n \"year\" === o[2] && s.length - 1 == d && c != u && (f = (parseInt(f.join(\"\")) + 1).toString().split(\"\")), \n \"ampm\" === o[2] && c != u && n.min.date.getTime() > e.date.getTime() && (f[d] = u[d]));\n l.call(e._date, f.join(\"\"));\n }\n }\n t = n.min.date.getTime() <= e.date.getTime(), e.reInit();\n }\n return t && n.max && (isNaN(n.max.date.getTime()) || (t = n.max.date.getTime() >= e.date.getTime())), \n t;\n }(k, g = S.call(f, k, g, a), a, r)), void 0 !== t && g && i.pos !== t ? {\n buffer: O(a.inputFormat, k, a).split(\"\"),\n refreshFromBuffer: {\n start: t,\n end: i.pos\n },\n pos: i.caret || i.pos\n } : g;\n },\n onKeyDown: function(e, t, n, i) {\n e.ctrlKey && e.key === r.keys.ArrowRight && (this.inputmask._valueSet(E(new Date, i)), \n d(this).trigger(\"setvalue\"));\n },\n onUnMask: function(e, t, n) {\n return t ? O(n.outputFormat, M.call(this, e, n.inputFormat, n), n, !0) : t;\n },\n casing: function(e, t, n, i) {\n if (0 == t.nativeDef.indexOf(\"[ap]\")) return e.toLowerCase();\n if (0 == t.nativeDef.indexOf(\"[AP]\")) return e.toUpperCase();\n var a = l.getTest.call(this, [ n - 1 ]);\n return 0 == a.match.def.indexOf(\"[AP]\") || 0 === n || a && a.input === String.fromCharCode(r.keyCode.Space) || a && a.match.def === String.fromCharCode(r.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n },\n onBeforeMask: function(e, t) {\n return \"[object Date]\" === Object.prototype.toString.call(e) && (e = E(e, t)), e;\n },\n insertMode: !1,\n insertModeVisual: !1,\n shiftPositions: !1,\n keepStatic: !1,\n inputmode: \"numeric\",\n prefillYear: !0\n }\n });\n },\n 1313: function(e, t, n) {\n var i, a = (i = n(2394)) && i.__esModule ? i : {\n default: i\n };\n a.default.dependencyLib.extend(!0, a.default.prototype.i18n, {\n dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n });\n },\n 3851: function(e, t, n) {\n var i, a = (i = n(2394)) && i.__esModule ? i : {\n default: i\n }, r = n(8711), o = n(4713);\n function l(e) {\n return function(e) {\n if (Array.isArray(e)) return s(e);\n }(e) || function(e) {\n if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e);\n }(e) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return s(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return s(e, t);\n }(e) || function() {\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 }();\n }\n function s(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n a.default.extendDefinitions({\n A: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"&\": {\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"#\": {\n validator: \"[0-9A-Fa-f]\",\n casing: \"upper\"\n }\n });\n var c = /25[0-5]|2[0-4][0-9]|[01][0-9][0-9]/;\n function u(e, t, n, i, a) {\n if (n - 1 > -1 && \".\" !== t.buffer[n - 1] ? (e = t.buffer[n - 1] + e, e = n - 2 > -1 && \".\" !== t.buffer[n - 2] ? t.buffer[n - 2] + e : \"0\" + e) : e = \"00\" + e, \n a.greedy && parseInt(e) > 255 && c.test(\"00\" + e.charAt(2))) {\n var r = [].concat(l(t.buffer.slice(0, n)), [ \".\", e.charAt(2) ]);\n if (r.join(\"\").match(/\\./g).length < 4) return {\n refreshFromBuffer: !0,\n buffer: r,\n caret: n + 2\n };\n }\n return c.test(e);\n }\n a.default.extendAliases({\n cssunit: {\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n },\n url: {\n regex: \"(https?|ftp)://.*\",\n autoUnmask: !1,\n keepStatic: !1,\n tabThrough: !0\n },\n ip: {\n mask: \"i{1,3}.j{1,3}.k{1,3}.l{1,3}\",\n definitions: {\n i: {\n validator: u\n },\n j: {\n validator: u\n },\n k: {\n validator: u\n },\n l: {\n validator: u\n }\n },\n onUnMask: function(e, t, n) {\n return e;\n },\n inputmode: \"decimal\",\n substitutes: {\n \",\": \".\"\n }\n },\n email: {\n mask: function(e) {\n var t = e.separator, n = e.quantifier, i = \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\", a = i;\n if (t) for (var r = 0; r < n; r++) a += \"[\".concat(t).concat(i, \"]\");\n return a;\n },\n greedy: !1,\n casing: \"lower\",\n separator: null,\n quantifier: 5,\n skipOptionalPartCharacter: \"\",\n onBeforePaste: function(e, t) {\n return (e = e.toLowerCase()).replace(\"mailto:\", \"\");\n },\n definitions: {\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n },\n \"-\": {\n validator: \"[0-9A-Za-z-]\"\n }\n },\n onUnMask: function(e, t, n) {\n return e;\n },\n inputmode: \"email\"\n },\n mac: {\n mask: \"##:##:##:##:##:##\"\n },\n vin: {\n mask: \"V{13}9{4}\",\n definitions: {\n V: {\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n casing: \"upper\"\n }\n },\n clearIncomplete: !0,\n autoUnmask: !0\n },\n ssn: {\n mask: \"999-99-9999\",\n postValidation: function(e, t, n, i, a, l, s) {\n var c = o.getMaskTemplate.call(this, !0, r.getLastValidPosition.call(this), !0, !0);\n return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(c.join(\"\"));\n }\n }\n });\n },\n 207: function(e, t, n) {\n var i = l(n(7184)), a = l(n(2394)), r = n(2839), o = n(8711);\n function l(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var s = a.default.dependencyLib;\n function c(e, t) {\n for (var n = \"\", i = 0; i < e.length; i++) a.default.prototype.definitions[e.charAt(i)] || t.definitions[e.charAt(i)] || t.optionalmarker[0] === e.charAt(i) || t.optionalmarker[1] === e.charAt(i) || t.quantifiermarker[0] === e.charAt(i) || t.quantifiermarker[1] === e.charAt(i) || t.groupmarker[0] === e.charAt(i) || t.groupmarker[1] === e.charAt(i) || t.alternatormarker === e.charAt(i) ? n += \"\\\\\" + e.charAt(i) : n += e.charAt(i);\n return n;\n }\n function u(e, t, n, i) {\n if (e.length > 0 && t > 0 && (!n.digitsOptional || i)) {\n var a = e.indexOf(n.radixPoint), r = !1;\n n.negationSymbol.back === e[e.length - 1] && (r = !0, e.length--), -1 === a && (e.push(n.radixPoint), \n a = e.length - 1);\n for (var o = 1; o <= t; o++) isFinite(e[a + o]) || (e[a + o] = \"0\");\n }\n return r && e.push(n.negationSymbol.back), e;\n }\n function f(e, t) {\n var n = 0;\n for (var i in \"+\" === e && (n = o.seekNext.call(this, t.validPositions.length - 1)), \n t.tests) if ((i = parseInt(i)) >= n) for (var a = 0, r = t.tests[i].length; a < r; a++) if ((void 0 === t.validPositions[i] || \"-\" === e) && t.tests[i][a].match.def === e) return i + (void 0 !== t.validPositions[i] && \"-\" !== e ? 1 : 0);\n return n;\n }\n function p(e, t) {\n for (var n = -1, i = 0, a = t.validPositions.length; i < a; i++) {\n var r = t.validPositions[i];\n if (r && r.match.def === e) {\n n = i;\n break;\n }\n }\n return n;\n }\n function d(e, t, n, i, a) {\n var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1, o = (-1 !== r || i && a.jitMasking) && new RegExp(a.definitions[9].validator).test(e);\n return !i && a._radixDance && -1 !== r && o && null == t.validPositions[r] ? {\n insert: {\n pos: r === n ? r + 1 : r,\n c: a.radixPoint\n },\n pos: n\n } : o;\n }\n a.default.extendAliases({\n numeric: {\n mask: function(e) {\n e.repeat = 0, e.groupSeparator === e.radixPoint && e.digits && \"0\" !== e.digits && (\".\" === e.radixPoint ? e.groupSeparator = \",\" : \",\" === e.radixPoint ? e.groupSeparator = \".\" : e.groupSeparator = \"\"), \n \" \" === e.groupSeparator && (e.skipOptionalPartCharacter = void 0), e.placeholder.length > 1 && (e.placeholder = e.placeholder.charAt(0)), \n \"radixFocus\" === e.positionCaretOnClick && \"\" === e.placeholder && (e.positionCaretOnClick = \"lvp\");\n var t = \"0\", n = e.radixPoint;\n !0 === e.numericInput && void 0 === e.__financeInput ? (t = \"1\", e.positionCaretOnClick = \"radixFocus\" === e.positionCaretOnClick ? \"lvp\" : e.positionCaretOnClick, \n e.digitsOptional = !1, isNaN(e.digits) && (e.digits = 2), e._radixDance = !1, n = \",\" === e.radixPoint ? \"?\" : \"!\", \n \"\" !== e.radixPoint && void 0 === e.definitions[n] && (e.definitions[n] = {}, e.definitions[n].validator = \"[\" + e.radixPoint + \"]\", \n e.definitions[n].placeholder = e.radixPoint, e.definitions[n].static = !0, e.definitions[n].generated = !0)) : (e.__financeInput = !1, \n e.numericInput = !0);\n var a, r = \"[+]\";\n if (r += c(e.prefix, e), \"\" !== e.groupSeparator ? (void 0 === e.definitions[e.groupSeparator] && (e.definitions[e.groupSeparator] = {}, \n e.definitions[e.groupSeparator].validator = \"[\" + e.groupSeparator + \"]\", e.definitions[e.groupSeparator].placeholder = e.groupSeparator, \n e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), \n r += e._mask(e)) : r += \"9{+}\", void 0 !== e.digits && 0 !== e.digits) {\n var o = e.digits.toString().split(\",\");\n isFinite(o[0]) && o[1] && isFinite(o[1]) ? r += n + t + \"{\" + e.digits + \"}\" : (isNaN(e.digits) || parseInt(e.digits) > 0) && (e.digitsOptional || e.jitMasking ? (a = r + n + t + \"{0,\" + e.digits + \"}\", \n e.keepStatic = !0) : r += n + t + \"{\" + e.digits + \"}\");\n } else e.inputmode = \"numeric\";\n return r += c(e.suffix, e), r += \"[-]\", a && (r = [ a + c(e.suffix, e) + \"[-]\", r ]), \n e.greedy = !1, function(e) {\n void 0 === e.parseMinMaxOptions && (null !== e.min && (e.min = e.min.toString().replace(new RegExp((0, \n i.default)(e.groupSeparator), \"g\"), \"\"), \",\" === e.radixPoint && (e.min = e.min.replace(e.radixPoint, \".\")), \n e.min = isFinite(e.min) ? parseFloat(e.min) : NaN, isNaN(e.min) && (e.min = Number.MIN_VALUE)), \n null !== e.max && (e.max = e.max.toString().replace(new RegExp((0, i.default)(e.groupSeparator), \"g\"), \"\"), \n \",\" === e.radixPoint && (e.max = e.max.replace(e.radixPoint, \".\")), e.max = isFinite(e.max) ? parseFloat(e.max) : NaN, \n isNaN(e.max) && (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = \"done\");\n }(e), \"\" !== e.radixPoint && e.substituteRadixPoint && (e.substitutes[\".\" == e.radixPoint ? \",\" : \".\"] = e.radixPoint), \n r;\n },\n _mask: function(e) {\n return \"(\" + e.groupSeparator + \"999){+|1}\";\n },\n digits: \"*\",\n digitsOptional: !0,\n enforceDigitsOnBlur: !1,\n radixPoint: \".\",\n positionCaretOnClick: \"radixFocus\",\n _radixDance: !0,\n groupSeparator: \"\",\n allowMinus: !0,\n negationSymbol: {\n front: \"-\",\n back: \"\"\n },\n prefix: \"\",\n suffix: \"\",\n min: null,\n max: null,\n SetMaxOnOverflow: !1,\n step: 1,\n inputType: \"text\",\n unmaskAsNumber: !1,\n roundingFN: Math.round,\n inputmode: \"decimal\",\n shortcuts: {\n k: \"1000\",\n m: \"1000000\"\n },\n placeholder: \"0\",\n greedy: !1,\n rightAlign: !0,\n insertMode: !0,\n autoUnmask: !1,\n skipOptionalPartCharacter: \"\",\n usePrototypeDefinitions: !1,\n stripLeadingZeroes: !0,\n substituteRadixPoint: !0,\n definitions: {\n 0: {\n validator: d\n },\n 1: {\n validator: d,\n definitionSymbol: \"9\"\n },\n 9: {\n validator: \"[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\",\n definitionSymbol: \"*\"\n },\n \"+\": {\n validator: function(e, t, n, i, a) {\n return a.allowMinus && (\"-\" === e || e === a.negationSymbol.front);\n }\n },\n \"-\": {\n validator: function(e, t, n, i, a) {\n return a.allowMinus && e === a.negationSymbol.back;\n }\n }\n },\n preValidation: function(e, t, n, i, a, r, o, l) {\n var s = this;\n if (!1 !== a.__financeInput && n === a.radixPoint) return !1;\n var c = e.indexOf(a.radixPoint), u = t;\n if (t = function(e, t, n, i, a) {\n return a._radixDance && a.numericInput && t !== a.negationSymbol.back && e <= n && (n > 0 || t == a.radixPoint) && (void 0 === i.validPositions[e - 1] || i.validPositions[e - 1].input !== a.negationSymbol.back) && (e -= 1), \n e;\n }(t, n, c, r, a), \"-\" === n || n === a.negationSymbol.front) {\n if (!0 !== a.allowMinus) return !1;\n var d = !1, h = p(\"+\", r), v = p(\"-\", r);\n return -1 !== h && (d = [ h ], -1 !== v && d.push(v)), !1 !== d ? {\n remove: d,\n caret: u - a.negationSymbol.back.length\n } : {\n insert: [ {\n pos: f.call(s, \"+\", r),\n c: a.negationSymbol.front,\n fromIsValid: !0\n }, {\n pos: f.call(s, \"-\", r),\n c: a.negationSymbol.back,\n fromIsValid: void 0\n } ],\n caret: u + a.negationSymbol.back.length\n };\n }\n if (n === a.groupSeparator) return {\n caret: u\n };\n if (l) return !0;\n if (-1 !== c && !0 === a._radixDance && !1 === i && n === a.radixPoint && void 0 !== a.digits && (isNaN(a.digits) || parseInt(a.digits) > 0) && c !== t) {\n var m = f.call(s, a.radixPoint, r);\n return r.validPositions[m] && (r.validPositions[m].generatedInput = r.validPositions[m].generated || !1), \n {\n caret: a._radixDance && t === c - 1 ? c + 1 : c\n };\n }\n if (!1 === a.__financeInput) if (i) {\n if (a.digitsOptional) return {\n rewritePosition: o.end\n };\n if (!a.digitsOptional) {\n if (o.begin > c && o.end <= c) return n === a.radixPoint ? {\n insert: {\n pos: c + 1,\n c: \"0\",\n fromIsValid: !0\n },\n rewritePosition: c\n } : {\n rewritePosition: c + 1\n };\n if (o.begin < c) return {\n rewritePosition: o.begin - 1\n };\n }\n } else if (!a.showMaskOnHover && !a.showMaskOnFocus && !a.digitsOptional && a.digits > 0 && \"\" === this.__valueGet.call(this.el)) return {\n rewritePosition: c\n };\n return {\n rewritePosition: t\n };\n },\n postValidation: function(e, t, n, i, a, r, o) {\n if (!1 === i) return i;\n if (o) return !0;\n if (null !== a.min || null !== a.max) {\n var l = a.onUnMask(e.slice().reverse().join(\"\"), void 0, s.extend({}, a, {\n unmaskAsNumber: !0\n }));\n if (null !== a.min && l < a.min && (l.toString().length > a.min.toString().length || l < 0)) return !1;\n if (null !== a.max && l > a.max) return !!a.SetMaxOnOverflow && {\n refreshFromBuffer: !0,\n buffer: u(a.max.toString().replace(\".\", a.radixPoint).split(\"\"), a.digits, a).reverse()\n };\n }\n return i;\n },\n onUnMask: function(e, t, n) {\n if (\"\" === t && !0 === n.nullable) return t;\n var a = e.replace(n.prefix, \"\");\n return a = (a = a.replace(n.suffix, \"\")).replace(new RegExp((0, i.default)(n.groupSeparator), \"g\"), \"\"), \n \"\" !== n.placeholder.charAt(0) && (a = a.replace(new RegExp(n.placeholder.charAt(0), \"g\"), \"0\")), \n n.unmaskAsNumber ? (\"\" !== n.radixPoint && -1 !== a.indexOf(n.radixPoint) && (a = a.replace(i.default.call(this, n.radixPoint), \".\")), \n a = (a = a.replace(new RegExp(\"^\" + (0, i.default)(n.negationSymbol.front)), \"-\")).replace(new RegExp((0, \n i.default)(n.negationSymbol.back) + \"$\"), \"\"), Number(a)) : a;\n },\n isComplete: function(e, t) {\n var n = (t.numericInput ? e.slice().reverse() : e).join(\"\");\n return n = (n = (n = (n = (n = n.replace(new RegExp(\"^\" + (0, i.default)(t.negationSymbol.front)), \"-\")).replace(new RegExp((0, \n i.default)(t.negationSymbol.back) + \"$\"), \"\")).replace(t.prefix, \"\")).replace(t.suffix, \"\")).replace(new RegExp((0, \n i.default)(t.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \",\" === t.radixPoint && (n = n.replace((0, \n i.default)(t.radixPoint), \".\")), isFinite(n);\n },\n onBeforeMask: function(e, t) {\n var n;\n e = null !== (n = e) && void 0 !== n ? n : \"\";\n var a = t.radixPoint || \",\";\n isFinite(t.digits) && (t.digits = parseInt(t.digits)), \"number\" != typeof e && \"number\" !== t.inputType || \"\" === a || (e = e.toString().replace(\".\", a));\n var r = \"-\" === e.charAt(0) || e.charAt(0) === t.negationSymbol.front, o = e.split(a), l = o[0].replace(/[^\\-0-9]/g, \"\"), s = o.length > 1 ? o[1].replace(/[^0-9]/g, \"\") : \"\", c = o.length > 1;\n e = l + (\"\" !== s ? a + s : s);\n var f = 0;\n if (\"\" !== a && (f = t.digitsOptional ? t.digits < s.length ? t.digits : s.length : t.digits, \n \"\" !== s || !t.digitsOptional)) {\n var p = Math.pow(10, f || 1);\n e = e.replace((0, i.default)(a), \".\"), isNaN(parseFloat(e)) || (e = (t.roundingFN(parseFloat(e) * p) / p).toFixed(f)), \n e = e.toString().replace(\".\", a);\n }\n if (0 === t.digits && -1 !== e.indexOf(a) && (e = e.substring(0, e.indexOf(a))), \n null !== t.min || null !== t.max) {\n var d = e.toString().replace(a, \".\");\n null !== t.min && d < t.min ? e = t.min.toString().replace(\".\", a) : null !== t.max && d > t.max && (e = t.max.toString().replace(\".\", a));\n }\n return r && \"-\" !== e.charAt(0) && (e = \"-\" + e), u(e.toString().split(\"\"), f, t, c).join(\"\");\n },\n onBeforeWrite: function(e, t, n, a) {\n function r(e, t) {\n if (!1 !== a.__financeInput || t) {\n var n = e.indexOf(a.radixPoint);\n -1 !== n && e.splice(n, 1);\n }\n if (\"\" !== a.groupSeparator) for (;-1 !== (n = e.indexOf(a.groupSeparator)); ) e.splice(n, 1);\n return e;\n }\n var o, l;\n if (a.stripLeadingZeroes && (l = function(e, t) {\n var n = new RegExp(\"(^\" + (\"\" !== t.negationSymbol.front ? (0, i.default)(t.negationSymbol.front) + \"?\" : \"\") + (0, \n i.default)(t.prefix) + \")(.*)(\" + (0, i.default)(t.suffix) + (\"\" != t.negationSymbol.back ? (0, \n i.default)(t.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(e.slice().reverse().join(\"\")), a = n ? n[2] : \"\", r = !1;\n return a && (a = a.split(t.radixPoint.charAt(0))[0], r = new RegExp(\"^[0\" + t.groupSeparator + \"]*\").exec(a)), \n !(!r || !(r[0].length > 1 || r[0].length > 0 && r[0].length < a.length)) && r;\n }(t, a))) for (var c = t.join(\"\").lastIndexOf(l[0].split(\"\").reverse().join(\"\")) - (l[0] == l.input ? 0 : 1), f = l[0] == l.input ? 1 : 0, p = l[0].length - f; p > 0; p--) this.maskset.validPositions.splice(c + p, 1), \n delete t[c + p];\n if (e) switch (e.type) {\n case \"blur\":\n case \"checkval\":\n if (null !== a.min) {\n var d = a.onUnMask(t.slice().reverse().join(\"\"), void 0, s.extend({}, a, {\n unmaskAsNumber: !0\n }));\n if (null !== a.min && d < a.min) return {\n refreshFromBuffer: !0,\n buffer: u(a.min.toString().replace(\".\", a.radixPoint).split(\"\"), a.digits, a).reverse()\n };\n }\n if (t[t.length - 1] === a.negationSymbol.front) {\n var h = new RegExp(\"(^\" + (\"\" != a.negationSymbol.front ? (0, i.default)(a.negationSymbol.front) + \"?\" : \"\") + (0, \n i.default)(a.prefix) + \")(.*)(\" + (0, i.default)(a.suffix) + (\"\" != a.negationSymbol.back ? (0, \n i.default)(a.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(r(t.slice(), !0).reverse().join(\"\"));\n 0 == (h ? h[2] : \"\") && (o = {\n refreshFromBuffer: !0,\n buffer: [ 0 ]\n });\n } else if (\"\" !== a.radixPoint) {\n t.indexOf(a.radixPoint) === a.suffix.length && (o && o.buffer ? o.buffer.splice(0, 1 + a.suffix.length) : (t.splice(0, 1 + a.suffix.length), \n o = {\n refreshFromBuffer: !0,\n buffer: r(t)\n }));\n }\n if (a.enforceDigitsOnBlur) {\n var v = (o = o || {}) && o.buffer || t.slice().reverse();\n o.refreshFromBuffer = !0, o.buffer = u(v, a.digits, a, !0).reverse();\n }\n }\n return o;\n },\n onKeyDown: function(e, t, n, i) {\n var a, o = s(this);\n if (3 != e.location) {\n var l, c = e.key;\n if ((l = i.shortcuts && i.shortcuts[c]) && l.length > 1) return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) * parseInt(l)), \n o.trigger(\"setvalue\"), !1;\n }\n if (e.ctrlKey) switch (e.key) {\n case r.keys.ArrowUp:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(i.step)), \n o.trigger(\"setvalue\"), !1;\n\n case r.keys.ArrowDown:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(i.step)), \n o.trigger(\"setvalue\"), !1;\n }\n if (!e.shiftKey && (e.key === r.keys.Delete || e.key === r.keys.Backspace || e.key === r.keys.BACKSPACE_SAFARI) && n.begin !== t.length) {\n if (t[e.key === r.keys.Delete ? n.begin - 1 : n.end] === i.negationSymbol.front) return a = t.slice().reverse(), \n \"\" !== i.negationSymbol.front && a.shift(), \"\" !== i.negationSymbol.back && a.pop(), \n o.trigger(\"setvalue\", [ a.join(\"\"), n.begin ]), !1;\n if (!0 === i._radixDance) {\n var f, p = t.indexOf(i.radixPoint);\n if (i.digitsOptional) {\n if (0 === p) return (a = t.slice().reverse()).pop(), o.trigger(\"setvalue\", [ a.join(\"\"), n.begin >= a.length ? a.length : n.begin ]), \n !1;\n } else if (-1 !== p && (n.begin < p || n.end < p || e.key === r.keys.Delete && (n.begin === p || n.begin - 1 === p))) return n.begin === n.end && (e.key === r.keys.Backspace || e.key === r.keys.BACKSPACE_SAFARI ? n.begin++ : e.key === r.keys.Delete && n.begin - 1 === p && (f = s.extend({}, n), \n n.begin--, n.end--)), (a = t.slice().reverse()).splice(a.length - n.begin, n.begin - n.end + 1), \n a = u(a, i.digits, i).join(\"\"), f && (n = f), o.trigger(\"setvalue\", [ a, n.begin >= a.length ? p + 1 : n.begin ]), \n !1;\n }\n }\n }\n },\n currency: {\n prefix: \"\",\n groupSeparator: \",\",\n alias: \"numeric\",\n digits: 2,\n digitsOptional: !1\n },\n decimal: {\n alias: \"numeric\"\n },\n integer: {\n alias: \"numeric\",\n inputmode: \"numeric\",\n digits: 0\n },\n percentage: {\n alias: \"numeric\",\n min: 0,\n max: 100,\n suffix: \" %\",\n digits: 0,\n allowMinus: !1\n },\n indianns: {\n alias: \"numeric\",\n _mask: function(e) {\n return \"(\" + e.groupSeparator + \"99){*|1}(\" + e.groupSeparator + \"999){1|1}\";\n },\n groupSeparator: \",\",\n radixPoint: \".\",\n placeholder: \"0\",\n digits: 2,\n digitsOptional: !1\n }\n });\n },\n 9380: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n t.default = n ? window : {};\n },\n 7760: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.HandleNativePlaceholder = function(e, t) {\n var n = e ? e.inputmask : this;\n if (i.ie) {\n if (e.inputmask._valueGet() !== t && (e.placeholder !== t || \"\" === e.placeholder)) {\n var a = o.getBuffer.call(n).slice(), r = e.inputmask._valueGet();\n if (r !== t) {\n var l = o.getLastValidPosition.call(n);\n -1 === l && r === o.getBufferTemplate.call(n).join(\"\") ? a = [] : -1 !== l && u.call(n, a), \n p(e, a);\n }\n }\n } else e.placeholder !== t && (e.placeholder = t, \"\" === e.placeholder && e.removeAttribute(\"placeholder\"));\n }, t.applyInputValue = c, t.checkVal = f, t.clearOptionalTail = u, t.unmaskedvalue = function(e) {\n var t = e ? e.inputmask : this, n = t.opts, i = t.maskset;\n if (e) {\n if (void 0 === e.inputmask) return e.value;\n e.inputmask && e.inputmask.refreshValue && c(e, e.inputmask._valueGet(!0));\n }\n for (var a = [], r = i.validPositions, l = 0, s = r.length; l < s; l++) r[l] && r[l].match && (1 != r[l].match.static || Array.isArray(i.metadata) && !0 !== r[l].generatedInput) && a.push(r[l].input);\n var u = 0 === a.length ? \"\" : (t.isRTL ? a.reverse() : a).join(\"\");\n if (\"function\" == typeof n.onUnMask) {\n var f = (t.isRTL ? o.getBuffer.call(t).slice().reverse() : o.getBuffer.call(t)).join(\"\");\n u = n.onUnMask.call(t, f, u, n);\n }\n return u;\n }, t.writeBuffer = p;\n var i = n(9845), a = n(6030), r = n(2839), o = n(8711), l = n(7215), s = n(4713);\n function c(e, t, n) {\n var i = e ? e.inputmask : this, a = i.opts;\n e.inputmask.refreshValue = !1, \"function\" == typeof a.onBeforeMask && (t = a.onBeforeMask.call(i, t, a) || t), \n f(e, !0, !1, t = (t || \"\").toString().split(\"\"), n), i.undoValue = i._valueGet(!0), \n (a.clearMaskOnLostFocus || a.clearIncomplete) && e.inputmask._valueGet() === o.getBufferTemplate.call(i).join(\"\") && -1 === o.getLastValidPosition.call(i) && e.inputmask._valueSet(\"\");\n }\n function u(e) {\n e.length = 0;\n for (var t, n = s.getMaskTemplate.call(this, !0, 0, !0, void 0, !0); void 0 !== (t = n.shift()); ) e.push(t);\n return e;\n }\n function f(e, t, n, i, r) {\n var c, u = e ? e.inputmask : this, f = u.maskset, d = u.opts, h = u.dependencyLib, v = i.slice(), m = \"\", g = -1, y = d.skipOptionalPartCharacter;\n d.skipOptionalPartCharacter = \"\", o.resetMaskSet.call(u, !1), u.clicked = 0, g = d.radixPoint ? o.determineNewCaretPosition.call(u, {\n begin: 0,\n end: 0\n }, !1, !1 === d.__financeInput ? \"radixFocus\" : void 0).begin : 0, f.p = g, u.caretPos = {\n begin: g\n };\n var k = [], b = u.caretPos;\n if (v.forEach((function(e, t) {\n if (void 0 !== e) {\n var i = new h.Event(\"_checkval\");\n i.key = e, m += e;\n var r = o.getLastValidPosition.call(u, void 0, !0);\n !function(e, t) {\n for (var n = s.getMaskTemplate.call(u, !0, 0).slice(e, o.seekNext.call(u, e, !1, !1)).join(\"\").replace(/'/g, \"\"), i = n.indexOf(t); i > 0 && \" \" === n[i - 1]; ) i--;\n var a = 0 === i && !o.isMask.call(u, e) && (s.getTest.call(u, e).match.nativeDef === t.charAt(0) || !0 === s.getTest.call(u, e).match.static && s.getTest.call(u, e).match.nativeDef === \"'\" + t.charAt(0) || \" \" === s.getTest.call(u, e).match.nativeDef && (s.getTest.call(u, e + 1).match.nativeDef === t.charAt(0) || !0 === s.getTest.call(u, e + 1).match.static && s.getTest.call(u, e + 1).match.nativeDef === \"'\" + t.charAt(0)));\n if (!a && i > 0 && !o.isMask.call(u, e, !1, !0)) {\n var r = o.seekNext.call(u, e);\n u.caretPos.begin < r && (u.caretPos = {\n begin: r\n });\n }\n return a;\n }(g, m) ? (c = a.EventHandlers.keypressEvent.call(u, i, !0, !1, n, u.caretPos.begin)) && (g = u.caretPos.begin + 1, \n m = \"\") : c = a.EventHandlers.keypressEvent.call(u, i, !0, !1, n, r + 1), c ? (void 0 !== c.pos && f.validPositions[c.pos] && !0 === f.validPositions[c.pos].match.static && void 0 === f.validPositions[c.pos].alternation && (k.push(c.pos), \n u.isRTL || (c.forwardPosition = c.pos + 1)), p.call(u, void 0, o.getBuffer.call(u), c.forwardPosition, i, !1), \n u.caretPos = {\n begin: c.forwardPosition,\n end: c.forwardPosition\n }, b = u.caretPos) : void 0 === f.validPositions[t] && v[t] === s.getPlaceholder.call(u, t) && o.isMask.call(u, t, !0) ? u.caretPos.begin++ : u.caretPos = b;\n }\n })), k.length > 0) {\n var x, w, P = o.seekNext.call(u, -1, void 0, !1);\n if (!l.isComplete.call(u, o.getBuffer.call(u)) && k.length <= P || l.isComplete.call(u, o.getBuffer.call(u)) && k.length > 0 && k.length !== P && 0 === k[0]) for (var S = P; void 0 !== (x = k.shift()); ) if (x < S) {\n var O = new h.Event(\"_checkval\");\n if ((w = f.validPositions[x]).generatedInput = !0, O.key = w.input, (c = a.EventHandlers.keypressEvent.call(u, O, !0, !1, n, S)) && void 0 !== c.pos && c.pos !== x && f.validPositions[c.pos] && !0 === f.validPositions[c.pos].match.static) k.push(c.pos); else if (!c) break;\n S++;\n }\n }\n t && p.call(u, e, o.getBuffer.call(u), c ? c.forwardPosition : u.caretPos.begin, r || new h.Event(\"checkval\"), r && (\"input\" === r.type && u.undoValue !== o.getBuffer.call(u).join(\"\") || \"paste\" === r.type)), \n d.skipOptionalPartCharacter = y;\n }\n function p(e, t, n, i, a) {\n var s = e ? e.inputmask : this, c = s.opts, u = s.dependencyLib;\n if (i && \"function\" == typeof c.onBeforeWrite) {\n var f = c.onBeforeWrite.call(s, i, t, n, c);\n if (f) {\n if (f.refreshFromBuffer) {\n var p = f.refreshFromBuffer;\n l.refreshFromBuffer.call(s, !0 === p ? p : p.start, p.end, f.buffer || t), t = o.getBuffer.call(s, !0);\n }\n void 0 !== n && (n = void 0 !== f.caret ? f.caret : n);\n }\n }\n if (void 0 !== e && (e.inputmask._valueSet(t.join(\"\")), void 0 === n || void 0 !== i && \"blur\" === i.type || o.caret.call(s, e, n, void 0, void 0, void 0 !== i && \"keydown\" === i.type && (i.key === r.keys.Delete || i.key === r.keys.Backspace)), \n void 0 === e.inputmask.writeBufferHook || e.inputmask.writeBufferHook(n), !0 === a)) {\n var d = u(e), h = e.inputmask._valueGet();\n e.inputmask.skipInputEvent = !0, d.trigger(\"input\"), setTimeout((function() {\n h === o.getBufferTemplate.call(s).join(\"\") ? d.trigger(\"cleared\") : !0 === l.isComplete.call(s, t) && d.trigger(\"complete\");\n }), 0);\n }\n }\n },\n 2394: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var i = v(n(3976)), a = v(n(7392)), r = v(n(4963)), o = n(9716), l = v(n(9380)), s = n(7760), c = n(157), u = n(2391), f = n(8711), p = n(7215), d = n(4713);\n function h(e) {\n return h = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, h(e);\n }\n function v(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var m = l.default.document, g = \"_inputmask_opts\";\n function y(e, t, n) {\n if (!(this instanceof y)) return new y(e, t, n);\n this.dependencyLib = r.default, this.el = void 0, this.events = {}, this.maskset = void 0, \n !0 !== n && (\"[object Object]\" === Object.prototype.toString.call(e) ? t = e : (t = t || {}, \n e && (t.alias = e)), this.opts = r.default.extend(!0, {}, this.defaults, t), this.noMasksCache = t && void 0 !== t.definitions, \n this.userOptions = t || {}, k(this.opts.alias, t, this.opts)), this.refreshValue = !1, \n this.undoValue = void 0, this.$el = void 0, this.skipInputEvent = !1, this.validationEvent = !1, \n this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.clicked = 0, this.originalPlaceholder = void 0, \n this.isComposing = !1, this.hasAlternator = !1;\n }\n function k(e, t, n) {\n var i = y.prototype.aliases[e];\n return i ? (i.alias && k(i.alias, void 0, n), r.default.extend(!0, n, i), r.default.extend(!0, n, t), \n !0) : (null === n.mask && (n.mask = e), !1);\n }\n y.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: i.default,\n definitions: a.default,\n aliases: {},\n masksCache: {},\n i18n: {},\n get isRTL() {\n return this.opts.isRTL || this.opts.numericInput;\n },\n mask: function(e) {\n var t = this;\n return \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), \n (e = e.nodeName ? [ e ] : Array.isArray(e) ? e : [].slice.call(e)).forEach((function(e, n) {\n var i = r.default.extend(!0, {}, t.opts);\n if (function(e, t, n, i) {\n function a(t, a) {\n var r = \"\" === i ? t : i + \"-\" + t;\n null !== (a = void 0 !== a ? a : e.getAttribute(r)) && (\"string\" == typeof a && (0 === t.indexOf(\"on\") ? a = l.default[a] : \"false\" === a ? a = !1 : \"true\" === a && (a = !0)), \n n[t] = a);\n }\n if (!0 === t.importDataAttributes) {\n var o, s, c, u, f = e.getAttribute(i);\n if (f && \"\" !== f && (f = f.replace(/'/g, '\"'), s = JSON.parse(\"{\" + f + \"}\")), \n s) for (u in c = void 0, s) if (\"alias\" === u.toLowerCase()) {\n c = s[u];\n break;\n }\n for (o in a(\"alias\", c), n.alias && k(n.alias, n, t), t) {\n if (s) for (u in c = void 0, s) if (u.toLowerCase() === o.toLowerCase()) {\n c = s[u];\n break;\n }\n a(o, c);\n }\n }\n r.default.extend(!0, t, n), (\"rtl\" === e.dir || t.rightAlign) && (e.style.textAlign = \"right\");\n (\"rtl\" === e.dir || t.numericInput) && (e.dir = \"ltr\", e.removeAttribute(\"dir\"), \n t.isRTL = !0);\n return Object.keys(n).length;\n }(e, i, r.default.extend(!0, {}, t.userOptions), t.dataAttribute)) {\n var a = (0, u.generateMaskSet)(i, t.noMasksCache);\n void 0 !== a && (void 0 !== e.inputmask && (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), \n e.inputmask = new y(void 0, void 0, !0), e.inputmask.opts = i, e.inputmask.noMasksCache = t.noMasksCache, \n e.inputmask.userOptions = r.default.extend(!0, {}, t.userOptions), e.inputmask.el = e, \n e.inputmask.$el = (0, r.default)(e), e.inputmask.maskset = a, r.default.data(e, g, t.userOptions), \n c.mask.call(e.inputmask));\n }\n })), e && e[0] && e[0].inputmask || this;\n },\n option: function(e, t) {\n return \"string\" == typeof e ? this.opts[e] : \"object\" === h(e) ? (r.default.extend(this.userOptions, e), \n this.el && !0 !== t && this.mask(this.el), this) : void 0;\n },\n unmaskedvalue: function(e) {\n if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n void 0 === this.el || void 0 !== e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n s.checkVal.call(this, void 0, !1, !1, t), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, f.getBuffer.call(this), 0, this.opts);\n }\n return s.unmaskedvalue.call(this, this.el);\n },\n remove: function() {\n if (this.el) {\n r.default.data(this.el, g, null);\n var e = this.opts.autoUnmask ? (0, s.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask);\n e !== f.getBufferTemplate.call(this).join(\"\") ? this._valueSet(e, this.opts.autoUnmask) : this._valueSet(\"\"), \n o.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\") && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n get: this.__valueGet,\n set: this.__valueSet,\n configurable: !0\n }) : m.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), \n this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n }\n return this.el;\n },\n getemptymask: function() {\n return this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n (this.isRTL ? f.getBufferTemplate.call(this).reverse() : f.getBufferTemplate.call(this)).join(\"\");\n },\n hasMaskedValue: function() {\n return !this.opts.autoUnmask;\n },\n isComplete: function() {\n return this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n p.isComplete.call(this, f.getBuffer.call(this));\n },\n getmetadata: function() {\n if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n Array.isArray(this.maskset.metadata)) {\n var e = d.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n return this.maskset.metadata.forEach((function(t) {\n return t.mask !== e || (e = t, !1);\n })), e;\n }\n return this.maskset.metadata;\n },\n isValid: function(e) {\n if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n s.checkVal.call(this, void 0, !0, !1, t);\n } else e = this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\");\n for (var n = f.getBuffer.call(this), i = f.determineLastRequiredPosition.call(this), a = n.length - 1; a > i && !f.isMask.call(this, a); a--) ;\n return n.splice(i, a + 1 - i), p.isComplete.call(this, n) && e === (this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\"));\n },\n format: function(e, t) {\n this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache);\n var n = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n s.checkVal.call(this, void 0, !0, !1, n);\n var i = this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\");\n return t ? {\n value: i,\n metadata: this.getmetadata()\n } : i;\n },\n setValue: function(e) {\n this.el && (0, r.default)(this.el).trigger(\"setvalue\", [ e ]);\n },\n analyseMask: u.analyseMask\n }, y.extendDefaults = function(e) {\n r.default.extend(!0, y.prototype.defaults, e);\n }, y.extendDefinitions = function(e) {\n r.default.extend(!0, y.prototype.definitions, e);\n }, y.extendAliases = function(e) {\n r.default.extend(!0, y.prototype.aliases, e);\n }, y.format = function(e, t, n) {\n return y(t).format(e, n);\n }, y.unmask = function(e, t) {\n return y(t).unmaskedvalue(e);\n }, y.isValid = function(e, t) {\n return y(t).isValid(e);\n }, y.remove = function(e) {\n \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n e.inputmask && e.inputmask.remove();\n }));\n }, y.setValue = function(e, t) {\n \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n e.inputmask ? e.inputmask.setValue(t) : (0, r.default)(e).trigger(\"setvalue\", [ t ]);\n }));\n }, y.dependencyLib = r.default, l.default.Inputmask = y;\n t.default = y;\n },\n 5296: function(e, t, n) {\n function i(e) {\n return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, i(e);\n }\n var a = d(n(9380)), r = d(n(2394));\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var a = t[n];\n a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), \n Object.defineProperty(e, (r = a.key, o = void 0, o = function(e, t) {\n if (\"object\" !== i(e) || null === e) return e;\n var n = e[Symbol.toPrimitive];\n if (void 0 !== n) {\n var a = n.call(e, t || \"default\");\n if (\"object\" !== i(a)) return a;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(r, \"string\"), \"symbol\" === i(o) ? o : String(o)), a);\n }\n var r, o;\n }\n function l(e) {\n var t = u();\n return function() {\n var n, a = p(e);\n if (t) {\n var r = p(this).constructor;\n n = Reflect.construct(a, arguments, r);\n } else n = a.apply(this, arguments);\n return function(e, t) {\n if (t && (\"object\" === i(t) || \"function\" == typeof t)) return t;\n if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return function(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e);\n }(this, n);\n };\n }\n function s(e) {\n var t = \"function\" == typeof Map ? new Map : void 0;\n return s = function(e) {\n if (null === e || !function(e) {\n try {\n return -1 !== Function.toString.call(e).indexOf(\"[native code]\");\n } catch (t) {\n return \"function\" == typeof e;\n }\n }(e)) return e;\n if (\"function\" != typeof e) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== t) {\n if (t.has(e)) return t.get(e);\n t.set(e, n);\n }\n function n() {\n return c(e, arguments, p(this).constructor);\n }\n return n.prototype = Object.create(e.prototype, {\n constructor: {\n value: n,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), f(n, e);\n }, s(e);\n }\n function c(e, t, n) {\n return c = u() ? Reflect.construct.bind() : function(e, t, n) {\n var i = [ null ];\n i.push.apply(i, t);\n var a = new (Function.bind.apply(e, i));\n return n && f(a, n.prototype), a;\n }, c.apply(null, arguments);\n }\n function u() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), \n !0;\n } catch (e) {\n return !1;\n }\n }\n function f(e, t) {\n return f = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {\n return e.__proto__ = t, e;\n }, f(e, t);\n }\n function p(e) {\n return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n }, p(e);\n }\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var h = a.default.document;\n if (h && h.head && h.head.attachShadow && a.default.customElements && void 0 === a.default.customElements.get(\"input-mask\")) {\n var v = function(e) {\n !function(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), t && f(e, t);\n }(s, e);\n var t, n, i, a = l(s);\n function s() {\n var e;\n !function(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, s);\n var t = (e = a.call(this)).getAttributeNames(), n = e.attachShadow({\n mode: \"closed\"\n });\n for (var i in e.input = h.createElement(\"input\"), e.input.type = \"text\", n.appendChild(e.input), \n t) Object.prototype.hasOwnProperty.call(t, i) && e.input.setAttribute(t[i], e.getAttribute(t[i]));\n var o = new r.default;\n return o.dataAttribute = \"\", o.mask(e.input), e.input.inputmask.shadowRoot = n, \n e;\n }\n return t = s, (n = [ {\n key: \"attributeChangedCallback\",\n value: function(e, t, n) {\n this.input.setAttribute(e, n);\n }\n }, {\n key: \"value\",\n get: function() {\n return this.input.value;\n },\n set: function(e) {\n this.input.value = e;\n }\n } ]) && o(t.prototype, n), i && o(t, i), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), s;\n }(s(HTMLElement));\n a.default.customElements.define(\"input-mask\", v);\n }\n },\n 2839: function(e, t) {\n function n(e) {\n return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, n(e);\n }\n function i(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != n) {\n var i, a, r, o, l = [], s = !0, c = !1;\n try {\n if (r = (n = n.call(e)).next, 0 === t) {\n if (Object(n) !== n) return;\n s = !1;\n } else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return l;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return a(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return a(e, t);\n }(e, t) || function() {\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 }();\n }\n function a(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n function r(e, t) {\n var n = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n t && (i = i.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }))), n.push.apply(n, i);\n }\n return n;\n }\n function o(e, t, i) {\n return (t = function(e) {\n var t = function(e, t) {\n if (\"object\" !== n(e) || null === e) return e;\n var i = e[Symbol.toPrimitive];\n if (void 0 !== i) {\n var a = i.call(e, t || \"default\");\n if (\"object\" !== n(a)) return a;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(e, \"string\");\n return \"symbol\" === n(t) ? t : String(t);\n }(t)) in e ? Object.defineProperty(e, t, {\n value: i,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = i, e;\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.keys = t.keyCode = void 0, t.toKey = function(e, t) {\n return s[e] || (t ? String.fromCharCode(e) : String.fromCharCode(e).toLowerCase());\n }, t.toKeyCode = function(e) {\n return l[e];\n };\n var l = t.keyCode = function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? r(Object(n), !0).forEach((function(t) {\n o(e, t, n[t]);\n })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n }));\n }\n return e;\n }({\n c: 67,\n x: 88,\n z: 90,\n BACKSPACE_SAFARI: 127,\n Enter: 13,\n Meta_LEFT: 91,\n Meta_RIGHT: 92,\n Space: 32\n }, {\n Alt: 18,\n AltGraph: 18,\n ArrowDown: 40,\n ArrowLeft: 37,\n ArrowRight: 39,\n ArrowUp: 38,\n Backspace: 8,\n CapsLock: 20,\n Control: 17,\n ContextMenu: 93,\n Dead: 221,\n Delete: 46,\n End: 35,\n Escape: 27,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n Home: 36,\n Insert: 45,\n NumLock: 144,\n PageDown: 34,\n PageUp: 33,\n Pause: 19,\n PrintScreen: 44,\n Process: 229,\n Shift: 16,\n ScrollLock: 145,\n Tab: 9,\n Unidentified: 229\n }), s = Object.entries(l).reduce((function(e, t) {\n var n = i(t, 2), a = n[0], r = n[1];\n return e[r] = void 0 === e[r] ? a : e[r], e;\n }), {});\n t.keys = Object.entries(l).reduce((function(e, t) {\n var n = i(t, 2), a = n[0];\n n[1];\n return e[a] = \"Space\" === a ? \" \" : a, e;\n }), {});\n },\n 2391: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.analyseMask = function(e, t, n) {\n var i, a, s, c, u, f, p = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, d = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, h = !1, v = new o.default, m = [], g = [], y = !1;\n function k(e, i, a) {\n a = void 0 !== a ? a : e.matches.length;\n var o = e.matches[a - 1];\n if (t) {\n if (0 === i.indexOf(\"[\") || h && /\\\\d|\\\\s|\\\\w|\\\\p/i.test(i) || \".\" === i) {\n var s = n.casing ? \"i\" : \"\";\n /\\\\p\\{.*}/i.test(i) && (s += \"u\"), e.matches.splice(a++, 0, {\n fn: new RegExp(i, s),\n static: !1,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== i,\n casing: null,\n def: i,\n placeholder: \"object\" === l(n.placeholder) ? n.placeholder[v.matches.length] : void 0,\n nativeDef: i\n });\n } else h && (i = i[i.length - 1]), i.split(\"\").forEach((function(t, i) {\n o = e.matches[a - 1], e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(n.staticDefinitionSymbol || t) ? new RegExp(\"[\" + (n.staticDefinitionSymbol || t) + \"]\", n.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== t && !0 !== o.static,\n casing: null,\n def: n.staticDefinitionSymbol || t,\n placeholder: void 0 !== n.staticDefinitionSymbol ? t : \"object\" === l(n.placeholder) ? n.placeholder[v.matches.length] : void 0,\n nativeDef: (h ? \"'\" : \"\") + t\n });\n }));\n h = !1;\n } else {\n var c = n.definitions && n.definitions[i] || n.usePrototypeDefinitions && r.default.prototype.definitions[i];\n c && !h ? e.matches.splice(a++, 0, {\n fn: c.validator ? \"string\" == typeof c.validator ? new RegExp(c.validator, n.casing ? \"i\" : \"\") : new function() {\n this.test = c.validator;\n } : /./,\n static: c.static || !1,\n optionality: c.optional || !1,\n defOptionality: c.optional || !1,\n newBlockMarker: void 0 === o || c.optional ? \"master\" : o.def !== (c.definitionSymbol || i),\n casing: c.casing,\n def: c.definitionSymbol || i,\n placeholder: c.placeholder,\n nativeDef: i,\n generated: c.generated\n }) : (e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(n.staticDefinitionSymbol || i) ? new RegExp(\"[\" + (n.staticDefinitionSymbol || i) + \"]\", n.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== i && !0 !== o.static,\n casing: null,\n def: n.staticDefinitionSymbol || i,\n placeholder: void 0 !== n.staticDefinitionSymbol ? i : void 0,\n nativeDef: (h ? \"'\" : \"\") + i\n }), h = !1);\n }\n }\n function b() {\n if (m.length > 0) {\n if (k(c = m[m.length - 1], a), c.isAlternator) {\n u = m.pop();\n for (var e = 0; e < u.matches.length; e++) u.matches[e].isGroup && (u.matches[e].isGroup = !1);\n m.length > 0 ? (c = m[m.length - 1]).matches.push(u) : v.matches.push(u);\n }\n } else k(v, a);\n }\n function x(e) {\n var t = new o.default(!0);\n return t.openGroup = !1, t.matches = e, t;\n }\n function w() {\n if ((s = m.pop()).openGroup = !1, void 0 !== s) if (m.length > 0) {\n if ((c = m[m.length - 1]).matches.push(s), c.isAlternator) {\n u = m.pop();\n for (var e = 0; e < u.matches.length; e++) u.matches[e].isGroup = !1, u.matches[e].alternatorGroup = !1;\n m.length > 0 ? (c = m[m.length - 1]).matches.push(u) : v.matches.push(u);\n }\n } else v.matches.push(s); else b();\n }\n function P(e) {\n var t = e.pop();\n return t.isQuantifier && (t = x([ e.pop(), t ])), t;\n }\n t && (n.optionalmarker[0] = void 0, n.optionalmarker[1] = void 0);\n for (;i = t ? d.exec(e) : p.exec(e); ) {\n if (a = i[0], t) {\n switch (a.charAt(0)) {\n case \"?\":\n a = \"{0,1}\";\n break;\n\n case \"+\":\n case \"*\":\n a = \"{\" + a + \"}\";\n break;\n\n case \"|\":\n if (0 === m.length) {\n var S = x(v.matches);\n S.openGroup = !0, m.push(S), v.matches = [], y = !0;\n }\n }\n switch (a) {\n case \"\\\\d\":\n a = \"[0-9]\";\n break;\n\n case \"\\\\p\":\n a += d.exec(e)[0], a += d.exec(e)[0];\n }\n }\n if (h) b(); else switch (a.charAt(0)) {\n case \"$\":\n case \"^\":\n t || b();\n break;\n\n case n.escapeChar:\n h = !0, t && b();\n break;\n\n case n.optionalmarker[1]:\n case n.groupmarker[1]:\n w();\n break;\n\n case n.optionalmarker[0]:\n m.push(new o.default(!1, !0));\n break;\n\n case n.groupmarker[0]:\n m.push(new o.default(!0));\n break;\n\n case n.quantifiermarker[0]:\n var O = new o.default(!1, !1, !0), _ = (a = a.replace(/[{}?]/g, \"\")).split(\"|\"), M = _[0].split(\",\"), E = isNaN(M[0]) ? M[0] : parseInt(M[0]), j = 1 === M.length ? E : isNaN(M[1]) ? M[1] : parseInt(M[1]), T = isNaN(_[1]) ? _[1] : parseInt(_[1]);\n \"*\" !== E && \"+\" !== E || (E = \"*\" === j ? 0 : 1), O.quantifier = {\n min: E,\n max: j,\n jit: T\n };\n var A = m.length > 0 ? m[m.length - 1].matches : v.matches;\n (i = A.pop()).isGroup || (i = x([ i ])), A.push(i), A.push(O);\n break;\n\n case n.alternatormarker:\n if (m.length > 0) {\n var D = (c = m[m.length - 1]).matches[c.matches.length - 1];\n f = c.openGroup && (void 0 === D.matches || !1 === D.isGroup && !1 === D.isAlternator) ? m.pop() : P(c.matches);\n } else f = P(v.matches);\n if (f.isAlternator) m.push(f); else if (f.alternatorGroup ? (u = m.pop(), f.alternatorGroup = !1) : u = new o.default(!1, !1, !1, !0), \n u.matches.push(f), m.push(u), f.openGroup) {\n f.openGroup = !1;\n var L = new o.default(!0);\n L.alternatorGroup = !0, m.push(L);\n }\n break;\n\n default:\n b();\n }\n }\n y && w();\n for (;m.length > 0; ) s = m.pop(), v.matches.push(s);\n v.matches.length > 0 && (!function e(i) {\n i && i.matches && i.matches.forEach((function(a, r) {\n var o = i.matches[r + 1];\n (void 0 === o || void 0 === o.matches || !1 === o.isQuantifier) && a && a.isGroup && (a.isGroup = !1, \n t || (k(a, n.groupmarker[0], 0), !0 !== a.openGroup && k(a, n.groupmarker[1]))), \n e(a);\n }));\n }(v), g.push(v));\n (n.numericInput || n.isRTL) && function e(t) {\n for (var i in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(t.matches, i)) {\n var a = parseInt(i);\n if (t.matches[i].isQuantifier && t.matches[a + 1] && t.matches[a + 1].isGroup) {\n var r = t.matches[i];\n t.matches.splice(i, 1), t.matches.splice(a + 1, 0, r);\n }\n void 0 !== t.matches[i].matches ? t.matches[i] = e(t.matches[i]) : t.matches[i] = ((o = t.matches[i]) === n.optionalmarker[0] ? o = n.optionalmarker[1] : o === n.optionalmarker[1] ? o = n.optionalmarker[0] : o === n.groupmarker[0] ? o = n.groupmarker[1] : o === n.groupmarker[1] && (o = n.groupmarker[0]), \n o);\n }\n var o;\n return t;\n }(g[0]);\n return g;\n }, t.generateMaskSet = function(e, t) {\n var n;\n function o(e, t) {\n var n = t.repeat, i = t.groupmarker, r = t.quantifiermarker, o = t.keepStatic;\n if (n > 0 || \"*\" === n || \"+\" === n) {\n var l = \"*\" === n ? 0 : \"+\" === n ? 1 : n;\n if (l != n) e = i[0] + e + i[1] + r[0] + l + \",\" + n + r[1]; else for (var c = e, u = 1; u < l; u++) e += c;\n }\n if (!0 === o) {\n var f = e.match(new RegExp(\"(.)\\\\[([^\\\\]]*)\\\\]\", \"g\"));\n f && f.forEach((function(t, n) {\n var i = function(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != n) {\n var i, a, r, o, l = [], s = !0, c = !1;\n try {\n if (r = (n = n.call(e)).next, 0 === t) {\n if (Object(n) !== n) return;\n s = !1;\n } else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return l;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return s(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return s(e, t);\n }(e, t) || function() {\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 }();\n }(t.split(\"[\"), 2), r = i[0], o = i[1];\n o = o.replace(\"]\", \"\"), e = e.replace(new RegExp(\"\".concat((0, a.default)(r), \"\\\\[\").concat((0, \n a.default)(o), \"\\\\]\")), r.charAt(0) === o.charAt(0) ? \"(\".concat(r, \"|\").concat(r).concat(o, \")\") : \"\".concat(r, \"[\").concat(o, \"]\"));\n }));\n }\n return e;\n }\n function c(e, n, a) {\n var s, c, u = !1;\n return null !== e && \"\" !== e || ((u = null !== a.regex) ? e = (e = a.regex).replace(/^(\\^)(.*)(\\$)$/, \"$2\") : (u = !0, \n e = \".*\")), 1 === e.length && !1 === a.greedy && 0 !== a.repeat && (a.placeholder = \"\"), \n e = o(e, a), c = u ? \"regex_\" + a.regex : a.numericInput ? e.split(\"\").reverse().join(\"\") : e, \n null !== a.keepStatic && (c = \"ks_\" + a.keepStatic + c), \"object\" === l(a.placeholder) && (c = \"ph_\" + JSON.stringify(a.placeholder) + c), \n void 0 === r.default.prototype.masksCache[c] || !0 === t ? (s = {\n mask: e,\n maskToken: r.default.prototype.analyseMask(e, u, a),\n validPositions: [],\n _buffer: void 0,\n buffer: void 0,\n tests: {},\n excludes: {},\n metadata: n,\n maskLength: void 0,\n jitOffset: {}\n }, !0 !== t && (r.default.prototype.masksCache[c] = s, s = i.default.extend(!0, {}, r.default.prototype.masksCache[c]))) : s = i.default.extend(!0, {}, r.default.prototype.masksCache[c]), \n s;\n }\n \"function\" == typeof e.mask && (e.mask = e.mask(e));\n if (Array.isArray(e.mask)) {\n if (e.mask.length > 1) {\n null === e.keepStatic && (e.keepStatic = !0);\n var u = e.groupmarker[0];\n return (e.isRTL ? e.mask.reverse() : e.mask).forEach((function(t) {\n u.length > 1 && (u += e.alternatormarker), void 0 !== t.mask && \"function\" != typeof t.mask ? u += t.mask : u += t;\n })), c(u += e.groupmarker[1], e.mask, e);\n }\n e.mask = e.mask.pop();\n }\n n = e.mask && void 0 !== e.mask.mask && \"function\" != typeof e.mask.mask ? c(e.mask.mask, e.mask, e) : c(e.mask, e.mask, e);\n null === e.keepStatic && (e.keepStatic = !1);\n return n;\n };\n var i = c(n(4963)), a = c(n(7184)), r = c(n(2394)), o = c(n(9695));\n function l(e) {\n return l = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, l(e);\n }\n function s(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n return i;\n }\n function c(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n },\n 157: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mask = function() {\n var e = this, t = this.opts, n = this.el, c = this.dependencyLib;\n r.EventRuler.off(n);\n var u = function(t, n) {\n var i = t.getAttribute(\"type\"), a = \"input\" === t.tagName.toLowerCase() && n.supportsInputType.includes(i) || t.isContentEditable || \"textarea\" === t.tagName.toLowerCase();\n if (!a) if (\"input\" === t.tagName.toLowerCase()) {\n var s = document.createElement(\"input\");\n s.setAttribute(\"type\", i), a = \"text\" === s.type, s = null;\n } else a = \"partial\";\n return !1 !== a ? function(t) {\n var i, a;\n function s() {\n return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== l.getLastValidPosition.call(e) || !0 !== n.nullable ? (this.inputmask.shadowRoot || this.ownerDocument).activeElement === this && n.clearMaskOnLostFocus ? (e.isRTL ? o.clearOptionalTail.call(e, l.getBuffer.call(e).slice()).reverse() : o.clearOptionalTail.call(e, l.getBuffer.call(e).slice())).join(\"\") : i.call(this) : \"\" : i.call(this);\n }\n function u(e) {\n a.call(this, e), this.inputmask && (0, o.applyInputValue)(this, e);\n }\n if (!t.inputmask.__valueGet) {\n if (!0 !== n.noValuePatching) {\n if (Object.getOwnPropertyDescriptor) {\n var f = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), \"value\") : void 0;\n f && f.get && f.set ? (i = f.get, a = f.set, Object.defineProperty(t, \"value\", {\n get: s,\n set: u,\n configurable: !0\n })) : \"input\" !== t.tagName.toLowerCase() && (i = function() {\n return this.textContent;\n }, a = function(e) {\n this.textContent = e;\n }, Object.defineProperty(t, \"value\", {\n get: s,\n set: u,\n configurable: !0\n }));\n } else document.__lookupGetter__ && t.__lookupGetter__(\"value\") && (i = t.__lookupGetter__(\"value\"), \n a = t.__lookupSetter__(\"value\"), t.__defineGetter__(\"value\", s), t.__defineSetter__(\"value\", u));\n t.inputmask.__valueGet = i, t.inputmask.__valueSet = a;\n }\n t.inputmask._valueGet = function(t) {\n return e.isRTL && !0 !== t ? i.call(this.el).split(\"\").reverse().join(\"\") : i.call(this.el);\n }, t.inputmask._valueSet = function(t, n) {\n a.call(this.el, null == t ? \"\" : !0 !== n && e.isRTL ? t.split(\"\").reverse().join(\"\") : t);\n }, void 0 === i && (i = function() {\n return this.value;\n }, a = function(e) {\n this.value = e;\n }, function(t) {\n if (c.valHooks && (void 0 === c.valHooks[t] || !0 !== c.valHooks[t].inputmaskpatch)) {\n var i = c.valHooks[t] && c.valHooks[t].get ? c.valHooks[t].get : function(e) {\n return e.value;\n }, a = c.valHooks[t] && c.valHooks[t].set ? c.valHooks[t].set : function(e, t) {\n return e.value = t, e;\n };\n c.valHooks[t] = {\n get: function(t) {\n if (t.inputmask) {\n if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue();\n var a = i(t);\n return -1 !== l.getLastValidPosition.call(e, void 0, void 0, t.inputmask.maskset.validPositions) || !0 !== n.nullable ? a : \"\";\n }\n return i(t);\n },\n set: function(e, t) {\n var n = a(e, t);\n return e.inputmask && (0, o.applyInputValue)(e, t), n;\n },\n inputmaskpatch: !0\n };\n }\n }(t.type), function(e) {\n r.EventRuler.on(e, \"mouseenter\", (function() {\n var e = this, t = e.inputmask._valueGet(!0);\n t != (e.inputmask.isRTL ? l.getBuffer.call(e.inputmask).slice().reverse() : l.getBuffer.call(e.inputmask)).join(\"\") && (0, \n o.applyInputValue)(e, t);\n }));\n }(t));\n }\n }(t) : t.inputmask = void 0, a;\n }(n, t);\n if (!1 !== u) {\n e.originalPlaceholder = n.placeholder, e.maxLength = void 0 !== n ? n.maxLength : void 0, \n -1 === e.maxLength && (e.maxLength = void 0), \"inputMode\" in n && null === n.getAttribute(\"inputmode\") && (n.inputMode = t.inputmode, \n n.setAttribute(\"inputmode\", t.inputmode)), !0 === u && (t.showMaskOnFocus = t.showMaskOnFocus && -1 === [ \"cc-number\", \"cc-exp\" ].indexOf(n.autocomplete), \n i.iphone && (t.insertModeVisual = !1, n.setAttribute(\"autocorrect\", \"off\")), r.EventRuler.on(n, \"submit\", a.EventHandlers.submitEvent), \n r.EventRuler.on(n, \"reset\", a.EventHandlers.resetEvent), r.EventRuler.on(n, \"blur\", a.EventHandlers.blurEvent), \n r.EventRuler.on(n, \"focus\", a.EventHandlers.focusEvent), r.EventRuler.on(n, \"invalid\", a.EventHandlers.invalidEvent), \n r.EventRuler.on(n, \"click\", a.EventHandlers.clickEvent), r.EventRuler.on(n, \"mouseleave\", a.EventHandlers.mouseleaveEvent), \n r.EventRuler.on(n, \"mouseenter\", a.EventHandlers.mouseenterEvent), r.EventRuler.on(n, \"paste\", a.EventHandlers.pasteEvent), \n r.EventRuler.on(n, \"cut\", a.EventHandlers.cutEvent), r.EventRuler.on(n, \"complete\", t.oncomplete), \n r.EventRuler.on(n, \"incomplete\", t.onincomplete), r.EventRuler.on(n, \"cleared\", t.oncleared), \n !0 !== t.inputEventOnly && r.EventRuler.on(n, \"keydown\", a.EventHandlers.keyEvent), \n (i.mobile || t.inputEventOnly) && n.removeAttribute(\"maxLength\"), r.EventRuler.on(n, \"input\", a.EventHandlers.inputFallBackEvent)), \n r.EventRuler.on(n, \"setvalue\", a.EventHandlers.setValueEvent), void 0 === e.applyMaskHook || e.applyMaskHook(), \n l.getBufferTemplate.call(e).join(\"\"), e.undoValue = e._valueGet(!0);\n var f = (n.inputmask.shadowRoot || n.ownerDocument).activeElement;\n if (\"\" !== n.inputmask._valueGet(!0) || !1 === t.clearMaskOnLostFocus || f === n) {\n (0, o.applyInputValue)(n, n.inputmask._valueGet(!0), t);\n var p = l.getBuffer.call(e).slice();\n !1 === s.isComplete.call(e, p) && t.clearIncomplete && l.resetMaskSet.call(e, !1), \n t.clearMaskOnLostFocus && f !== n && (-1 === l.getLastValidPosition.call(e) ? p = [] : o.clearOptionalTail.call(e, p)), \n (!1 === t.clearMaskOnLostFocus || t.showMaskOnFocus && f === n || \"\" !== n.inputmask._valueGet(!0)) && (0, \n o.writeBuffer)(n, p), f === n && l.caret.call(e, n, l.seekNext.call(e, l.getLastValidPosition.call(e)));\n }\n }\n };\n var i = n(9845), a = n(6030), r = n(9716), o = n(7760), l = n(8711), s = n(7215);\n },\n 9695: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e, t, n, i) {\n this.matches = [], this.openGroup = e || !1, this.alternatorGroup = !1, this.isGroup = e || !1, \n this.isOptional = t || !1, this.isQuantifier = n || !1, this.isAlternator = i || !1, \n this.quantifier = {\n min: 1,\n max: 1\n };\n };\n },\n 3194: function() {\n Array.prototype.includes || Object.defineProperty(Array.prototype, \"includes\", {\n value: function(e, t) {\n if (null == this) throw new TypeError('\"this\" is null or not defined');\n var n = Object(this), i = n.length >>> 0;\n if (0 === i) return !1;\n for (var a = 0 | t, r = Math.max(a >= 0 ? a : i - Math.abs(a), 0); r < i; ) {\n if (n[r] === e) return !0;\n r++;\n }\n return !1;\n }\n });\n },\n 9302: function() {\n var e = Function.bind.call(Function.call, Array.prototype.reduce), t = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), n = Function.bind.call(Function.call, Array.prototype.concat), i = Object.keys;\n Object.entries || (Object.entries = function(a) {\n return e(i(a), (function(e, i) {\n return n(e, \"string\" == typeof i && t(a, i) ? [ [ i, a[i] ] ] : []);\n }), []);\n });\n },\n 7149: function() {\n function e(t) {\n return e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, e(t);\n }\n \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === e(\"test\".__proto__) ? function(e) {\n return e.__proto__;\n } : function(e) {\n return e.constructor.prototype;\n });\n },\n 4013: function() {\n String.prototype.includes || (String.prototype.includes = function(e, t) {\n return \"number\" != typeof t && (t = 0), !(t + e.length > this.length) && -1 !== this.indexOf(e, t);\n });\n },\n 8711: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.caret = function(e, t, n, i, r) {\n var o, l = this, s = this.opts;\n if (void 0 === t) return \"selectionStart\" in e && \"selectionEnd\" in e ? (t = e.selectionStart, \n n = e.selectionEnd) : a.default.getSelection ? (o = a.default.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== e && o.commonAncestorContainer !== e || (t = o.startOffset, \n n = o.endOffset) : document.selection && document.selection.createRange && (n = (t = 0 - (o = document.selection.createRange()).duplicate().moveStart(\"character\", -e.inputmask._valueGet().length)) + o.text.length), \n {\n begin: i ? t : f.call(l, t),\n end: i ? n : f.call(l, n)\n };\n if (Array.isArray(t) && (n = l.isRTL ? t[0] : t[1], t = l.isRTL ? t[1] : t[0]), \n void 0 !== t.begin && (n = l.isRTL ? t.begin : t.end, t = l.isRTL ? t.end : t.begin), \n \"number\" == typeof t) {\n t = i ? t : f.call(l, t), n = \"number\" == typeof (n = i ? n : f.call(l, n)) ? n : t;\n var c = parseInt(((e.ownerDocument.defaultView || a.default).getComputedStyle ? (e.ownerDocument.defaultView || a.default).getComputedStyle(e, null) : e.currentStyle).fontSize) * n;\n if (e.scrollLeft = c > e.scrollWidth ? c : 0, e.inputmask.caretPos = {\n begin: t,\n end: n\n }, s.insertModeVisual && !1 === s.insertMode && t === n && (r || n++), e === (e.inputmask.shadowRoot || e.ownerDocument).activeElement) {\n if (\"setSelectionRange\" in e) e.setSelectionRange(t, n); else if (a.default.getSelection) {\n if (o = document.createRange(), void 0 === e.firstChild || null === e.firstChild) {\n var u = document.createTextNode(\"\");\n e.appendChild(u);\n }\n o.setStart(e.firstChild, t < e.inputmask._valueGet().length ? t : e.inputmask._valueGet().length), \n o.setEnd(e.firstChild, n < e.inputmask._valueGet().length ? n : e.inputmask._valueGet().length), \n o.collapse(!0);\n var p = a.default.getSelection();\n p.removeAllRanges(), p.addRange(o);\n } else e.createTextRange && ((o = e.createTextRange()).collapse(!0), o.moveEnd(\"character\", n), \n o.moveStart(\"character\", t), o.select());\n void 0 === e.inputmask.caretHook || e.inputmask.caretHook.call(l, {\n begin: t,\n end: n\n });\n }\n }\n }, t.determineLastRequiredPosition = function(e) {\n var t, n, i = this, a = i.maskset, l = i.dependencyLib, c = s.call(i), u = {}, f = a.validPositions[c], p = o.getMaskTemplate.call(i, !0, s.call(i), !0, !0), d = p.length, h = void 0 !== f ? f.locator.slice() : void 0;\n for (t = c + 1; t < p.length; t++) h = (n = o.getTestTemplate.call(i, t, h, t - 1)).locator.slice(), \n u[t] = l.extend(!0, {}, n);\n var v = f && void 0 !== f.alternation ? f.locator[f.alternation] : void 0;\n for (t = d - 1; t > c && (((n = u[t]).match.optionality || n.match.optionalQuantifier && n.match.newBlockMarker || v && (v !== u[t].locator[f.alternation] && !0 !== n.match.static || !0 === n.match.static && n.locator[f.alternation] && r.checkAlternationMatch.call(i, n.locator[f.alternation].toString().split(\",\"), v.toString().split(\",\")) && \"\" !== o.getTests.call(i, t)[0].def)) && p[t] === o.getPlaceholder.call(i, t, n.match)); t--) d--;\n return e ? {\n l: d,\n def: u[d] ? u[d].match : void 0\n } : d;\n }, t.determineNewCaretPosition = function(e, t, n) {\n var i, a, r, f = this, p = f.maskset, d = f.opts;\n t && (f.isRTL ? e.end = e.begin : e.begin = e.end);\n if (e.begin === e.end) {\n switch (n = n || d.positionCaretOnClick) {\n case \"none\":\n break;\n\n case \"select\":\n e = {\n begin: 0,\n end: l.call(f).length\n };\n break;\n\n case \"ignore\":\n e.end = e.begin = u.call(f, s.call(f));\n break;\n\n case \"radixFocus\":\n if (f.clicked > 1 && 0 === p.validPositions.length) break;\n if (function(e) {\n if (\"\" !== d.radixPoint && 0 !== d.digits) {\n var t = p.validPositions;\n if (void 0 === t[e] || void 0 === t[e].input) {\n if (e < u.call(f, -1)) return !0;\n var n = l.call(f).indexOf(d.radixPoint);\n if (-1 !== n) {\n for (var i = 0, a = t.length; i < a; i++) if (t[i] && n < i && t[i].input !== o.getPlaceholder.call(f, i)) return !1;\n return !0;\n }\n }\n }\n return !1;\n }(e.begin)) {\n var h = l.call(f).join(\"\").indexOf(d.radixPoint);\n e.end = e.begin = d.numericInput ? u.call(f, h) : h;\n break;\n }\n\n default:\n if (i = e.begin, a = s.call(f, i, !0), i <= (r = u.call(f, -1 !== a || c.call(f, 0) ? a : -1))) e.end = e.begin = c.call(f, i, !1, !0) ? i : u.call(f, i); else {\n var v = p.validPositions[a], m = o.getTestTemplate.call(f, r, v ? v.match.locator : void 0, v), g = o.getPlaceholder.call(f, r, m.match);\n if (\"\" !== g && l.call(f)[r] !== g && !0 !== m.match.optionalQuantifier && !0 !== m.match.newBlockMarker || !c.call(f, r, d.keepStatic, !0) && m.match.def === g) {\n var y = u.call(f, r);\n (i >= y || i === r) && (r = y);\n }\n e.end = e.begin = r;\n }\n }\n return e;\n }\n }, t.getBuffer = l, t.getBufferTemplate = function() {\n var e = this.maskset;\n void 0 === e._buffer && (e._buffer = o.getMaskTemplate.call(this, !1, 1), void 0 === e.buffer && (e.buffer = e._buffer.slice()));\n return e._buffer;\n }, t.getLastValidPosition = s, t.isMask = c, t.resetMaskSet = function(e) {\n var t = this.maskset;\n t.buffer = void 0, !0 !== e && (t.validPositions = [], t.p = 0);\n !1 === e && (t.tests = {}, t.jitOffset = {});\n }, t.seekNext = u, t.seekPrevious = function(e, t) {\n var n = this, i = e - 1;\n if (e <= 0) return 0;\n for (;i > 0 && (!0 === t && (!0 !== o.getTest.call(n, i).match.newBlockMarker || !c.call(n, i, void 0, !0)) || !0 !== t && !c.call(n, i, void 0, !0)); ) i--;\n return i;\n }, t.translatePosition = f;\n var i, a = (i = n(9380)) && i.__esModule ? i : {\n default: i\n }, r = n(7215), o = n(4713);\n function l(e) {\n var t = this, n = t.maskset;\n return void 0 !== n.buffer && !0 !== e || (n.buffer = o.getMaskTemplate.call(t, !0, s.call(t), !0), \n void 0 === n._buffer && (n._buffer = n.buffer.slice())), n.buffer;\n }\n function s(e, t, n) {\n var i = this.maskset, a = -1, r = -1, o = n || i.validPositions;\n void 0 === e && (e = -1);\n for (var l = 0, s = o.length; l < s; l++) o[l] && (t || !0 !== o[l].generatedInput) && (l <= e && (a = l), \n l >= e && (r = l));\n return -1 === a || a === e ? r : -1 === r || e - a < r - e ? a : r;\n }\n function c(e, t, n) {\n var i = this, a = this.maskset, r = o.getTestTemplate.call(i, e).match;\n if (\"\" === r.def && (r = o.getTest.call(i, e).match), !0 !== r.static) return r.fn;\n if (!0 === n && void 0 !== a.validPositions[e] && !0 !== a.validPositions[e].generatedInput) return !0;\n if (!0 !== t && e > -1) {\n if (n) {\n var l = o.getTests.call(i, e);\n return l.length > 1 + (\"\" === l[l.length - 1].match.def ? 1 : 0);\n }\n var s = o.determineTestTemplate.call(i, e, o.getTests.call(i, e)), c = o.getPlaceholder.call(i, e, s.match);\n return s.match.def !== c;\n }\n return !1;\n }\n function u(e, t, n) {\n var i = this;\n void 0 === n && (n = !0);\n for (var a = e + 1; \"\" !== o.getTest.call(i, a).match.def && (!0 === t && (!0 !== o.getTest.call(i, a).match.newBlockMarker || !c.call(i, a, void 0, !0)) || !0 !== t && !c.call(i, a, void 0, n)); ) a++;\n return a;\n }\n function f(e) {\n var t = this.opts, n = this.el;\n return !this.isRTL || \"number\" != typeof e || t.greedy && \"\" === t.placeholder || !n || (e = this._valueGet().length - e) < 0 && (e = 0), \n e;\n }\n },\n 4713: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.determineTestTemplate = f, t.getDecisionTaker = s, t.getMaskTemplate = function(e, t, n, i, a) {\n var r = this, o = this.opts, l = this.maskset, s = o.greedy;\n a && o.greedy && (o.greedy = !1, r.maskset.tests = {});\n t = t || 0;\n var p, d, v, m, g = [], y = 0;\n do {\n if (!0 === e && l.validPositions[y]) d = (v = a && l.validPositions[y].match.optionality && void 0 === l.validPositions[y + 1] && (!0 === l.validPositions[y].generatedInput || l.validPositions[y].input == o.skipOptionalPartCharacter && y > 0) ? f.call(r, y, h.call(r, y, p, y - 1)) : l.validPositions[y]).match, \n p = v.locator.slice(), g.push(!0 === n ? v.input : !1 === n ? d.nativeDef : c.call(r, y, d)); else {\n d = (v = u.call(r, y, p, y - 1)).match, p = v.locator.slice();\n var k = !0 !== i && (!1 !== o.jitMasking ? o.jitMasking : d.jit);\n (m = (m || l.validPositions[y - 1]) && d.static && d.def !== o.groupSeparator && null === d.fn) || !1 === k || void 0 === k || \"number\" == typeof k && isFinite(k) && k > y ? g.push(!1 === n ? d.nativeDef : c.call(r, g.length, d)) : m = !1;\n }\n y++;\n } while (!0 !== d.static || \"\" !== d.def || t > y);\n \"\" === g[g.length - 1] && g.pop();\n !1 === n && void 0 !== l.maskLength || (l.maskLength = y - 1);\n return o.greedy = s, g;\n }, t.getPlaceholder = c, t.getTest = p, t.getTestTemplate = u, t.getTests = h, t.isSubsetOf = d;\n var i, a = (i = n(2394)) && i.__esModule ? i : {\n default: i\n }, r = n(8711);\n function o(e) {\n return o = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, o(e);\n }\n function l(e, t) {\n var n = (null != e.alternation ? e.mloc[s(e)] : e.locator).join(\"\");\n if (\"\" !== n) for (n = n.split(\":\")[0]; n.length < t; ) n += \"0\";\n return n;\n }\n function s(e) {\n var t = e.locator[e.alternation];\n return \"string\" == typeof t && t.length > 0 && (t = t.split(\",\")[0]), void 0 !== t ? t.toString() : \"\";\n }\n function c(e, t, n) {\n var i = this, a = this.opts, l = this.maskset;\n if (void 0 !== (t = t || p.call(i, e).match).placeholder || !0 === n) {\n if (\"\" !== t.placeholder && !0 === t.static && !0 !== t.generated) {\n var s = r.getLastValidPosition.call(i, e), c = r.seekNext.call(i, s);\n return (n ? e <= c : e < c) ? a.staticDefinitionSymbol && t.static ? t.nativeDef : t.def : \"function\" == typeof t.placeholder ? t.placeholder(a) : t.placeholder;\n }\n return \"function\" == typeof t.placeholder ? t.placeholder(a) : t.placeholder;\n }\n if (!0 === t.static) {\n if (e > -1 && void 0 === l.validPositions[e]) {\n var u, f = h.call(i, e), d = [];\n if (\"string\" == typeof a.placeholder && f.length > 1 + (\"\" === f[f.length - 1].match.def ? 1 : 0)) for (var v = 0; v < f.length; v++) if (\"\" !== f[v].match.def && !0 !== f[v].match.optionality && !0 !== f[v].match.optionalQuantifier && (!0 === f[v].match.static || void 0 === u || !1 !== f[v].match.fn.test(u.match.def, l, e, !0, a)) && (d.push(f[v]), \n !0 === f[v].match.static && (u = f[v]), d.length > 1 && /[0-9a-bA-Z]/.test(d[0].match.def))) return a.placeholder.charAt(e % a.placeholder.length);\n }\n return t.def;\n }\n return \"object\" === o(a.placeholder) ? t.def : a.placeholder.charAt(e % a.placeholder.length);\n }\n function u(e, t, n) {\n return this.maskset.validPositions[e] || f.call(this, e, h.call(this, e, t ? t.slice() : t, n));\n }\n function f(e, t) {\n var n = this.opts, i = 0, a = function(e, t) {\n var n = 0, i = !1;\n t.forEach((function(e) {\n e.match.optionality && (0 !== n && n !== e.match.optionality && (i = !0), (0 === n || n > e.match.optionality) && (n = e.match.optionality));\n })), n && (0 == e || 1 == t.length ? n = 0 : i || (n = 0));\n return n;\n }(e, t);\n e = e > 0 ? e - 1 : 0;\n var r, o, s, c = l(p.call(this, e));\n n.greedy && t.length > 1 && \"\" === t[t.length - 1].match.def && (i = 1);\n for (var u = 0; u < t.length - i; u++) {\n var f = t[u];\n r = l(f, c.length);\n var d = Math.abs(r - c);\n (!0 !== f.unMatchedAlternationStopped || t.filter((function(e) {\n return !0 !== e.unMatchedAlternationStopped;\n })).length <= 1) && (void 0 === o || \"\" !== r && d < o || s && !n.greedy && s.match.optionality && s.match.optionality - a > 0 && \"master\" === s.match.newBlockMarker && (!f.match.optionality || f.match.optionality - a < 1 || !f.match.newBlockMarker) || s && !n.greedy && s.match.optionalQuantifier && !f.match.optionalQuantifier) && (o = d, \n s = f);\n }\n return s;\n }\n function p(e, t) {\n var n = this.maskset;\n return n.validPositions[e] ? n.validPositions[e] : (t || h.call(this, e))[0];\n }\n function d(e, t, n) {\n function i(e) {\n for (var t, n = [], i = -1, a = 0, r = e.length; a < r; a++) if (\"-\" === e.charAt(a)) for (t = e.charCodeAt(a + 1); ++i < t; ) n.push(String.fromCharCode(i)); else i = e.charCodeAt(a), \n n.push(e.charAt(a));\n return n.join(\"\");\n }\n return e.match.def === t.match.nativeDef || !(!(n.regex || e.match.fn instanceof RegExp && t.match.fn instanceof RegExp) || !0 === e.match.static || !0 === t.match.static) && (\".\" === t.match.fn.source || -1 !== i(t.match.fn.source.replace(/[[\\]/]/g, \"\")).indexOf(i(e.match.fn.source.replace(/[[\\]/]/g, \"\"))));\n }\n function h(e, t, n) {\n var i, r, o = this, l = this.dependencyLib, s = this.maskset, c = this.opts, u = this.el, p = s.maskToken, h = t ? n : 0, v = t ? t.slice() : [ 0 ], m = [], g = !1, y = t ? t.join(\"\") : \"\", k = !1;\n function b(t, n, r, l) {\n function f(r, l, p) {\n function v(e, t) {\n var n = 0 === t.matches.indexOf(e);\n return n || t.matches.every((function(i, a) {\n return !0 === i.isQuantifier ? n = v(e, t.matches[a - 1]) : Object.prototype.hasOwnProperty.call(i, \"matches\") && (n = v(e, i)), \n !n;\n })), n;\n }\n function w(e, t, n) {\n var i, a;\n if ((s.tests[e] || s.validPositions[e]) && (s.validPositions[e] ? [ s.validPositions[e] ] : s.tests[e]).every((function(e, r) {\n if (e.mloc[t]) return i = e, !1;\n var o = void 0 !== n ? n : e.alternation, l = void 0 !== e.locator[o] ? e.locator[o].toString().indexOf(t) : -1;\n return (void 0 === a || l < a) && -1 !== l && (i = e, a = l), !0;\n })), i) {\n var r = i.locator[i.alternation], o = i.mloc[t] || i.mloc[r] || i.locator;\n if (-1 !== o[o.length - 1].toString().indexOf(\":\")) o.pop();\n return o.slice((void 0 !== n ? n : i.alternation) + 1);\n }\n return void 0 !== n ? w(e, t) : void 0;\n }\n function P(t, n) {\n return !0 === t.match.static && !0 !== n.match.static && n.match.fn.test(t.match.def, s, e, !1, c, !1);\n }\n function S(e, t) {\n var n = e.alternation, i = void 0 === t || n <= t.alternation && -1 === e.locator[n].toString().indexOf(t.locator[n]);\n if (!i && n > t.alternation) for (var a = 0; a < n; a++) if (e.locator[a] !== t.locator[a]) {\n n = a, i = !0;\n break;\n }\n return !!i && function(n) {\n e.mloc = e.mloc || {};\n var i = e.locator[n];\n if (void 0 !== i) {\n if (\"string\" == typeof i && (i = i.split(\",\")[0]), void 0 === e.mloc[i] && (e.mloc[i] = e.locator.slice(), \n e.mloc[i].push(\":\".concat(e.alternation))), void 0 !== t) {\n for (var a in t.mloc) \"string\" == typeof a && (a = parseInt(a.split(\",\")[0])), e.mloc[a + 0] = t.mloc[a];\n e.locator[n] = Object.keys(e.mloc).join(\",\");\n }\n return e.alternation > n && (e.alternation = n), !0;\n }\n return e.alternation = void 0, !1;\n }(n);\n }\n function O(e, t) {\n if (e.locator.length !== t.locator.length) return !1;\n for (var n = e.alternation + 1; n < e.locator.length; n++) if (e.locator[n] !== t.locator[n]) return !1;\n return !0;\n }\n if (h > e + c._maxTestPos) throw new Error(\"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \".concat(s.mask));\n if (h === e && void 0 === r.matches) {\n if (m.push({\n match: r,\n locator: l.reverse(),\n cd: y,\n mloc: {}\n }), !r.optionality || void 0 !== p || !(c.definitions && c.definitions[r.nativeDef] && c.definitions[r.nativeDef].optional || a.default.prototype.definitions[r.nativeDef] && a.default.prototype.definitions[r.nativeDef].optional)) return !0;\n g = !0, h = e;\n } else if (void 0 !== r.matches) {\n if (r.isGroup && p !== r) return function() {\n if (r = f(t.matches[t.matches.indexOf(r) + 1], l, p)) return !0;\n }();\n if (r.isOptional) return function() {\n var t = r, a = m.length;\n if (r = b(r, n, l, p), m.length > 0) {\n if (m.forEach((function(e, t) {\n t >= a && (e.match.optionality = e.match.optionality ? e.match.optionality + 1 : 1);\n })), i = m[m.length - 1].match, void 0 !== p || !v(i, t)) return r;\n g = !0, h = e;\n }\n }();\n if (r.isAlternator) return function() {\n function i(e) {\n for (var t, n = e.matches[0].matches ? e.matches[0].matches.length : 1, i = 0; i < e.matches.length && n === (t = e.matches[i].matches ? e.matches[i].matches.length : 1); i++) ;\n return n !== t;\n }\n o.hasAlternator = !0;\n var a, v = r, y = [], b = m.slice(), x = l.length, _ = n.length > 0 ? n.shift() : -1;\n if (-1 === _ || \"string\" == typeof _) {\n var M, E = h, j = n.slice(), T = [];\n if (\"string\" == typeof _) T = _.split(\",\"); else for (M = 0; M < v.matches.length; M++) T.push(M.toString());\n if (void 0 !== s.excludes[e]) {\n for (var A = T.slice(), D = 0, L = s.excludes[e].length; D < L; D++) {\n var C = s.excludes[e][D].toString().split(\":\");\n l.length == C[1] && T.splice(T.indexOf(C[0]), 1);\n }\n 0 === T.length && (delete s.excludes[e], T = A);\n }\n (!0 === c.keepStatic || isFinite(parseInt(c.keepStatic)) && E >= c.keepStatic) && (T = T.slice(0, 1));\n for (var B = 0; B < T.length; B++) {\n M = parseInt(T[B]), m = [], n = \"string\" == typeof _ && w(h, M, x) || j.slice();\n var I = v.matches[M];\n if (I && f(I, [ M ].concat(l), p)) r = !0; else if (0 === B && (k = i(v)), I && I.matches && I.matches.length > v.matches[0].matches.length) break;\n a = m.slice(), h = E, m = [];\n for (var R = 0; R < a.length; R++) {\n var F = a[R], N = !1;\n F.alternation = F.alternation || x, S(F);\n for (var V = 0; V < y.length; V++) {\n var G = y[V];\n if (\"string\" != typeof _ || void 0 !== F.alternation && T.includes(F.locator[F.alternation].toString())) {\n if (F.match.nativeDef === G.match.nativeDef) {\n N = !0, S(G, F);\n break;\n }\n if (d(F, G, c)) {\n S(F, G) && (N = !0, y.splice(y.indexOf(G), 0, F));\n break;\n }\n if (d(G, F, c)) {\n S(G, F);\n break;\n }\n if (P(F, G)) {\n O(F, G) || void 0 !== u.inputmask.userOptions.keepStatic ? S(F, G) && (N = !0, y.splice(y.indexOf(G), 0, F)) : c.keepStatic = !0;\n break;\n }\n if (P(G, F)) {\n S(G, F);\n break;\n }\n }\n }\n N || y.push(F);\n }\n }\n m = b.concat(y), h = e, g = m.length > 0 && k, r = y.length > 0 && !k, k && g && !r && m.forEach((function(e, t) {\n e.unMatchedAlternationStopped = !0;\n })), n = j.slice();\n } else r = f(v.matches[_] || t.matches[_], [ _ ].concat(l), p);\n if (r) return !0;\n }();\n if (r.isQuantifier && p !== t.matches[t.matches.indexOf(r) - 1]) return function() {\n for (var a = r, o = !1, u = n.length > 0 ? n.shift() : 0; u < (isNaN(a.quantifier.max) ? u + 1 : a.quantifier.max) && h <= e; u++) {\n var p = t.matches[t.matches.indexOf(a) - 1];\n if (r = f(p, [ u ].concat(l), p)) {\n if (m.forEach((function(t, n) {\n (i = x(p, t.match) ? t.match : m[m.length - 1].match).optionalQuantifier = u >= a.quantifier.min, \n i.jit = (u + 1) * (p.matches.indexOf(i) + 1) > a.quantifier.jit, i.optionalQuantifier && v(i, p) && (g = !0, \n h = e, c.greedy && null == s.validPositions[e - 1] && u > a.quantifier.min && -1 != [ \"*\", \"+\" ].indexOf(a.quantifier.max) && (m.pop(), \n y = void 0), o = !0, r = !1), !o && i.jit && (s.jitOffset[e] = p.matches.length - p.matches.indexOf(i));\n })), o) break;\n return !0;\n }\n }\n }();\n if (r = b(r, n, l, p)) return !0;\n } else h++;\n }\n for (var p = n.length > 0 ? n.shift() : 0; p < t.matches.length; p++) if (!0 !== t.matches[p].isQuantifier) {\n var v = f(t.matches[p], [ p ].concat(r), l);\n if (v && h === e) return v;\n if (h > e) break;\n }\n }\n function x(e, t) {\n var n = -1 != e.matches.indexOf(t);\n return n || e.matches.forEach((function(e, i) {\n void 0 === e.matches || n || (n = x(e, t));\n })), n;\n }\n if (e > -1) {\n if (void 0 === t) {\n for (var w, P = e - 1; void 0 === (w = s.validPositions[P] || s.tests[P]) && P > -1; ) P--;\n void 0 !== w && P > -1 && (v = function(e, t) {\n var n, i = [];\n return Array.isArray(t) || (t = [ t ]), t.length > 0 && (void 0 === t[0].alternation || !0 === c.keepStatic ? 0 === (i = f.call(o, e, t.slice()).locator.slice()).length && (i = t[0].locator.slice()) : t.forEach((function(e) {\n \"\" !== e.def && (0 === i.length ? (n = e.alternation, i = e.locator.slice()) : e.locator[n] && -1 === i[n].toString().indexOf(e.locator[n]) && (i[n] += \",\" + e.locator[n]));\n }))), i;\n }(P, w), y = v.join(\"\"), h = P);\n }\n if (s.tests[e] && s.tests[e][0].cd === y) return s.tests[e];\n for (var S = v.shift(); S < p.length; S++) {\n if (b(p[S], v, [ S ]) && h === e || h > e) break;\n }\n }\n return (0 === m.length || g) && m.push({\n match: {\n fn: null,\n static: !0,\n optionality: !1,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: k && 0 === m.filter((function(e) {\n return !0 !== e.unMatchedAlternationStopped;\n })).length ? [ 0 ] : [],\n mloc: {},\n cd: y\n }), void 0 !== t && s.tests[e] ? r = l.extend(!0, [], m) : (s.tests[e] = l.extend(!0, [], m), \n r = s.tests[e]), m.forEach((function(e) {\n e.match.optionality = e.match.defOptionality || !1;\n })), r;\n }\n },\n 7215: function(e, t, n) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.alternate = l, t.checkAlternationMatch = function(e, t, n) {\n for (var i, a = this.opts.greedy ? t : t.slice(0, 1), r = !1, o = void 0 !== n ? n.split(\",\") : [], l = 0; l < o.length; l++) -1 !== (i = e.indexOf(o[l])) && e.splice(i, 1);\n for (var s = 0; s < e.length; s++) if (a.includes(e[s])) {\n r = !0;\n break;\n }\n return r;\n }, t.handleRemove = function(e, t, n, i, s) {\n var c = this, u = this.maskset, f = this.opts;\n if ((f.numericInput || c.isRTL) && (t === a.keys.Backspace ? t = a.keys.Delete : t === a.keys.Delete && (t = a.keys.Backspace), \n c.isRTL)) {\n var p = n.end;\n n.end = n.begin, n.begin = p;\n }\n var d, h = r.getLastValidPosition.call(c, void 0, !0);\n n.end >= r.getBuffer.call(c).length && h >= n.end && (n.end = h + 1);\n t === a.keys.Backspace ? n.end - n.begin < 1 && (n.begin = r.seekPrevious.call(c, n.begin)) : t === a.keys.Delete && n.begin === n.end && (n.end = r.isMask.call(c, n.end, !0, !0) ? n.end + 1 : r.seekNext.call(c, n.end) + 1);\n !1 !== (d = v.call(c, n)) && ((!0 !== i && !1 !== f.keepStatic || null !== f.regex && -1 !== o.getTest.call(c, n.begin).match.def.indexOf(\"|\")) && l.call(c, !0), \n !0 !== i && (u.p = t === a.keys.Delete ? n.begin + d : n.begin, u.p = r.determineNewCaretPosition.call(c, {\n begin: u.p,\n end: u.p\n }, !1, !1 === f.insertMode && t === a.keys.Backspace ? \"none\" : void 0).begin));\n }, t.isComplete = c, t.isSelection = u, t.isValid = f, t.refreshFromBuffer = d, \n t.revalidateMask = v;\n var i = n(6030), a = n(2839), r = n(8711), o = n(4713);\n function l(e, t, n, i, a, s) {\n var c = this, u = this.dependencyLib, p = this.opts, d = c.maskset;\n if (!c.hasAlternator) return !1;\n var h, v, m, g, y, k, b, x, w, P, S, O = u.extend(!0, [], d.validPositions), _ = u.extend(!0, {}, d.tests), M = !1, E = !1, j = void 0 !== a ? a : r.getLastValidPosition.call(c);\n if (s && (P = s.begin, S = s.end, s.begin > s.end && (P = s.end, S = s.begin)), \n -1 === j && void 0 === a) h = 0, v = (g = o.getTest.call(c, h)).alternation; else for (;j >= 0; j--) if ((m = d.validPositions[j]) && void 0 !== m.alternation) {\n if (j <= (e || 0) && g && g.locator[m.alternation] !== m.locator[m.alternation]) break;\n h = j, v = d.validPositions[h].alternation, g = m;\n }\n if (void 0 !== v) {\n b = parseInt(h), d.excludes[b] = d.excludes[b] || [], !0 !== e && d.excludes[b].push((0, \n o.getDecisionTaker)(g) + \":\" + g.alternation);\n var T = [], A = -1;\n for (y = b; b < r.getLastValidPosition.call(c, void 0, !0) + 1; y++) -1 === A && e <= y && void 0 !== t && (T.push(t), \n A = T.length - 1), (k = d.validPositions[b]) && !0 !== k.generatedInput && (void 0 === s || y < P || y >= S) && T.push(k.input), \n d.validPositions.splice(b, 1);\n for (-1 === A && void 0 !== t && (T.push(t), A = T.length - 1); void 0 !== d.excludes[b] && d.excludes[b].length < 10; ) {\n for (d.tests = {}, r.resetMaskSet.call(c, !0), M = !0, y = 0; y < T.length && (x = M.caret || 0 == p.insertMode && null != x ? r.seekNext.call(c, x) : r.getLastValidPosition.call(c, void 0, !0) + 1, \n w = T[y], M = f.call(c, x, w, !1, i, !0)); y++) y === A && (E = M), 1 == e && M && (E = {\n caretPos: y\n });\n if (M) break;\n if (r.resetMaskSet.call(c), g = o.getTest.call(c, b), d.validPositions = u.extend(!0, [], O), \n d.tests = u.extend(!0, {}, _), !d.excludes[b]) {\n E = l.call(c, e, t, n, i, b - 1, s);\n break;\n }\n if (null != g.alternation) {\n var D = (0, o.getDecisionTaker)(g);\n if (-1 !== d.excludes[b].indexOf(D + \":\" + g.alternation)) {\n E = l.call(c, e, t, n, i, b - 1, s);\n break;\n }\n for (d.excludes[b].push(D + \":\" + g.alternation), y = b; y < r.getLastValidPosition.call(c, void 0, !0) + 1; y++) d.validPositions.splice(b);\n } else delete d.excludes[b];\n }\n }\n return E && !1 === p.keepStatic || delete d.excludes[b], E;\n }\n function s(e, t, n) {\n var i = this.opts, r = this.maskset;\n switch (i.casing || t.casing) {\n case \"upper\":\n e = e.toUpperCase();\n break;\n\n case \"lower\":\n e = e.toLowerCase();\n break;\n\n case \"title\":\n var o = r.validPositions[n - 1];\n e = 0 === n || o && o.input === String.fromCharCode(a.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n break;\n\n default:\n if (\"function\" == typeof i.casing) {\n var l = Array.prototype.slice.call(arguments);\n l.push(r.validPositions), e = i.casing.apply(this, l);\n }\n }\n return e;\n }\n function c(e) {\n var t = this, n = this.opts, i = this.maskset;\n if (\"function\" == typeof n.isComplete) return n.isComplete(e, n);\n if (\"*\" !== n.repeat) {\n var a = !1, l = r.determineLastRequiredPosition.call(t, !0), s = l.l;\n if (void 0 === l.def || l.def.newBlockMarker || l.def.optionality || l.def.optionalQuantifier) {\n a = !0;\n for (var c = 0; c <= s; c++) {\n var u = o.getTestTemplate.call(t, c).match;\n if (!0 !== u.static && void 0 === i.validPositions[c] && (!1 === u.optionality || void 0 === u.optionality || u.optionality && 0 == u.newBlockMarker) && (!1 === u.optionalQuantifier || void 0 === u.optionalQuantifier) || !0 === u.static && \"\" != u.def && e[c] !== o.getPlaceholder.call(t, c, u)) {\n a = !1;\n break;\n }\n }\n }\n return a;\n }\n }\n function u(e) {\n var t = this.opts.insertMode ? 0 : 1;\n return this.isRTL ? e.begin - e.end > t : e.end - e.begin > t;\n }\n function f(e, t, n, i, a, p, m) {\n var g = this, y = this.dependencyLib, k = this.opts, b = g.maskset;\n n = !0 === n;\n var x = e;\n function w(e) {\n if (void 0 !== e) {\n if (void 0 !== e.remove && (Array.isArray(e.remove) || (e.remove = [ e.remove ]), \n e.remove.sort((function(e, t) {\n return g.isRTL ? e.pos - t.pos : t.pos - e.pos;\n })).forEach((function(e) {\n v.call(g, {\n begin: e,\n end: e + 1\n });\n })), e.remove = void 0), void 0 !== e.insert && (Array.isArray(e.insert) || (e.insert = [ e.insert ]), \n e.insert.sort((function(e, t) {\n return g.isRTL ? t.pos - e.pos : e.pos - t.pos;\n })).forEach((function(e) {\n \"\" !== e.c && f.call(g, e.pos, e.c, void 0 === e.strict || e.strict, void 0 !== e.fromIsValid ? e.fromIsValid : i);\n })), e.insert = void 0), e.refreshFromBuffer && e.buffer) {\n var t = e.refreshFromBuffer;\n d.call(g, !0 === t ? t : t.start, t.end, e.buffer), e.refreshFromBuffer = void 0;\n }\n void 0 !== e.rewritePosition && (x = e.rewritePosition, e = !0);\n }\n return e;\n }\n function P(t, n, a) {\n var l = !1;\n return o.getTests.call(g, t).every((function(c, f) {\n var p = c.match;\n if (r.getBuffer.call(g, !0), !1 !== (l = (!p.jit || void 0 !== b.validPositions[r.seekPrevious.call(g, t)]) && (null != p.fn ? p.fn.test(n, b, t, a, k, u.call(g, e)) : (n === p.def || n === k.skipOptionalPartCharacter) && \"\" !== p.def && {\n c: o.getPlaceholder.call(g, t, p, !0) || p.def,\n pos: t\n }))) {\n var d = void 0 !== l.c ? l.c : n, h = t;\n return d = d === k.skipOptionalPartCharacter && !0 === p.static ? o.getPlaceholder.call(g, t, p, !0) || p.def : d, \n !0 !== (l = w(l)) && void 0 !== l.pos && l.pos !== t && (h = l.pos), !0 !== l && void 0 === l.pos && void 0 === l.c ? !1 : (!1 === v.call(g, e, y.extend({}, c, {\n input: s.call(g, d, p, h)\n }), i, h) && (l = !1), !1);\n }\n return !0;\n })), l;\n }\n void 0 !== e.begin && (x = g.isRTL ? e.end : e.begin);\n var S = !0, O = y.extend(!0, [], b.validPositions);\n if (!1 === k.keepStatic && void 0 !== b.excludes[x] && !0 !== a && !0 !== i) for (var _ = x; _ < (g.isRTL ? e.begin : e.end); _++) void 0 !== b.excludes[_] && (b.excludes[_] = void 0, \n delete b.tests[_]);\n if (\"function\" == typeof k.preValidation && !0 !== i && !0 !== p && (S = w(S = k.preValidation.call(g, r.getBuffer.call(g), x, t, u.call(g, e), k, b, e, n || a))), \n !0 === S) {\n if (S = P(x, t, n), (!n || !0 === i) && !1 === S && !0 !== p) {\n var M = b.validPositions[x];\n if (!M || !0 !== M.match.static || M.match.def !== t && t !== k.skipOptionalPartCharacter) {\n if (k.insertMode || void 0 === b.validPositions[r.seekNext.call(g, x)] || e.end > x) {\n var E = !1;\n if (b.jitOffset[x] && void 0 === b.validPositions[r.seekNext.call(g, x)] && !1 !== (S = f.call(g, x + b.jitOffset[x], t, !0, !0)) && (!0 !== a && (S.caret = x), \n E = !0), e.end > x && (b.validPositions[x] = void 0), !E && !r.isMask.call(g, x, k.keepStatic && 0 === x)) for (var j = x + 1, T = r.seekNext.call(g, x, !1, 0 !== x); j <= T; j++) if (!1 !== (S = P(j, t, n))) {\n S = h.call(g, x, void 0 !== S.pos ? S.pos : j) || S, x = j;\n break;\n }\n }\n } else S = {\n caret: r.seekNext.call(g, x)\n };\n }\n g.hasAlternator && !0 !== a && !n && (a = !0, !1 === S && k.keepStatic && (c.call(g, r.getBuffer.call(g)) || 0 === x) ? S = l.call(g, x, t, n, i, void 0, e) : (u.call(g, e) && b.tests[x] && b.tests[x].length > 1 && k.keepStatic || 1 == S && !0 !== k.numericInput && b.tests[x] && b.tests[x].length > 1 && r.getLastValidPosition.call(g, void 0, !0) > x) && (S = l.call(g, !0))), \n !0 === S && (S = {\n pos: x\n });\n }\n if (\"function\" == typeof k.postValidation && !0 !== i && !0 !== p) {\n var A = k.postValidation.call(g, r.getBuffer.call(g, !0), void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e, t, S, k, b, n, m);\n void 0 !== A && (S = !0 === A ? S : A);\n }\n S && void 0 === S.pos && (S.pos = x), !1 === S || !0 === p ? (r.resetMaskSet.call(g, !0), \n b.validPositions = y.extend(!0, [], O)) : h.call(g, void 0, x, !0);\n var D = w(S);\n void 0 !== g.maxLength && (r.getBuffer.call(g).length > g.maxLength && !i && (r.resetMaskSet.call(g, !0), \n b.validPositions = y.extend(!0, [], O), D = !1));\n return D;\n }\n function p(e, t, n) {\n for (var i = this.maskset, a = !1, r = o.getTests.call(this, e), l = 0; l < r.length; l++) {\n if (r[l].match && (r[l].match.nativeDef === t.match[n.shiftPositions ? \"def\" : \"nativeDef\"] && (!n.shiftPositions || !t.match.static) || r[l].match.nativeDef === t.match.nativeDef || n.regex && !r[l].match.static && r[l].match.fn.test(t.input, i, e, !1, n))) {\n a = !0;\n break;\n }\n if (r[l].match && r[l].match.def === t.match.nativeDef) {\n a = void 0;\n break;\n }\n }\n return !1 === a && void 0 !== i.jitOffset[e] && (a = p.call(this, e + i.jitOffset[e], t, n)), \n a;\n }\n function d(e, t, n) {\n var a, o, l = this, s = this.maskset, c = this.opts, u = this.dependencyLib, f = c.skipOptionalPartCharacter, p = l.isRTL ? n.slice().reverse() : n;\n if (c.skipOptionalPartCharacter = \"\", !0 === e) r.resetMaskSet.call(l, !1), e = 0, \n t = n.length, o = r.determineNewCaretPosition.call(l, {\n begin: 0,\n end: 0\n }, !1).begin; else {\n for (a = e; a < t; a++) s.validPositions.splice(e, 0);\n o = e;\n }\n var d = new u.Event(\"keypress\");\n for (a = e; a < t; a++) {\n d.key = p[a].toString(), l.ignorable = !1;\n var h = i.EventHandlers.keypressEvent.call(l, d, !0, !1, !1, o);\n !1 !== h && void 0 !== h && (o = h.forwardPosition);\n }\n c.skipOptionalPartCharacter = f;\n }\n function h(e, t, n) {\n var i = this, a = this.maskset, l = this.dependencyLib;\n if (void 0 === e) for (e = t - 1; e > 0 && !a.validPositions[e]; e--) ;\n for (var s = e; s < t; s++) {\n if (void 0 === a.validPositions[s] && !r.isMask.call(i, s, !1)) if (0 == s ? o.getTest.call(i, s) : a.validPositions[s - 1]) {\n var c = o.getTests.call(i, s).slice();\n \"\" === c[c.length - 1].match.def && c.pop();\n var u, p = o.determineTestTemplate.call(i, s, c);\n if (p && (!0 !== p.match.jit || \"master\" === p.match.newBlockMarker && (u = a.validPositions[s + 1]) && !0 === u.match.optionalQuantifier) && ((p = l.extend({}, p, {\n input: o.getPlaceholder.call(i, s, p.match, !0) || p.match.def\n })).generatedInput = !0, v.call(i, s, p, !0), !0 !== n)) {\n var d = a.validPositions[t].input;\n return a.validPositions[t] = void 0, f.call(i, t, d, !0, !0);\n }\n }\n }\n }\n function v(e, t, n, i) {\n var a = this, l = this.maskset, s = this.opts, c = this.dependencyLib;\n function d(e, t, n) {\n var i = t[e];\n if (void 0 !== i && !0 === i.match.static && !0 !== i.match.optionality && (void 0 === t[0] || void 0 === t[0].alternation)) {\n var a = n.begin <= e - 1 ? t[e - 1] && !0 === t[e - 1].match.static && t[e - 1] : t[e - 1], r = n.end > e + 1 ? t[e + 1] && !0 === t[e + 1].match.static && t[e + 1] : t[e + 1];\n return a && r;\n }\n return !1;\n }\n var h = 0, v = void 0 !== e.begin ? e.begin : e, m = void 0 !== e.end ? e.end : e, g = !0;\n if (e.begin > e.end && (v = e.end, m = e.begin), i = void 0 !== i ? i : v, void 0 === n && (v !== m || s.insertMode && void 0 !== l.validPositions[i] || void 0 === t || t.match.optionalQuantifier || t.match.optionality)) {\n var y, k = c.extend(!0, [], l.validPositions), b = r.getLastValidPosition.call(a, void 0, !0);\n l.p = v;\n var x = u.call(a, e) ? v : i;\n for (y = b; y >= x; y--) l.validPositions.splice(y, 1), void 0 === t && delete l.tests[y + 1];\n var w, P, S = i, O = S;\n for (t && (l.validPositions[i] = c.extend(!0, {}, t), O++, S++), null == k[m] && l.jitOffset[m] && (m += l.jitOffset[m] + 1), \n y = t ? m : m - 1; y <= b; y++) {\n if (void 0 !== (w = k[y]) && !0 !== w.generatedInput && (y >= m || y >= v && d(y, k, {\n begin: v,\n end: m\n }))) {\n for (;\"\" !== o.getTest.call(a, O).match.def; ) {\n if (!1 !== (P = p.call(a, O, w, s)) || \"+\" === w.match.def) {\n \"+\" === w.match.def && r.getBuffer.call(a, !0);\n var _ = f.call(a, O, w.input, \"+\" !== w.match.def, !0);\n if (g = !1 !== _, S = (_.pos || O) + 1, !g && P) break;\n } else g = !1;\n if (g) {\n void 0 === t && w.match.static && y === e.begin && h++;\n break;\n }\n if (!g && r.getBuffer.call(a), O > l.maskLength) break;\n O++;\n }\n \"\" == o.getTest.call(a, O).match.def && (g = !1), O = S;\n }\n if (!g) break;\n }\n if (!g) return l.validPositions = c.extend(!0, [], k), r.resetMaskSet.call(a, !0), \n !1;\n } else t && o.getTest.call(a, i).match.cd === t.match.cd && (l.validPositions[i] = c.extend(!0, {}, t));\n return r.resetMaskSet.call(a, !0), h;\n }\n }\n }, t = {};\n function n(i) {\n var a = t[i];\n if (void 0 !== a) return a.exports;\n var r = t[i] = {\n exports: {}\n };\n return e[i](r, r.exports, n), r.exports;\n }\n var i = {};\n return function() {\n var e = i;\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = void 0, n(7149), n(3194), n(9302), n(4013), n(3851), n(219), n(207), \n n(5296);\n var t, a = (t = n(2394)) && t.__esModule ? t : {\n default: t\n };\n e.default = a.default;\n }(), i;\n }();\n}));","import { Controller } from '@hotwired/stimulus'\nimport Inputmask from 'inputmask'\n\nexport default class BankAccountNumberController extends Controller {\n initialize() {\n this.addMask()\n }\n\n removeMask() {\n Inputmask.remove(this.element)\n }\n\n addMask() {\n Inputmask('9999.99.99999').mask(this.element)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Inputmask from 'inputmask'\n\nexport default class extends Controller {\n initialize() {\n Inputmask({ mask: '999999 99999', removeMaskOnSubmit: true }).mask(this.element)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Inputmask from 'inputmask'\n\nexport default class NorwegianZipCodeController extends Controller {\n connect() {\n Inputmask({\n mask: '0000',\n placeholder: '_',\n definitions: {\n '0': {\n validator: '[0-9]',\n cardinality: 1,\n },\n },\n }).mask(this.element)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport flatpickr from 'flatpickr'\nimport DateLimit = flatpickr.Options.DateLimit\nimport FlatpickrController from 'controllers/flatpickr_controller'\n\nexport default class PaymentDatePickerController extends Controller {\n static values = { holidayDates: Array }\n\n declare holidayDatesValue: DateLimit[]\n\n invalidDatesForExecution: DateLimit[]\n\n connect() {\n this.invalidDatesForExecution = this.holidayDatesValue.concat((date: Date) => {\n return date.getDay() === 6 || date.getDay() === 0\n })\n }\n\n setPaymentType(paymentType: string) {\n if (paymentType === 'register_payment_later') {\n return\n }\n\n const selectedDate = (this.element as HTMLInputElement).value\n const flatpickrController = this.application.getControllerForElementAndIdentifier(this.element, 'flatpickr') as any\n\n if (flatpickrController === null) {\n return\n }\n\n switch (paymentType) {\n case 'execute':\n case 'initiated':\n flatpickrController.fp.set('minDate', this.executePaymentMinDate())\n flatpickrController.fp.set('disable', this.invalidDatesForExecution)\n break\n case 'paid_in_bank':\n flatpickrController.fp.set('minDate', null)\n flatpickrController.fp.set('disable', [])\n break\n default:\n throw new Error(`Payment type ${paymentType} unknown`)\n }\n\n this.selectNearestAvailablePaymentDate(selectedDate, flatpickrController)\n }\n\n private selectNearestAvailablePaymentDate(selectedDate: string, flatpickrController: FlatpickrController) {\n if (selectedDate == '') {\n return\n }\n\n let date = flatpickr.parseDate(selectedDate, 'Y-m-d')\n flatpickrController.fp.setDate(date)\n\n let availableDates = flatpickrController.fp.selectedDates\n while (availableDates.length === 0) {\n date.setDate(date.getDate() + 1)\n flatpickrController.fp.setDate(date)\n availableDates = flatpickrController.fp.selectedDates\n }\n }\n\n private executePaymentMinDate(): string {\n const last_executable_hour = 14\n const last_executable_minute = 15\n\n let today = new Date()\n if (today.getHours() > last_executable_hour && today.getMinutes() > last_executable_minute) {\n let tomorrow = new Date()\n tomorrow.setDate(today.getDate() + 1)\n return tomorrow.toISOString().slice(0, 10)\n } else {\n return today.toISOString().slice(0, 10)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['passwordInput']\n\n declare passwordInputTarget: HTMLInputElement\n\n toggle(event) {\n const button = event.target as HTMLButtonElement\n const icon = button.querySelector('svg')\n\n if (this.passwordInputTarget.type === 'password') {\n this.passwordInputTarget.type = 'text'\n icon.classList.remove('fa-eye')\n icon.classList.add('fa-eye-slash')\n } else {\n this.passwordInputTarget.type = 'password'\n icon.classList.remove('fa-eye-slash')\n icon.classList.add('fa-eye')\n }\n }\n}\n","// This controller is used to show an element when the input value changes\n\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['input', 'show']\n\n declare inputTarget: HTMLInputElement\n declare showTargets: Array\n\n originalValue: string\n\n connect() {\n this.originalValue = this.inputTarget.value\n this.inputTarget.addEventListener('input', this.handleInputChange.bind(this))\n }\n\n handleInputChange() {\n if (this.originalValue !== this.inputTarget.value) {\n this.showTargets.forEach((element) => element.classList.remove('d-none'))\n } else {\n this.showTargets.forEach((element) => element.classList.add('d-none'))\n }\n }\n}\n","export default class KidValidator {\n validKidNumber(inputValue) {\n if (!this.containsOnlyValidChars(inputValue)) {\n return false\n }\n let kidNumber = inputValue\n let controlDigit = kidNumber.charAt(kidNumber.length - 1)\n if (controlDigit === '-') controlDigit = '10'\n let isMod11 = parseInt(controlDigit, 10) === this.mod11OfNumberWithControlDigit(kidNumber)\n let isLuhn = parseInt(controlDigit, 10) === this.luhnChecksumOfNumberWithControlDigit(kidNumber)\n return isMod11 || isLuhn\n }\n\n mod11OfNumberWithControlDigit(input) {\n let controlNumber = 2,\n sumForMod = 0,\n i\n\n for (i = input.length - 2; i >= 0; --i) {\n sumForMod += input.charAt(i) * controlNumber\n if (++controlNumber > 7) controlNumber = 2\n }\n let result = 11 - (sumForMod % 11)\n\n return result === 11 ? 0 : result\n }\n\n luhnChecksumOfNumberWithControlDigit(number) {\n let sum = 0\n for (let i = number.length - 2; i >= 0; i -= 2) {\n let dbl = (parseInt(number.charAt(i), 10) * 2).toString()\n sum += parseInt(dbl.charAt(0), 10) + parseInt(dbl.charAt(1) || '0', 10)\n }\n for (let i = number.length - 3; i >= 0; i -= 2) {\n sum += parseInt(number.charAt(i), 10)\n }\n let checkDigit = 10 - (sum % 10)\n return checkDigit === 10 ? 0 : checkDigit\n }\n\n containsOnlyValidChars(input) {\n return /^\\d+(\\d|-)$/.test(input)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport KidValidator from '../classes/kid_validator'\n\nexport default class extends Controller {\n static targets = ['warning', 'input']\n inputTarget: HTMLInputElement\n warningTarget: HTMLElement\n\n connect() {\n this.element.addEventListener('input', this.validate.bind(this))\n }\n\n validate() {\n let validator = new KidValidator()\n if (validator.validKidNumber(this.inputTarget.value)) {\n this.warningTarget.style.display = 'none'\n } else {\n this.warningTarget.style.display = 'block'\n }\n }\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$3(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$2(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$1(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$1(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier);\n\n return lottie;\n\n}));\n","import { Controller } from '@hotwired/stimulus'\nimport Lottie from 'lottie-web/build/player/lottie_light'\n\nexport default class extends Controller {\n connect() {\n Lottie.loadAnimation({\n container: this.element,\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: (this.element as HTMLElement).dataset.source,\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { parseDecimal } from '../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { formatISO, isSameDay, parseISO } from 'date-fns'\nimport { rails_fetch } from '../../util/rails_fetch'\n\nexport default class extends Controller {\n static targets = [\n 'dates',\n 'addDateLink',\n 'addDebitItem',\n 'addCreditItem',\n 'debitFields',\n 'creditFields',\n 'debitAmount',\n 'creditAmount',\n 'createJournalButton',\n 'vatCodeSelect',\n ]\n\n declare addDateLinkTarget\n declare vatCodeSelectTargets\n declare datesTarget: HTMLElement\n declare createJournalButtonTarget: HTMLElement\n\n connect() {\n this.updateVatCodes = this.updateVatCodes.bind(this)\n\n document.querySelectorAll('input.date_picker').forEach((datePickerElement) => {\n this.addEventListenerOnDatePickerElement(datePickerElement)\n })\n }\n\n addEventListenerOnDatePickerElement(datePickerElement) {\n datePickerElement.addEventListener('change', (event) => {\n const posting = (event.target as HTMLInputElement).closest('.posting-item')\n this.updateAllVatCodesInPosting(posting)\n })\n }\n\n updateAllVatCodesInPosting(posting) {\n this.vatCodeSelectTargets.forEach((codeSelector) => {\n let vatCodeSelector = posting.querySelector(`#${codeSelector.id}`)\n\n if (!vatCodeSelector) {\n return\n }\n\n let accountSelector = posting.querySelector(`#${vatCodeSelector.dataset.vat}`)\n\n let accountAdditionalData = JSON.parse(accountSelector.dataset.accountAdditionalData)\n\n if (!accountAdditionalData.available_vat_codes) {\n return\n }\n\n let available_vat_codes = accountAdditionalData.available_vat_codes\n let default_vat_code = accountAdditionalData.default_vat_code\n let sub_code = accountAdditionalData.sub_code\n\n this.updateVatCodes(posting, vatCodeSelector, accountSelector, available_vat_codes, default_vat_code, sub_code)\n })\n }\n\n accountSelectHandler(event) {\n let vatCodeSelector = this.vatCodeSelectTargets.find((codeSelector) => {\n return (event.target as HTMLSelectElement).closest('.subline-item').querySelector(`#${codeSelector.id}`)\n })\n let accountSelector = event.target\n let posting = event.target.closest('.posting-item')\n\n this.fillAccountAdditionalDataAttribute(event)\n\n this.updateVatCodes(\n posting,\n vatCodeSelector,\n accountSelector,\n event.available_vat_codes,\n event.default_vat_code,\n event.sub_code,\n )\n }\n\n fillAccountAdditionalDataAttribute(event) {\n let accountAdditionalData = {\n available_vat_codes: event.available_vat_codes,\n sub_code: event.sub_code,\n default_vat_code: event.default_vat_code,\n }\n event.target.dataset.accountAdditionalData = JSON.stringify(accountAdditionalData)\n }\n\n updateVatCodes(posting, vatCodeSelector, accountSelector, available_vat_codes, default_vat_code, sub_code) {\n let id = accountSelector.id\n\n if (sub_code !== null) {\n this.changeVatSelectOptions([0], '0', posting, vatCodeSelector)\n vatCodeSelector.disabled = true\n if (!$(`#hidden-select-${id}`).length) {\n let hiddenInput = document.createElement('input')\n hiddenInput.id = `hidden-select-${id}`\n hiddenInput.name = vatCodeSelector.getAttribute('name')\n hiddenInput.type = 'hidden'\n hiddenInput.value = '0'\n vatCodeSelector.parentNode.insertBefore(hiddenInput, vatCodeSelector.nextSibling)\n }\n } else {\n if (vatCodeSelector.dataset.fixed !== undefined && vatCodeSelector.dataset.fixed === 'true') {\n if (available_vat_codes[0] !== null) {\n this.changeVatSelectOptions(available_vat_codes, parseInt(vatCodeSelector.value), posting, vatCodeSelector)\n }\n } else {\n vatCodeSelector.disabled = false\n const hiddenSelect = document.querySelector(`#hidden-select-${id}`)\n if (hiddenSelect !== null) {\n hiddenSelect.parentNode.removeChild(hiddenSelect)\n }\n if (available_vat_codes[0] !== null) {\n this.changeVatSelectOptions(available_vat_codes, default_vat_code, posting, vatCodeSelector)\n }\n }\n }\n }\n\n async changeVatSelectOptions(available_vat_codes, default_vat_code, posting, vatSelect) {\n let postingDate = new Date(posting.querySelector('input[data-bs-target=\"date\"]').value)\n if (postingDate === null || isNaN(postingDate.getFullYear())) {\n postingDate = new Date()\n }\n let currentVatSelectOption = vatSelect.value\n\n const allowedVatCodes = available_vat_codes.map((code) => code.toString())\n let vatCodesByDates = (window as any).vatCodesByDates\n let dateIso = formatISO(postingDate, { representation: 'date' })\n\n if (!(dateIso in vatCodesByDates)) {\n let response = await rails_fetch(`/${(window as any).current_company_id}/vat/rates?date=${dateIso}`)\n // Store results per date, in manual journal we have many dates\n ;(window as any).vatCodesByDates[dateIso] = await response.json()\n }\n\n let vatCodes = []\n if ('rates' in vatCodesByDates[dateIso]) {\n vatCodes = vatCodesByDates[dateIso]['rates']\n } else {\n vatCodes = vatCodesByDates[dateIso]\n }\n\n const availableVatOptions = vatCodes.filter(([_label, code]) => allowedVatCodes.includes(code))\n\n // remove all children elements\n while (vatSelect.firstChild) {\n vatSelect.removeChild(vatSelect.firstChild)\n }\n\n availableVatOptions.forEach(([label, code]) => {\n const option = new Option(label, code, false, false)\n vatSelect.appendChild(option)\n })\n\n if (availableVatOptions.some(([_label, code]) => currentVatSelectOption.toString() === code.toString())) {\n vatSelect.value = currentVatSelectOption\n } else if (availableVatOptions.some(([_label, code]) => default_vat_code.toString() === code.toString())) {\n vatSelect.value = default_vat_code\n } else if (availableVatOptions.length > 0) {\n vatSelect.value = availableVatOptions[0][1]\n }\n }\n\n addDates(event) {\n const postingRegexp = new RegExp(this.addDateLinkTarget.dataset.postingId, 'g')\n const debitSublineTime = new Date().getTime()\n const debitSublineRegexp = new RegExp(this.addDateLinkTarget.dataset.debitSublineId, 'g')\n const creditSublineTime = new Date().getTime() + 1\n const creditSublineRegexp = new RegExp(this.addDateLinkTarget.dataset.creditSublineId, 'g')\n this.datesTarget.insertAdjacentHTML(\n 'beforeend',\n this.addDateLinkTarget.dataset.fields\n .replace(postingRegexp, new Date().getTime() + 2)\n .replace(debitSublineRegexp, debitSublineTime)\n .replace(creditSublineRegexp, creditSublineTime)\n .replace('hidden=\"hidden\"', ''),\n )\n this.createJournalButtonTarget.classList.remove('d-none')\n\n let lastDatePicker =\n document.querySelectorAll('input.date_picker')[document.querySelectorAll('input.date_picker').length - 1]\n this.addEventListenerOnDatePickerElement(lastDatePicker)\n\n return event.preventDefault()\n }\n\n addItem(event) {\n const addItem = event.target\n const Items = addItem.closest('.items-block').querySelector('.items')\n const regexp = new RegExp(addItem.dataset.id, 'g')\n const time = new Date().getTime()\n Items.insertAdjacentHTML('beforeend', addItem.dataset.fields.replace(regexp, time))\n this.removeVatLock(addItem)\n return event.preventDefault()\n }\n\n removeDate(event) {\n const postingItem = event.target.closest('.posting-item')\n postingItem.parentNode.removeChild(postingItem)\n if (document.querySelectorAll('.posting-item').length === 0) {\n this.createJournalButtonTarget.classList.add('d-none')\n }\n return event.preventDefault()\n }\n\n removeItem(event) {\n this.removeVatLock(event.target)\n this.updatePostingAmount(event, true)\n return event.preventDefault()\n }\n\n removeVatLock(item) {\n const itemsBlock = item.closest('.posting-item')\n itemsBlock.querySelectorAll('.vat-code').forEach((elem) => {\n if (elem.disabled && elem.dataset.fixed === 'true') {\n if (elem.dataset.subcode === 'false') {\n elem.disabled = false\n }\n elem.dataset.fixed = false\n if (elem.getAttribute('type') === 'hidden' && !elem.disabled) {\n elem.parentNode.removeChild(elem)\n }\n }\n })\n itemsBlock.querySelectorAll('.subline-amount').forEach((elem) => {\n if (elem.dataset.locked === 'false') {\n elem.disabled = false\n if (elem.getAttribute('type') === 'hidden') {\n elem.parentNode.removeChild(elem)\n }\n }\n })\n itemsBlock.querySelectorAll('.account-id').forEach((elem) => {\n if (elem.dataset.fixed === 'true' && !elem.disabled) {\n elem.dataset.fixed = false\n }\n })\n }\n\n sanitizeNumber(event) {\n let { target } = event\n target.value = target.value.replace(/\\s+/g, '')\n this.updatePostingAmount(event, undefined)\n }\n\n updatePostingAmount(event, remove) {\n const itemBlock = event.target.closest('.items-block')\n if (remove !== undefined) {\n const sublineItem = event.target.closest('.subline-item')\n sublineItem.parentNode.removeChild(sublineItem)\n }\n const amounts = itemBlock.querySelectorAll('.subline-amount')\n const totalAmount = Array.from(amounts).reduce((subTotal: Decimal, element: HTMLInputElement) => {\n let amount = parseDecimal(element.value, new Decimal(0))\n if (amount.isNaN() || element.getAttribute('type') === 'hidden') {\n return subTotal\n } else {\n return subTotal.plus(amount)\n }\n }, new Decimal(0)) as Decimal\n itemBlock.querySelector('.items-total').textContent = new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(totalAmount.toNumber())\n\n this.checkAmounts(itemBlock.closest('.posting-item'))\n }\n\n updatePostingDate(event) {\n const dateItem = event.target\n const chosenDate = dateItem._flatpickr.latestSelectedDateObj\n let elem = event.target.closest('.posting-item')\n\n Array.from($(elem).find('select.select2-input')).forEach((elem) => {\n if ($(elem).select2('data').length > 0) {\n let data = {\n data: Object.assign(JSON.parse($(elem).attr('data-account-additional-data')), $(elem).select2('data')[0]),\n }\n let event = jQuery.Event('select2:select', { params: data })\n $(elem).trigger(event)\n }\n })\n }\n\n checkAmounts(posting) {\n const dateItem = posting.closest('.posting-item')\n let totalDebitItem = dateItem.querySelectorAll('.items-total')[0]\n let totalCreditItem = dateItem.querySelectorAll('.items-total')[1]\n const totalDebitAmount = parseDecimal(totalDebitItem.textContent, new Decimal(0))\n const totalCreditAmount = parseDecimal(totalCreditItem.textContent, new Decimal(0))\n if (!totalDebitAmount.eq(totalCreditAmount)) {\n totalDebitItem.classList.add('text-danger')\n totalCreditItem.classList.add('text-danger')\n } else {\n totalDebitItem.classList.remove('text-danger')\n totalCreditItem.classList.remove('text-danger')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\n// This controller is used when you want to move an element.\n// This is useful for items such as Modals which we usually add together with the links to the modals.\n// By moving them to the another element we avoid them being styled by the parent elements of the link.\n\nexport default class extends Controller {\n static targets = ['element', 'destination']\n\n declare elementTargets: Array\n declare hasDestinationTarget: boolean\n declare destinationTarget: HTMLElement\n\n initialize() {\n // Since an element can only be once in the DOM-tree, this will actually move this element to the target element\n if (this.hasDestinationTarget) {\n this.elementTargets.forEach((element) => this.destinationTarget.appendChild(element))\n } else {\n document.body.appendChild(this.element)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['focusReceiver']\n\n declare hasFocusReceiverTarget: boolean\n declare focusReceiverTarget: HTMLInputElement\n\n connect() {\n if (this.hasFocusReceiverTarget) {\n let focusReceiverTarget = this.focusReceiverTarget\n this.element.addEventListener('shown.bs.dropdown', function () {\n focusReceiverTarget.focus()\n })\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['navItem']\n\n declare navItemTargets: Array\n\n connect() {\n this._updateNavigationMenuItems()\n }\n\n _updateNavigationMenuItems() {\n this.navItemTargets.forEach((item) => {\n if (this._hasSubItems(item)) {\n this._updateNavItemWithSubitems(item)\n } else {\n this._updateStandaloneNavItem(item)\n }\n })\n }\n\n _hasSubItems(item): boolean {\n return item.getElementsByTagName('a').length > 1\n }\n\n _updateNavItemWithSubitems(item) {\n const mainItem = item.children[0]\n const collapseParentElement = item.children[1]\n let subItemsArray = [...item.getElementsByTagName('ul')[0].children]\n let isActive = false\n let subLink = null\n subItemsArray.forEach((subItem) => {\n subLink = subItem.getElementsByTagName('a')[0]\n\n if (document.URL.split('?')[0].match(new RegExp(`${subLink.href}$`))) {\n isActive = true\n subLink.classList.add('active')\n subLink.children[0].classList.add('sidebar__active-submenu-item')\n } else {\n subLink.classList.remove('active')\n subLink.children[0].classList.remove('sidebar__active-submenu-item')\n }\n })\n if (isActive) {\n mainItem.classList.add('active')\n collapseParentElement.classList.add('show', 'text-muted')\n } else {\n mainItem.classList.remove('active')\n collapseParentElement.classList.remove('show', 'text-muted')\n }\n }\n\n _updateStandaloneNavItem(item) {\n const linkElement = item.getElementsByTagName('a')[0]\n if (document.URL.includes(linkElement.href)) {\n linkElement.classList.add('active')\n } else {\n linkElement.classList.remove('active')\n }\n }\n}\n","// This controller is copied from\n// https://github.com/stimulus-components/stimulus-rails-nested-form/blob/master/src/index.ts\n\n// MIT License\n//\n// Copyright (c) 2021 Guillaume Briday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n declare targetTarget: HTMLElement\n declare templateTarget: HTMLElement\n declare wrapperSelectorValue: string\n declare wrapperSelector: string\n\n static targets = ['target', 'template']\n static values = {\n wrapperSelector: {\n type: String,\n default: '.nested-form-wrapper',\n },\n }\n\n add(e: Event) {\n e.preventDefault()\n\n let content: string = this.templateTarget.innerHTML.replace(/NEW_RECORD/g, new Date().getTime().toString())\n\n // If the content contains a modal, we need to provide a new target so new elements do not point to the same target\n let div = document.createElement('div')\n div.innerHTML = content\n let modal = div.querySelector('.modal') as HTMLElement\n if (modal !== null) {\n content = content.replace(new RegExp(modal.dataset.bsTarget, 'g'), new Date().getTime().toString())\n }\n\n this.targetTarget.insertAdjacentHTML('beforebegin', content)\n }\n\n remove(e: Event): void {\n e.preventDefault()\n\n // @ts-ignore\n const wrapper: HTMLElement = e.target.closest(this.wrapperSelectorValue)\n\n if (wrapper.dataset.newRecord === 'true') {\n wrapper.remove()\n } else {\n wrapper.style.display = 'none'\n\n const input: HTMLInputElement = wrapper.querySelector(\"input[name*='_destroy']\")\n input.value = '1'\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport BankAccount from '../classes/bank_account'\nimport $ from 'jquery'\nimport { Modal } from 'bootstrap'\nimport { ConfigurationOptions } from 'typesense/src/Typesense/Configuration'\nimport { format, parseISO } from 'date-fns'\nimport { rails_fetch } from '../util/rails_fetch'\nimport JsFormError from '../standalone/components/JsFormError'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static values = { chosenSubscriptionTier: String }\n\n declare chosenSubscriptionTierValue: String\n\n static targets = [\n 'companySelector',\n 'companySelectedBlock',\n 'termsRow',\n 'organisationNumber',\n 'organisationNotRegistered',\n 'street',\n 'city',\n 'municipality',\n 'vatRegistered',\n 'organisationNumberNew',\n 'streetNew',\n 'cityNew',\n 'zipNew',\n 'submitButton',\n 'accountNumber',\n 'zip',\n 'warningModal',\n 'companyName',\n 'termsAccepted',\n 'demoCompanyCard',\n 'letsGetStartedCards',\n 'tierSubscriptionCards',\n 'chosenSubscriptionTier',\n 'yearEndStandalone',\n 'yearEndStandaloneSubscriptionCard',\n ]\n\n declare companySelectorTarget\n declare companySelectedBlockTarget: HTMLElement\n declare termsRowTarget: HTMLElement\n declare organisationNotRegisteredTarget\n declare organisationNumberTarget\n declare bankAccount: BankAccount\n declare streetTarget\n declare cityTarget\n declare zipTarget\n declare municipalityTarget\n declare hasMunicipalityTarget: boolean\n declare cityNewTarget\n declare zipNewTarget\n declare streetNewTarget\n declare organisationNumberNewTarget\n declare companyNameTarget\n declare termsAcceptedTarget: HTMLInputElement\n declare demoCompanyCardTarget\n declare hasDemoCompanyCardTarget: Boolean\n declare vatRegisteredTargets: Array\n declare accountNumberTarget: HTMLInputElement\n declare submitButtonTarget: HTMLButtonElement\n declare letsGetStartedCardsTarget: HTMLElement\n declare hasTierSubscriptionCardsTarget: boolean\n declare tierSubscriptionCardsTarget: HTMLElement\n declare chosenSubscriptionTierTarget: HTMLElement\n declare yearEndStandaloneTargets: Array\n declare yearEndStandaloneSubscriptionCardTarget: HTMLElement\n declare hasYearEndStandaloneSubscriptionCardTarget: boolean\n\n connect() {\n this._setupSelect2()\n }\n\n async submit(event) {\n event.preventDefault()\n\n const form = this.element.querySelector('form')\n const formData = new FormData(form)\n\n Modal.getOrCreateInstance(document.querySelector('#company-waiting-modal')).show()\n\n let response = await rails_fetch(form.action, {\n method: form.method,\n body: formData,\n })\n\n if (response.status != 200) {\n Modal.getOrCreateInstance(document.querySelector('#company-waiting-modal')).hide()\n let data = await response.json()\n new JsFormError(data.model_name, data)\n } else {\n let data = await response.json()\n window.location = data.path\n }\n }\n\n _setupSelect2(): void {\n const params = {\n theme: 'bootstrap',\n width: '100%',\n delay: 100,\n minimumInputLength: 1, // PS Minimum input length hides the default options\n tags: true,\n insertTag: function (data, tag) {\n // Insert the tag at the end of the results\n data.push(tag)\n },\n createTag: function (params) {\n const term = $.trim(params.term)\n\n if (term === '') {\n return null\n }\n\n return {\n id: term,\n text: term,\n newTag: true,\n organisation_number: i18n.t('company.organisation_number_unknown'),\n }\n },\n ajax: {\n url: this.typesenseUrl(),\n contentType: 'application/x-www-form-urlencoded; charset=UTF-8', // avoid preflight check\n headers: { 'X-TYPESENSE-API-KEY': this.typesenseConfig.apiKey },\n data(params) {\n return {\n q: params.term,\n page: params.page,\n per_page: '8',\n query_by: 'name,organisation_number',\n }\n },\n processResults(data, params) {\n return {\n results: data.hits.map((hit) => {\n return {\n id: hit.document.organisation_number,\n name: hit.document.name,\n organisation_number: hit.document.organisation_number,\n business_address_street: hit.document.business_address_street,\n business_address_zip: hit.document.business_address_zip,\n business_address_city: hit.document.buisness_address_city,\n business_address_municipality: hit.document.business_address_municipality,\n vat_registered: hit.document.vat_registered,\n }\n }),\n pagination: {\n more: false,\n },\n }\n },\n cache: true,\n },\n /* This formats what is shown in the selection options */\n templateResult: this._templateNewCompany,\n /* How a selected result will look when clicked (or selected) */\n templateSelection(selected) {\n if (selected.text) {\n return selected.text\n }\n return selected.name\n },\n placeholder: i18n.t('company.new_search_placeholder'),\n }\n $(this.companySelectorTarget).select2(params)\n\n $(this.companySelectorTarget).on('select2:select', (event) => {\n const data = event.params.data as any\n if (this.hasDemoCompanyCardTarget) {\n this.demoCompanyCardTarget.classList.add('d-none')\n }\n this.companyNameTarget.value = data.name || ''\n this.organisationNumberTarget.value = data.organisation_number || ''\n this.streetTarget.value = data.business_address_street || ''\n this.zipTarget.value = data.business_address_zip || ''\n this.cityTarget.value = data.business_address_city || ''\n if (this.hasMunicipalityTarget) {\n const data_municipality = data.business_address_municipality || ''\n const municipality = this.findMunicipalityHashIdByName(this.municipalityTarget.options, data_municipality)\n this.municipalityTarget.value = municipality\n }\n if (data.vat_registered === undefined) {\n $(this.vatRegisteredTargets).removeClass('d-none')\n } else {\n $(this.vatRegisteredTargets).addClass('d-none')\n }\n\n this.showYearEndStandaloneSubscriptionCard(!this.unknownOrganisationNumber(data.organisation_number))\n\n if (data.newTag) {\n // This will happen if user register company that is not present in CompanyLookup\n this.organisationNotRegisteredTarget.value = 'true'\n this.companyNameTarget.parentElement.classList.remove('d-none')\n this.companyNameTarget.value = data.text\n Modal.getOrCreateInstance(document.querySelector('#warning-modal')).show()\n this.companySelectedBlockTarget.classList.remove('d-none')\n } else {\n this.companyNameTarget.parentElement.classList.add('d-none')\n this.organisationNotRegisteredTarget.value = 'false'\n this.companySelectedBlockTarget.classList.add('d-none')\n }\n\n this.letsGetStartedCardsTarget.classList.add('d-none')\n if (this.chosenSubscriptionTierValue !== '') {\n this.chosenSubscriptionTierTarget.classList.remove('d-none')\n this.showTierFields()\n } else if (this.hasTierSubscriptionCardsTarget) {\n this.tierSubscriptionCardsTarget.classList.remove('d-none')\n this.showTierFields()\n }\n this.termsRowTarget.classList.remove('d-none')\n })\n }\n\n showYearEndStandaloneSubscriptionCard(show) {\n if (!this.hasYearEndStandaloneSubscriptionCardTarget) {\n return\n }\n\n if (show) {\n this.yearEndStandaloneSubscriptionCardTarget.classList.remove('d-none')\n this.yearEndStandaloneSubscriptionCardTarget.querySelector('input').disabled = false\n } else {\n this.yearEndStandaloneSubscriptionCardTarget.classList.add('d-none')\n this.yearEndStandaloneSubscriptionCardTarget.querySelector('input').disabled = true\n }\n }\n\n unknownOrganisationNumber(organisation_number): boolean {\n return organisation_number == i18n.t('company.organisation_number_unknown')\n }\n\n showDeletedCompanyInfo(data) {\n let existingAlertElement = document.getElementById('alert-info-id')\n if (existingAlertElement) {\n existingAlertElement.remove()\n }\n\n if (data.deleted_on == null) {\n return\n }\n\n let alertElement = document.createElement('div')\n alertElement.className = 'alert alert-info'\n alertElement.id = 'alert-info-id'\n let date = format(parseISO(data.deleted_on), i18n.t('date.formats.frontend.datefns.short'))\n alertElement.textContent = i18n.t('company.deleted_company_info', { deleted_at: date })\n\n document.getElementById('prefilled-block').prepend(alertElement)\n }\n\n termsAccepted(): void {\n this.submitButtonTarget.disabled = !this.termsAcceptedTarget.checked\n }\n\n showTierFields() {\n this.yearEndStandaloneTargets.forEach((el: HTMLInputElement) => {\n let show = this.chosenSubscriptionTierValue === 'Subscription::Tier::YearEndStandalone'\n el.disabled = !show\n show ? el.classList.remove('d-none') : el.classList.add('d-none')\n })\n }\n\n setChosenTierklass(event) {\n this.chosenSubscriptionTierValue = event.params.klass\n this.showTierFields()\n }\n\n showTierCards(event) {\n event.preventDefault()\n this.chosenSubscriptionTierTarget.classList.add('d-none')\n this.tierSubscriptionCardsTarget.classList.remove('d-none')\n }\n\n updateVisibleCompanyInfo(event): void {\n event?.preventDefault()\n this.streetNewTarget.innerHTML = this.streetTarget.value\n this.cityNewTarget.innerHTML = this.cityTarget.value\n this.zipNewTarget.innerHTML = this.zipTarget.value\n this.organisationNumberNewTarget.innerHTML = this.organisationNumberTarget.value\n }\n\n _templateNewCompany(repo): JQuery | string {\n if (repo.loading) {\n return repo.text\n }\n // This is the case where we found a result:\n if (repo.name) {\n if (repo.disabled) {\n return $(`\n ${repo.name} (${i18n.t('company.already_registered')})\n \n ${repo.business_address_municipality || ''}\n ${repo.organisation_number}\n \n `)\n } else {\n return $(`\n ${repo.name}\n \n ${repo.business_address_municipality || ''}\n ${repo.organisation_number}\n \n `)\n }\n }\n if (repo.text) {\n return `${repo.text} ${i18n.t('company.not_found_in_register')}`\n }\n return ''\n }\n\n findBankName(): void {\n this.bankAccount = new BankAccount()\n this.bankAccount.findBankNameByCode(this.accountNumberTarget)\n }\n\n findMunicipalityHashIdByName(options, name) {\n for (let i = 0; i < options.length; i++) {\n if (options[i].label === name) {\n return options[i].value\n }\n }\n return null\n }\n\n get typesenseConfig(): ConfigurationOptions {\n return (window as any).typesenseConfig\n }\n\n typesenseUrl(): string {\n const firstNode = this.typesenseConfig.nodes[0] as any\n return `${firstNode.protocol}://${firstNode.host}:${firstNode.port}/collections/company_lookups/documents/search`\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport PartnerSelectController from './partner/select_controller'\n// IMPORTANT:\n//\n// * Point customerSelect to the element controlled by partner-select.\n// * Point submit to the form submit button.\nexport default class extends Controller {\n static targets = ['customerSelect', 'submit']\n\n declare submitTarget: HTMLButtonElement\n declare customerSelectTarget: HTMLElement\n\n handlePartnerModalCreate(event) {\n this._partnerSelectController.select(event.partner)\n }\n\n handlePartnerSelectChange(event) {\n this.submitTarget.disabled = !this._partnerSelectController.isSelected\n }\n\n get _partnerSelectController() {\n return this.application.getControllerForElementAndIdentifier(\n this.customerSelectTarget,\n 'partner--select',\n ) as PartnerSelectController\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport JsFormError from '../standalone/components/JsFormError'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static values = {\n reloadPage: { type: Boolean, default: false },\n }\n static targets = ['modal', 'form']\n\n declare formTarget: HTMLFormElement\n declare reloadPageValue: boolean\n\n connect() {\n this._handleAjaxSuccess = this._handleAjaxSuccess.bind(this)\n this._handleAjaxError = this._handleAjaxError.bind(this)\n\n this.formTarget.addEventListener('ajax:success', this._handleAjaxSuccess)\n this.formTarget.addEventListener('ajax:error', this._handleAjaxError)\n }\n\n hide() {\n Modal.getOrCreateInstance(this.element).hide()\n }\n\n _handleAjaxSuccess(event) {\n const data = event.detail[0]\n const modelName = this.element.id.replace('-new-modal', '')\n // We expect the id of the modal to be #model-name-new-modal\n // handle event with: \"new-modal:create-model-name->controller#action\n this._dispatch(`new-modal:create-${modelName}`, { model: data })\n JsFormError.removePreviousErrors()\n this.formTarget.reset()\n this.hide()\n\n if (this.reloadPageValue) {\n location.reload()\n }\n }\n\n _handleAjaxError(event) {\n const data = event.detail[0]\n new JsFormError(data.model_name, data).updateForm()\n }\n\n _dispatch(eventName, params = {}) {\n const event = document.createEvent('Event')\n event.initEvent(eventName, true, true)\n Object.assign(event, params)\n this.element.dispatchEvent(event)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport TotalAmountController from './total_amount_controller'\nimport $ from 'jquery'\nimport { endOfMonth, isAfter, isSameMonth, parseISO } from 'date-fns'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport { Modal } from 'bootstrap'\nimport { nextFrame } from '../rendering'\nimport NestedFormController from 'controllers/nested_form_controller'\nimport { i18n } from '../libraries/i18n'\n\n// IMPORTANT: This controller REQUIRES that total-amount controller is also\n// used. You MUST add total-amount controller before opening-balance like so:\n//\n// data-controller=\"total-amount opening-balance\"\nexport default class extends Controller {\n static targets = [\n // Existing opening balance items.\n 'item',\n\n // The row that is used as a template when adding new items to the balance.\n 'template',\n\n // The button used to submit the balance.\n 'submitButton',\n\n // nested form controller\n 'nestedFormController',\n\n // The warning shown when the opening balance cannot be submitted due to\n // incomplete or incorrect data.\n 'invalidDataWarning',\n\n 'date',\n 'dateInFutureWarning',\n 'dateInPastWarning',\n 'reconciledAccountTouchedWarning',\n 'confirmModal',\n 'confirmModalHeader',\n 'confirmModalBody',\n ]\n declare templateTarget\n declare nestedFormControllerTarget\n declare itemTargets\n declare submitButtonTarget: HTMLButtonElement\n declare invalidDataWarningTarget: HTMLElement\n declare dateTarget: HTMLInputElement\n declare dateInFutureWarningTarget: HTMLElement\n declare dateInPastWarningTarget: HTMLElement\n declare reconciledAccountTouchedWarningTarget: HTMLElement\n declare confirmModalTarget: HTMLElement\n declare confirmModalHeaderTarget: HTMLElement\n declare confirmModalBodyTarget: HTMLElement\n _totalAmountController: TotalAmountController\n\n connect() {\n // We need a reference to the total amount controller in order to\n // trigger an update of the total when an item is removed.\n this._totalAmountController = this.application.getControllerForElementAndIdentifier(\n this.element,\n 'total-amount',\n ) as TotalAmountController\n\n if (this._totalAmountController === null) {\n console.error(\n 'You need to add the total-amount controller before ' +\n 'opening-balance to make it work correctly. The ' +\n 'offending element is %o',\n this.element,\n )\n return\n }\n\n // The event handler is triggered when editing _any_ item. If after making\n // the change the user doesn't have a blank item available then the\n // handler will add another one.\n $(this.element).on('keyup', 'select, input', this._handleChange.bind(this))\n document.addEventListener('account_selector:select', (event) => {\n this._handleChange(event)\n })\n\n nextFrame(() => {\n this._addNewItem()\n })\n\n this._updateSubmitButtonAvailability()\n }\n\n handleItemDeleteClick(event) {\n this._totalAmountController.update()\n this._updateItemNumbers()\n this._updateSubmitButtonAvailability()\n this._handleReconciledAccountsChanges()\n\n event.preventDefault()\n return false\n }\n\n handleSubmit(event) {\n if (Object.keys((window as any).openingBalance.reconciledAccounts).length !== 0) {\n const newDate = parseISO(this.dateTarget.value)\n const originDate = parseISO(this.dateTarget.dataset.value)\n let showModal = false\n let modalHeaderText = ''\n let modalBodyText = ''\n if (isSameMonth(newDate, originDate)) {\n if (this._isReconciledAccountsChanged()) {\n modalHeaderText = i18n.t('opening_balance.confirm_modal_header.bank_account_changed')\n modalBodyText = i18n.t('opening_balance.reconciled_account_changed')\n showModal = true\n }\n } else if (isAfter(newDate, endOfMonth(originDate))) {\n modalHeaderText = i18n.t('opening_balance.confirm_modal_header.date_changed')\n modalBodyText = i18n.t('opening_balance.future_date_warning')\n showModal = true\n } else {\n modalHeaderText = i18n.t('opening_balance.confirm_modal_header.date_changed')\n modalBodyText = i18n.t('opening_balance.past_date_warning')\n showModal = true\n }\n if (showModal) {\n this.confirmModalHeaderTarget.innerHTML = modalHeaderText\n this.confirmModalBodyTarget.innerHTML = modalBodyText\n Modal.getOrCreateInstance(this.confirmModalTarget).show()\n event.preventDefault()\n }\n }\n }\n\n _handleChange(event) {\n const $itemTarget = $(event.target).parents(\"[data-opening-balance-target='item']\")\n $itemTarget.find('a').removeClass('disabled')\n this._ensureLastItemIsEmpty()\n this._updateValidity()\n if (event.target.tagName === 'SELECT') {\n this._validateCode(event.target, event.code)\n }\n this._updateItemNumbers()\n this._updateSubmitButtonAvailability()\n this._handleReconciledAccountsChanges()\n }\n\n _ensureLastItemIsEmpty() {\n if (this.itemTargets.length === 0 || !this._isLastItemEmpty()) {\n this._addNewItem()\n }\n }\n\n toggleDateWarning() {\n const reconciledAccounts = (window as any).openingBalance.reconciledAccounts\n if (Object.keys(reconciledAccounts).length === 0) {\n return\n }\n const newDate = parseISO(this.dateTarget.value)\n const originDate = parseISO(this.dateTarget.dataset.value)\n if (isSameMonth(newDate, originDate)) {\n this.dateInFutureWarningTarget.classList.add('d-none')\n this.dateInPastWarningTarget.classList.add('d-none')\n } else if (isAfter(newDate, endOfMonth(originDate))) {\n this.dateInPastWarningTarget.classList.add('d-none')\n this.dateInFutureWarningTarget.classList.remove('d-none')\n } else {\n this.dateInFutureWarningTarget.classList.add('d-none')\n this.dateInPastWarningTarget.classList.remove('d-none')\n }\n }\n\n _handleReconciledAccountsChanges() {\n if (this._isReconciledAccountsChanged()) {\n this.reconciledAccountTouchedWarningTarget.classList.remove('d-none')\n } else {\n this.reconciledAccountTouchedWarningTarget.classList.add('d-none')\n }\n }\n\n _isReconciledAccountsChanged() {\n const items = this.itemTargets as Array\n let changedAccountsNumber = 0 as number\n ;(window as any).openingBalance.reconciledAccounts.forEach(function (account) {\n if (changedAccountsNumber > 0) {\n return\n }\n let accountSum = 0\n // In this block we sum all amounts found for specific account\n items.forEach(function (item) {\n if (item.querySelector('select').value !== account.account_hashid) {\n return\n } else {\n accountSum += parseDecimal(item.querySelector('.item-amount').nodeValue)?.toNumber()\n }\n })\n if (accountSum !== account.amount_cents) {\n changedAccountsNumber += 1\n }\n })\n return changedAccountsNumber > 0\n }\n\n _updateValidity() {\n this.itemTargets.forEach((itemTarget, index) => {\n // We skip the last item as its only role is to allow the user to create\n // new elements.\n if (index === this.itemTargets.length - 1) {\n return\n }\n\n const [account, amount] = this._getAccountAndAmount(itemTarget)\n\n if (account === '') {\n itemTarget.querySelector('select').classList.add('is-invalid')\n } else {\n itemTarget.querySelector('select').classList.remove('is-invalid')\n }\n\n const amountElement = itemTarget.querySelector('input[type=\"text\"]')\n\n if (parseDecimal(amountElement.nodeValue)?.toNumber() === 0) {\n amountElement.classList.add('is-invalid')\n } else {\n amountElement.classList.remove('is-invalid')\n }\n })\n }\n\n _addNewItem() {\n const nestedFormController = this.application.getControllerForElementAndIdentifier(\n this.nestedFormControllerTarget,\n 'nested-form',\n ) as NestedFormController\n nestedFormController.add(document.createEvent('Event'))\n }\n\n _updateSubmitButtonAvailability() {\n if (this._canSubmit()) {\n $(this.submitButtonTarget).removeAttr('disabled')\n $(this.invalidDataWarningTarget).addClass('d-none')\n } else {\n $(this.submitButtonTarget).attr('disabled', '')\n $(this.invalidDataWarningTarget).removeClass('d-none')\n }\n }\n\n _canSubmit() {\n return (\n this._hasAtLeastOneCompleteItem() &&\n this._hasOnlyCompleteAndEmptyItems() &&\n this._hasNoInvalidFields() &&\n this._totalAmountController.total === 0\n )\n }\n\n _hasAtLeastOneCompleteItem() {\n const $otherItems = $(this.itemTargets).filter((_index, element) => this._isItemComplete(element))\n return $otherItems.length > 0\n }\n\n _hasOnlyCompleteAndEmptyItems() {\n const $otherItems = $(this.itemTargets).filter(\n (_index, element) => !this._isItemComplete(element) && !this._isItemEmpty(element),\n )\n return $otherItems.length === 0\n }\n\n // This method updates the indicies in the form input from 0 to the correct index\n // Example for the second item (index 1)\n // opening_balance_form_object_base[items_attributes][0][hashid]\n // will be changed to\n // opening_balance_controller.ts:185 opening_balance_form_object_base[items_attributes][1][hashid]\n _updateItemNumbers() {\n $(this.itemTargets).each(function (index, target) {\n $('[name]', target).attr('name', (_index, value) => value.replace(/\\d+/, index.toString()))\n })\n }\n\n // Precondition:\n // - itemTargets is not empty.\n _isLastItemEmpty() {\n return this._isItemEmpty(this.itemTargets[this.itemTargets.length - 1])\n }\n\n _isItemComplete(itemTarget): boolean {\n const [account, amount] = this._getAccountAndAmount(itemTarget)\n return account !== '' && amount !== ''\n }\n\n _isItemEmpty(itemTarget): boolean {\n const [account, amount] = this._getAccountAndAmount(itemTarget)\n return account === '' && amount === ''\n }\n\n _getAccountAndAmount(itemTarget): Array {\n const $itemTarget = $(itemTarget)\n const $select = $itemTarget.find('select')\n const $amount = $itemTarget.find('input.item-amount')\n return [$select.val(), $amount.val()]\n }\n\n _validateCode(element, code): void {\n let $elem = $(element)\n let $container = $elem.parent()\n $elem.removeClass('is-invalid')\n $container.removeClass('is-invalid')\n $container.siblings('.invalid-feedback').remove()\n if (this._isSystemAccount(code)) {\n $elem.addClass('is-invalid')\n $container.addClass('is-invalid')\n $container.after(`${i18n.t('accounting.errors.system_account')}`)\n }\n }\n\n _isSystemAccount(code): boolean {\n return parseInt(code) >= 2700 && parseInt(code) < 2740\n }\n\n _hasNoInvalidFields(): boolean {\n return $('.is-invalid').length === 0\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport Rails from '@rails/ujs'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static values = { submitButtonId: String, parentModalId: String }\n\n declare submitButtonIdValue: string\n declare parentModalIdValue: string\n\n static targets = ['modal', 'form']\n\n declare modalTarget: HTMLElement\n declare formTarget: HTMLFormElement\n\n initialize() {\n $('#' + this.submitButtonIdValue).on('click', () => {\n Rails.fire(this.formTarget, 'submit')\n })\n }\n\n handleSubmitAvailability(event) {\n $('#' + this.submitButtonIdValue).prop('disabled', !event.canSubmit)\n }\n\n handleFormSuccess() {\n if (!this.parentModalIdValue) {\n document.location.reload()\n }\n }\n\n handleFormError(event) {\n if (this.parentModalIdValue) {\n Modal.getOrCreateInstance(document.getElementById(this.parentModalIdValue)).hide()\n Modal.getOrCreateInstance(this.modalTarget.children[0]).show()\n }\n }\n}\n","import $ from '../libraries/jquery'\n\nexport default class CompanyLookup {\n validate_organisation_number(organisation_number, warningTarget) {\n $.ajax({\n type: 'GET',\n url: '/company_lookups/show.json',\n data: { organisation_number: organisation_number },\n dataType: 'json',\n success: function (result) {\n if (result.received_response === true) {\n warningTarget.style.display = 'none'\n } else {\n warningTarget.style.display = 'block'\n }\n },\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport CompanyLookup from '../../classes/company_lookup'\nimport $ from 'jquery'\nimport JsFormError from '../../standalone/components/JsFormError'\nimport { nextFrame } from '../../rendering'\n\nconst NORWEGIAN_ORGANISATION_NUMBER_REGEXP = /^\\d{9}$/\n\nexport default class FormController extends Controller {\n static targets = [\n 'name',\n 'organisationNumber',\n 'addressStreet',\n 'addressZip',\n 'addressCity',\n 'phoneNumber',\n 'email',\n 'countryNumber',\n 'customer',\n 'organisationNumberWarning',\n 'isPrivate',\n 'submit',\n ]\n\n declare nameTarget: HTMLInputElement\n declare addressStreetTarget: HTMLInputElement\n declare addressZipTarget: HTMLInputElement\n declare addressCityTarget: HTMLInputElement\n declare phoneNumberTarget: HTMLInputElement\n declare emailTarget: HTMLInputElement\n declare countryNumberTarget: HTMLSelectElement\n declare customerTarget: HTMLInputElement\n declare hasOrganisationNumberTarget: boolean\n declare organisationNumberTarget: HTMLInputElement\n declare organisationNumberWarningTarget: HTMLElement\n declare hasOrganisationNumberWarningTarget: boolean\n declare isPrivateTarget: HTMLInputElement\n declare hasSubmitTarget: boolean\n declare submitTarget: HTMLButtonElement\n\n form: HTMLFormElement\n companyLookup: CompanyLookup\n defaultCountryNumber: string\n submitDisallowed: boolean\n\n connect() {\n this.organisationNumberWarningTarget.style.display = 'none'\n\n // If the submit is disabled server side, we should never make it enabled\n this.submitDisallowed = this.hasSubmitTarget ? this.submitTarget.disabled : false\n\n // We first need to let Stimulus mount ALL controllers. If we don't use\n // nextFrame then partner-search won't be mounted at the time fo the first\n // rendering.\n nextFrame(() => this.handleCorporationChange())\n\n this.form = this.nameTarget.form\n this.defaultCountryNumber = this.countryNumberTarget.value\n\n this._handleAjaxError = this._handleAjaxError.bind(this)\n this._handleAjaxSuccess = this._handleAjaxSuccess.bind(this)\n\n this.form.addEventListener('ajax:error', this._handleAjaxError)\n this.form.addEventListener('ajax:success', this._handleAjaxSuccess)\n this.updateSubmitAvailability()\n\n $(this.countryNumberTarget).on('select2:select', () => {\n this.handleOrganisationNumberChange()\n this.handleFormChange()\n this.updateSubmitAvailability()\n })\n }\n\n _handleAjaxError(event) {\n const data = event.detail[0]\n new JsFormError(data.model_name, data).updateForm()\n this._dispatch('partner--form:error', { partner: data })\n }\n\n _handleAjaxSuccess(event) {\n const data = event.detail[0]\n this._dispatch('partner--form:create', { partner: data })\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n\n switchPrivate(value) {\n this.isPrivateTarget.value = value\n\n if (value) {\n this.organisationNumberTarget.parentElement.classList.add('d-none')\n } else {\n this.organisationNumberTarget.parentElement.classList.remove('d-none')\n }\n }\n\n handleOrganisationNumberChange() {\n this.organisationNumberWarningTarget.style.display = 'none'\n\n if (\n this.hasOrganisationNumberTarget &&\n this.countryNumberTarget.value === '578' &&\n this.hasOrganisationNumberWarningTarget &&\n this.organisationNumberTarget.value.length >= 9\n ) {\n this.companyLookup = new CompanyLookup()\n this.companyLookup.validate_organisation_number(\n this.organisationNumberTarget.value,\n this.organisationNumberWarningTarget,\n )\n }\n }\n\n setPartnerName(name) {\n $(this.nameTarget).val(name)\n this.handleFormChange()\n }\n\n resetForm() {\n $(this.nameTarget).val('')\n $(this.addressStreetTarget).val('')\n $(this.addressZipTarget).val('')\n $(this.addressCityTarget).val('')\n $(this.organisationNumberTarget).val('')\n $(this.phoneNumberTarget).val('')\n $(this.emailTarget).val('')\n\n $(this.countryNumberTarget).val(this.defaultCountryNumber)\n $(this.countryNumberTarget).trigger('change')\n\n JsFormError.removePreviousErrors()\n this.updateSubmitAvailability()\n }\n\n handleFormChange() {\n let partner = {\n name: this.nameTarget.value,\n address_street: this.addressStreetTarget.value,\n address_zip: this.addressZipTarget.value,\n address_city: this.addressCityTarget.value,\n organisation_number: this.organisationNumberTarget.value,\n phone_number: this.phoneNumberTarget.value,\n email: this.emailTarget.value,\n }\n\n this._dispatch('partner--form:change', { partner: partner })\n }\n\n handlePartnerChange(event) {\n const partner = event.partner\n\n $(this.nameTarget).val(partner.name)\n $(this.phoneNumberTarget).val(partner.phone_number)\n $(this.emailTarget).val(partner.email)\n $(this.addressStreetTarget).val(partner.address_street)\n $(this.addressZipTarget).val(partner.address_zip)\n $(this.addressCityTarget).val(partner.address_city)\n $(this.organisationNumberTarget).val(partner.organisation_number)\n\n this.updateSubmitAvailability()\n }\n\n updateSubmitAvailability() {\n let canSubmit = (name, organisationNumber, countryNumber, privatePartner) => {\n return (\n name &&\n $('.partner-exists').length === 0 &&\n (privatePartner ||\n organisationNumber === '' ||\n this.isNorwegianOrganisationNumber(organisationNumber) ||\n // 578 is a number of Norway\n countryNumber !== '578')\n )\n }\n\n let isSubmitAvailable = canSubmit(\n this.nameTarget.value,\n this.organisationNumberTarget.value,\n this.countryNumberTarget.value,\n this.privatePartner,\n )\n\n if (this.hasSubmitTarget) {\n this.submitTarget.disabled = !isSubmitAvailable || this.submitDisallowed\n }\n\n this._dispatch('partner--form:submitAvailabilityChange', {\n canSubmit: isSubmitAvailable,\n })\n }\n\n handleCorporationChange() {\n // The hint under the phone number is shown to private partners.\n const $privateElements = $(this.phoneNumberTarget).next('div.form-text')\n\n const $corporationElements = $([this.organisationNumberTarget]).closest('div')\n\n if (this.privatePartner) {\n $privateElements.show()\n $corporationElements.hide()\n } else {\n $privateElements.hide()\n $corporationElements.show()\n }\n\n this.updateSubmitAvailability()\n }\n\n isNorwegianOrganisationNumber(string) {\n return NORWEGIAN_ORGANISATION_NUMBER_REGEXP.exec(string.replace(/\\s/g, '')) !== null\n }\n\n get privatePartner() {\n return this.isPrivateTarget.checked\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static targets = ['submit', 'modal']\n\n declare submitTarget: HTMLButtonElement\n declare modalTarget: HTMLElement\n\n connect() {\n // track the opening and closing of the window to change the icon\n this.modalTarget.addEventListener('shown.bs.modal', () => {\n this._dispatch('partner--manual-modal:change', { modal: 'shown' })\n })\n this.modalTarget.addEventListener('hidden.bs.modal', () => {\n this._dispatch('partner--manual-modal:change', { modal: 'hidden' })\n })\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n\n handleSuccessSubmit(event) {\n Modal.getOrCreateInstance(this.modalTarget.children[0]).hide()\n }\n\n handleSubmitAvailability(event) {\n this.submitTarget.disabled = !event.canSubmit\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Modal } from 'bootstrap'\nimport Rails from '@rails/ujs'\nimport { BulkActionParams } from '../bulk_action_table_controller'\nimport { getModelHashIds } from '../../util/get_model_hash_ids'\n\nexport default class extends Controller {\n static targets = ['modal', 'submitButton', 'form']\n\n declare modalTarget: HTMLElement\n declare submitButtonTarget: HTMLButtonElement\n declare formTarget: HTMLFormElement\n\n hashIds: Array = []\n checkedRows: Array = []\n\n showMergeModal(params: BulkActionParams) {\n this.updateHashids(params.checkedRows)\n Modal.getOrCreateInstance(this.modalTarget).show()\n }\n\n submit() {\n this.updateFormWithCheckedPartners()\n\n Rails.fire(this.formTarget, 'submit')\n }\n\n updateFormWithCheckedPartners() {\n this.formTarget.querySelectorAll('input[name=\"partners[partners_to_be_merged][]\"]').forEach((input) => {\n input.remove()\n })\n\n this.hashIds.forEach((hashId) => {\n const input = document.createElement('input')\n input.setAttribute('type', 'hidden')\n input.setAttribute('name', 'partners[partners_to_be_merged][]')\n input.setAttribute('value', hashId)\n this.formTarget.appendChild(input)\n })\n }\n\n updateHashids(checkedRows: Array) {\n this.checkedRows = checkedRows\n this.hashIds = getModelHashIds(checkedRows)\n }\n\n enableSubmitButton() {\n this.submitButtonTarget.disabled = false\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport PartnerFormController from './form_controller'\nimport { Modal } from 'bootstrap'\nimport PartnerSearchController from './search_controller'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static values = {\n reloadAfterSubmit: Boolean,\n modalOpenButtonId: String,\n parentModalId: String,\n type: { type: String, default: 'customer' },\n }\n\n declare hasReloadAfterSubmitValue: boolean\n declare reloadAfterSubmitValue: boolean\n declare hasModalOpenButtonIdValue: boolean\n declare modalOpenButtonIdValue: string\n declare parentModalIdValue: string\n declare typeValue: String\n\n static targets = [\n 'name',\n 'organisationNumber',\n 'addressStreet',\n 'addressZip',\n 'addressCity',\n 'phoneNumber',\n 'email',\n 'formController',\n 'modal',\n 'hint',\n 'radioButton',\n 'name',\n 'nameBlock',\n 'searchInput',\n 'searchCompanyField',\n 'searchPersonField',\n 'partnerSearchController',\n 'warning',\n 'manualModalOpenButton',\n 'manualModalCancelButton',\n 'searchModalCancelButton',\n ]\n\n declare searchInputTarget: HTMLInputElement\n declare organisationNumberTarget: HTMLElement\n declare hasOrganisationNumberTarget: Boolean\n declare nameTarget: HTMLElement\n declare hasNameTarget: Boolean\n declare addressStreetTarget: HTMLElement\n declare addressZipTarget: HTMLElement\n declare addressCityTarget: HTMLElement\n declare phoneNumberTarget: HTMLElement\n declare emailTarget: HTMLElement\n declare formControllerTargets: HTMLElement[]\n declare modalTarget: HTMLElement\n declare hintTargets: HTMLElement[]\n declare radioButtonTargets: HTMLElement[]\n declare nameBlockTarget: HTMLElement\n declare searchCompanyFieldTarget: HTMLElement\n declare searchPersonFieldTarget: HTMLElement\n declare warningTargets: HTMLElement[]\n declare manualModalOpenButtonTarget: HTMLButtonElement\n declare manualModalCancelButtonTarget: HTMLButtonElement\n declare searchModalCancelButtonTarget: HTMLButtonElement\n declare hasSearchModalCancelButtonTarget: boolean\n declare hasManualModalOpenButtonTarget: boolean\n declare hasManualModalCancelButtonTarget: boolean\n\n isPrivate: boolean\n timeout: NodeJS.Timeout\n\n initialize() {\n this.resetModal()\n\n super.initialize()\n }\n\n connect() {\n this.switchPrivate({ isPrivate: false })\n\n this.element.addEventListener('shown.bs.modal', () => {\n this._dispatch('partner--new-partner:open')\n\n if (this.isCustomer()) {\n this.element.addEventListener('shown.bs.modal', () => {\n this.handleIsPrivateChange(false)\n })\n\n if (this.hasModalOpenButtonIdValue) {\n document.getElementById(this.modalOpenButtonIdValue).addEventListener('click', () => {\n this.resetModal()\n })\n }\n\n if (this.hasSearchModalCancelButtonTarget && this.hasManualModalCancelButtonTarget) {\n Array(this.manualModalCancelButtonTarget, this.searchModalCancelButtonTarget).forEach(\n (button) => {\n button.addEventListener('click', () => {\n this.resetModal()\n })\n },\n )\n }\n\n if (this.hasManualModalOpenButtonTarget) {\n Array(this.manualModalOpenButtonTarget).forEach((button) => {\n button.addEventListener('click', () => {\n this.resetForm()\n })\n })\n }\n }\n })\n }\n\n handleIsPrivateChange(updateModal = true) {\n this.radioButtonTargets.forEach((radioButton) => {\n let input = radioButton.getElementsByTagName('input')[0]\n let label = radioButton.getElementsByTagName('label')[0]\n\n if (input.checked) {\n if (updateModal) {\n $(label).addClass('selected')\n $(this.nameBlockTarget).addClass('d-none')\n $(this.searchCompanyFieldTarget).removeClass('d-none')\n $(this.searchPersonFieldTarget).addClass('d-none')\n }\n\n this.switchToSearchingCorporations()\n } else {\n if (updateModal) {\n $(label).removeClass('selected')\n $(this.nameBlockTarget).removeClass('d-none')\n $(this.searchCompanyFieldTarget).addClass('d-none')\n $(this.searchPersonFieldTarget).removeClass('d-none')\n }\n\n this.switchToSearchingPrivate()\n }\n })\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n\n handleSuccessSubmit(event) {\n Modal.getOrCreateInstance(this.modalTarget.children[0]).hide()\n\n if (this.parentModalIdValue != '') {\n Modal.getOrCreateInstance(document.getElementById(this.parentModalIdValue)).show()\n }\n\n if (this.hasReloadAfterSubmitValue && this.reloadAfterSubmitValue) {\n document.location.reload()\n } else {\n this.resetModal()\n }\n }\n\n resetModal() {\n this.removeDuplicateWarnings()\n\n this.formControllerTargets.forEach((form) => {\n const partnerFormController = this.application.getControllerForElementAndIdentifier(\n form,\n 'partner--form',\n ) as PartnerFormController\n if (partnerFormController) {\n partnerFormController.resetForm()\n }\n })\n\n $(this.searchInputTarget).val('')\n\n this.element.querySelector('#prefilled-block').classList.add('d-none')\n this.element.querySelector('#manual-modal').classList.remove('d-none')\n\n if (this.isCustomer()) {\n this.resetCustomerModal()\n }\n }\n\n switchPrivate(value) {\n this.formControllerTargets.forEach((form) => {\n const partnerFormController = this.application.getControllerForElementAndIdentifier(\n form,\n 'partner--form',\n ) as PartnerFormController\n if (partnerFormController) {\n partnerFormController.switchPrivate(value.isPrivate)\n }\n })\n\n this.hintTargets.forEach(\n (hint) =>\n (hint.innerHTML = value.isPrivate\n ? i18n.t('partner.customer.manual_entry')\n : i18n.t('simple_form.hints.partner.manual_entry')),\n )\n }\n\n updatePrefilledBlock(partner) {\n $(this.searchInputTarget).val(partner.name)\n $(this.addressStreetTarget).text(partner.address_street)\n $(this.addressZipTarget).text(partner.address_zip)\n $(this.addressCityTarget).text(partner.address_city)\n if (this.hasOrganisationNumberTarget) {\n $(this.organisationNumberTarget).text(partner.organisation_number)\n } else if (this.hasNameTarget) {\n $(this.nameTarget).text(partner.name)\n }\n $(this.phoneNumberTarget).text(partner.phone_number || '-')\n $(this.emailTarget).text(partner.email || '-')\n }\n\n handlePartnerEditing(event) {\n let partner = event.partner\n this.updatePrefilledBlock(partner)\n }\n\n handleSearchFieldChange() {\n if (this.searchInputTarget.value.length === 0 && !this.isCustomer()) {\n this.resetModal()\n }\n }\n\n isCustomer() {\n return this.typeValue === 'customer'\n }\n\n handlePartnerChange(event) {\n const partner = event.partner\n\n this.updatePrefilledBlock(partner)\n\n this.element.querySelector('#prefilled-block').classList.remove('d-none')\n this.element.querySelector('#manual-modal').classList.add('d-none')\n\n this.formControllerTargets.forEach((form) => {\n const partnerFormController = this.application.getControllerForElementAndIdentifier(\n form,\n 'partner--form',\n ) as PartnerFormController\n partnerFormController.handlePartnerChange(event)\n })\n\n if (this.isCustomer()) {\n $(this.nameBlockTarget).addClass('d-none')\n $(this.searchPersonFieldTarget).addClass('d-none')\n $(this.searchCompanyFieldTarget).addClass('d-none')\n $(this.radioButtonTargets[0] as HTMLElement)\n .parent()\n .addClass('d-none')\n }\n }\n\n handlePartnerNameChange(event) {\n this.formControllerTargets.forEach((form) => {\n const partnerFormController = this.application.getControllerForElementAndIdentifier(\n form,\n 'partner--form',\n ) as PartnerFormController\n\n let partner = null\n if (this.isCustomer()) {\n partner = { partner: { name: this.nameBlockTarget.querySelector('input').value } }\n }\n partnerFormController.handlePartnerChange(partner || event)\n })\n }\n\n resetCustomerModal() {\n this.removeDuplicateWarnings()\n\n this.nameBlockTarget.querySelector('input').value = ''\n\n let radioButton1 = this.radioButtonTargets[0]\n let radioButton2 = this.radioButtonTargets[1]\n $(radioButton1.getElementsByTagName('label')[0]).addClass('selected')\n $(radioButton2.getElementsByTagName('label')[0]).removeClass('selected')\n radioButton1.getElementsByTagName('input')[0].checked = true\n this.switchToSearchingPrivate()\n\n $(this.radioButtonTargets[0] as HTMLElement)\n .parent()\n .removeClass('d-none')\n $(this.nameBlockTarget).removeClass('d-none')\n $(this.searchCompanyFieldTarget).addClass('d-none')\n $(this.searchPersonFieldTarget).removeClass('d-none')\n }\n\n resetForm() {\n this.removeDuplicateWarnings()\n\n this.formControllerTargets.forEach((form) => {\n const partnerFormController = this.application.getControllerForElementAndIdentifier(\n form,\n 'partner--form',\n ) as PartnerFormController\n if (partnerFormController) {\n partnerFormController.resetForm()\n partnerFormController.setPartnerName(this.nameBlockTarget.querySelector('input').value)\n }\n })\n }\n\n switchToSearchingCorporations() {\n this.isPrivate = false\n\n const partnerSearchController = this.application.getControllerForElementAndIdentifier(\n this.searchInputTarget,\n 'partner--search',\n ) as PartnerSearchController\n if (partnerSearchController) {\n partnerSearchController.switchToSearchingCorporations()\n }\n\n this.switchPrivate({ isPrivate: false })\n }\n\n switchToSearchingPrivate() {\n this.isPrivate = true\n\n const partnerSearchController = this.application.getControllerForElementAndIdentifier(\n this.searchInputTarget,\n 'partner--search',\n ) as PartnerSearchController\n if (partnerSearchController) {\n partnerSearchController.switchToSearchingPrivate()\n }\n\n this.switchPrivate({ isPrivate: true })\n }\n\n removeDuplicateWarnings() {\n this.warningTargets.forEach((target) => target.classList.add('d-none'))\n }\n\n checkSimilar(event) {\n let name = event.target.value\n this.removeDuplicateWarnings()\n\n if (name === '') {\n return\n }\n\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n $.ajax({\n type: 'GET',\n url: `/${(window as any).current_company_id}/partners/search.json`,\n data: { term: name, type: this.typeValue, similar: true },\n dataType: 'json',\n success: (result) => {\n if (result && result.length !== 0) {\n let names = result.map((e) => e.name).join(', ')\n this.warningTargets.forEach((target) => {\n console.log(this.typeValue)\n target.innerHTML = i18n.t(`${this.typeValue}.similar`, { names: names })\n target.classList.remove('d-none')\n })\n }\n },\n })\n }, 250)\n }\n}\n","/*\n This is a slightly modified version of\n JavaScript autoComplete v1.0.4\n Copyright (c) 2014 Simon Steinberger / Pixabay\n GitHub: https://github.com/Pixabay/JavaScript-autoComplete\n License: http://www.opensource.org/licenses/mit-license.php\n*/\nlet autoComplete = (function () {\n // \"use strict\";\n function autoComplete(options) {\n if (!document.querySelector) return\n\n // helpers\n function hasClass(el, className) {\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className)\n }\n\n function addEvent(el, type, handler) {\n if (el.attachEvent) el.attachEvent('on' + type, handler)\n else el.addEventListener(type, handler)\n }\n\n function removeEvent(el, type, handler) {\n // if (el.removeEventListener) not working in IE11\n if (el.detachEvent) el.detachEvent('on' + type, handler)\n else el.removeEventListener(type, handler)\n }\n\n function live(elClass, event, cb, context) {\n addEvent(context || document, event, function (e) {\n let found,\n el = e.target || e.srcElement\n while (el && !(found = hasClass(el, elClass))) el = el.parentElement\n if (found) cb.call(el, e)\n })\n }\n\n let o = {\n selector: 0,\n source: 0,\n minChars: 3,\n delay: 150,\n offsetLeft: 0,\n offsetTop: 1,\n cache: 1,\n menuClass: '',\n renderItem: function (item, search) {\n // escape special characters\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n let re = new RegExp('(' + search.split(' ').join('|') + ')', 'gi')\n return (\n '' + item.replace(re, '$1') + ''\n )\n },\n onSelect: function (e, term, item) {},\n }\n for (let k in options) {\n if (options.hasOwnProperty(k)) o[k] = options[k]\n }\n\n // init\n let elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector)\n for (let i = 0; i < elems.length; i++) {\n let that = elems[i]\n\n // create suggestions container \"sc\"\n that.sc = document.createElement('div')\n that.sc.className = 'autocomplete-suggestions ' + o.menuClass\n\n that.autocompleteAttr = that.getAttribute('autocomplete')\n that.setAttribute('autocomplete', 'off')\n that.cache = {}\n that.last_val = ''\n\n that.updateSC = function (resize, next) {\n let rect = that.getBoundingClientRect()\n that.sc.style.left =\n Math.round(rect.left + (window.pageXOffset || document.documentElement.scrollLeft) + o.offsetLeft) + 'px'\n that.sc.style.top =\n Math.round(rect.bottom + (window.pageYOffset || document.documentElement.scrollTop) + o.offsetTop) + 'px'\n that.sc.style.width = Math.round(rect.right - rect.left) + 'px' // outerWidth\n if (!resize) {\n that.sc.style.display = 'block'\n if (!that.sc.maxHeight) {\n that.sc.maxHeight = parseInt(\n (window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight,\n )\n }\n if (!that.sc.suggestionHeight)\n that.sc.suggestionHeight = that.sc.querySelector('.autocomplete-suggestion').offsetHeight\n if (that.sc.suggestionHeight)\n if (!next) that.sc.scrollTop = 0\n else {\n let scrTop = that.sc.scrollTop,\n selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top\n if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)\n that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight\n else if (selTop < 0) that.sc.scrollTop = selTop + scrTop\n }\n }\n }\n addEvent(window, 'resize', that.updateSC)\n document.body.appendChild(that.sc)\n\n live(\n 'autocomplete-suggestion',\n 'mouseleave',\n function (e) {\n let sel = that.sc.querySelector('.autocomplete-suggestion.selected')\n if (sel)\n setTimeout(function () {\n sel.className = sel.className.replace('selected', '')\n }, 20)\n },\n that.sc,\n )\n\n live(\n 'autocomplete-suggestion',\n 'mouseover',\n function (e) {\n let sel = that.sc.querySelector('.autocomplete-suggestion.selected')\n if (sel) sel.className = sel.className.replace('selected', '')\n this.className += ' selected'\n },\n that.sc,\n )\n\n live(\n 'autocomplete-suggestion',\n 'mousedown',\n function (e) {\n if (hasClass(this, 'autocomplete-suggestion')) {\n // else outside click\n let v = this.getAttribute('data-val')\n that.value = v\n o.onSelect(e, v, this)\n that.sc.style.display = 'none'\n }\n },\n that.sc,\n )\n\n that.blurHandler = function () {\n let over_sb\n try {\n over_sb = document.querySelector('.autocomplete-suggestions:hover')\n } catch (e) {\n over_sb = 0\n }\n if (!over_sb) {\n that.last_val = that.value\n that.sc.style.display = 'none'\n setTimeout(function () {\n that.sc.style.display = 'none'\n }, 350) // hide suggestions on fast input\n } else if (that !== document.activeElement)\n setTimeout(function () {\n that.focus()\n }, 20)\n }\n addEvent(that, 'blur', that.blurHandler)\n\n let suggest = function (data) {\n let val = that.value\n that.cache[val] = data\n if (data.length && val.length >= o.minChars) {\n let s = ''\n for (let i = 0; i < data.length; i++) s += o.renderItem(data[i], val)\n that.sc.innerHTML = s\n that.updateSC(0)\n } else that.sc.style.display = 'none'\n }\n\n that.keydownHandler = function (e) {\n let key = window.event ? e.keyCode : e.which\n // down (40), up (38)\n if ((key == 40 || key == 38) && that.sc.innerHTML) {\n let next,\n sel = that.sc.querySelector('.autocomplete-suggestion.selected')\n if (!sel) {\n next =\n key == 40\n ? that.sc.querySelector('.autocomplete-suggestion')\n : that.sc.childNodes[that.sc.childNodes.length - 1] // first : last\n next.className += ' selected'\n that.value = next.getAttribute('data-val')\n } else {\n next = key == 40 ? sel.nextSibling : sel.previousSibling\n if (next) {\n sel.className = sel.className.replace('selected', '')\n next.className += ' selected'\n that.value = next.getAttribute('data-val')\n } else {\n sel.className = sel.className.replace('selected', '')\n that.value = that.last_val\n next = 0\n }\n }\n that.updateSC(0, next)\n return false\n }\n // esc\n else if (key == 27) {\n that.value = that.last_val\n that.sc.style.display = 'none'\n }\n // enter\n else if (key == 13 || key == 9) {\n let sel = that.sc.querySelector('.autocomplete-suggestion.selected')\n if (sel && that.sc.style.display != 'none') {\n o.onSelect(e, sel.getAttribute('data-json'), sel)\n setTimeout(function () {\n that.sc.style.display = 'none'\n }, 20)\n }\n }\n }\n addEvent(that, 'keydown', that.keydownHandler)\n\n that.keyupHandler = function (e) {\n let key = window.event ? e.keyCode : e.which\n if (!key || ((key < 35 || key > 40) && key != 13 && key != 27)) {\n let val = that.value\n if (val.length >= o.minChars) {\n if (val != that.last_val) {\n that.last_val = val\n clearTimeout(that.timer)\n if (o.cache) {\n if (val in that.cache) {\n suggest(that.cache[val])\n return\n }\n }\n that.timer = setTimeout(function () {\n o.source(val, suggest)\n }, o.delay)\n }\n } else {\n that.last_val = val\n that.sc.style.display = 'none'\n }\n }\n }\n addEvent(that, 'keyup', that.keyupHandler)\n\n that.focusHandler = function (e) {\n that.last_val = '\\n'\n that.keyupHandler(e)\n }\n if (!o.minChars) addEvent(that, 'focus', that.focusHandler)\n }\n\n // public destroy method\n this.destroy = function () {\n for (let i = 0; i < elems.length; i++) {\n let that = elems[i]\n removeEvent(window, 'resize', that.updateSC)\n removeEvent(that, 'blur', that.blurHandler)\n removeEvent(that, 'focus', that.focusHandler)\n removeEvent(that, 'keydown', that.keydownHandler)\n removeEvent(that, 'keyup', that.keyupHandler)\n if (that.autocompleteAttr) that.setAttribute('autocomplete', that.autocompleteAttr)\n else that.removeAttribute('autocomplete')\n document.body.removeChild(that.sc)\n that = null\n }\n }\n }\n\n return autoComplete\n})()\n\nexport default autoComplete\n","import { Controller } from '@hotwired/stimulus'\nimport autoComplete from '../../standalone/components/AutoComplete'\nimport { i18n } from '../../libraries/i18n'\n// IMPORTANT: You MUST define data-partner-type on the controlled element. Its\n// value is passed as the value of the type query parameter to the search\n// endpoint.\nexport default class extends Controller {\n static targets = ['searchInput']\n\n declare searchInputTarget: HTMLInputElement\n\n searchCorporation: boolean\n\n connect() {\n const partnerType = this.searchInputTarget.getAttribute('data-partner-type')\n if (!partnerType) {\n console.error('You must define data-partner-type on the controller element')\n return\n }\n this.searchCorporation = false\n this.autoCompleteSearch(this, partnerType)\n this.updatePlaceholderText()\n }\n\n autoCompleteSearch(self, partnerType) {\n let xhr\n new autoComplete({\n selector: `input[id=\"${this.searchInputTarget.id}\"]`,\n minChars: 1,\n delay: 250,\n offsetTop: 10,\n source: function (term, response) {\n // Abort if the last call did not finish before new call\n try {\n xhr.abort()\n } catch (e) {}\n xhr = $.getJSON(\n `/${(window as any).current_company_id}/partners/search.json`,\n { term: term, type: partnerType, corporation: self.searchCorporation },\n function (data) {\n response(data)\n },\n )\n },\n renderItem: function (item, search) {\n // escape special characters\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n let re = new RegExp('(' + search.split(' ').join('|') + ')', 'gi')\n let encodedPartner = encodeURIComponent(JSON.stringify(item))\n return `\n ${item.name.replace(re, '$1')}\n \n ${self.partnerIdentifier(item)} \n \n `\n },\n onSelect: function (e, term, item) {\n if (e.type === 'keydown') {\n e.preventDefault()\n }\n let selected = document.getElementsByClassName('autocomplete-suggestion selected')[0]\n let parsedJSON = JSON.parse(decodeURIComponent(selected.getAttribute('data-json')))\n self._dispatch('partner--search:change', { partner: parsedJSON })\n },\n })\n }\n\n partnerIdentifier(item) {\n if (this.isSearchingCorporations && item.organisation_number) {\n return `${i18n.t('company.organisation_number_abbreviation')}\n ${item.organisation_number}`\n } else if (!this.isSearchingCorporations && item.phone_number) {\n return `${i18n.t('partner.phone_number_abbreviation')}\n ${item.phone_number}`\n } else return ''\n }\n\n select(partner) {\n const option = new Option(partner.name, partner.id, true, true)\n $(this.element).append(option).trigger('change')\n }\n\n switchToSearchingCorporations() {\n this.searchCorporation = true\n this.updatePlaceholderText()\n }\n\n switchToSearchingPrivate() {\n this.searchCorporation = false\n this.updatePlaceholderText()\n }\n\n get isSearchingCorporations() {\n return this.searchCorporation\n }\n\n get isSelected() {\n return !!(this.element as HTMLInputElement).value\n }\n\n updatePlaceholderText() {\n let badge = this.searchInputTarget.nextSibling.firstChild as HTMLElement\n if (this.isSearchingCorporations) {\n this.searchInputTarget.placeholder = i18n.t('company.new_search_placeholder')\n badge.innerHTML = i18n.t('company.new_search_badge')\n } else {\n this.searchInputTarget.placeholder = i18n.t('partner.new_search_placeholder')\n badge.innerHTML = i18n.t('partner.new_search_badge')\n }\n badge.style.right = `${badge.getBoundingClientRect().width}px`\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.searchInputTarget.dispatchEvent(cancelEvent)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static targets = ['searchInput', 'progressBar', 'warning', 'form', 'okButton']\n\n declare searchInputTarget: HTMLInputElement\n declare progressBarTarget: HTMLElement\n declare warningTarget: HTMLElement\n declare formTarget: HTMLElement\n declare okButtonTarget: HTMLButtonElement\n\n timeout: NodeJS.Timeout\n\n connect() {\n this.okButtonTarget.classList.add('d-none')\n\n $(this.element).on('shown.bs.modal', () => {\n this._dispatch('search-modal:open')\n let badge = this.searchInputTarget.nextSibling.firstChild as HTMLElement\n badge.style.right = `${badge.getBoundingClientRect().width}px`\n\n this.resetModal()\n })\n\n $(this.searchInputTarget).on('keyup', (event) => {\n if (this.searchInputTarget.value === '') {\n return\n }\n\n clearTimeout(this.timeout)\n setTimeout(() => {\n this.searchCustomer()\n }, 250)\n })\n }\n\n resetModal() {\n this.okButtonTarget.classList.add('d-none')\n\n this.searchInputTarget.value = ''\n\n this.warningTarget.classList.add('d-none')\n this.formTarget.classList.add('d-none')\n this.progressBarTarget.classList.add('d-none')\n }\n\n searchCustomer() {\n this.okButtonTarget.classList.add('d-none')\n this.warningTarget.classList.add('d-none')\n this.formTarget.classList.add('d-none')\n this.progressBarTarget.classList.remove('d-none')\n\n let xhr\n ;((term, response, self) => {\n // Abort if the last call did not finish before new call\n try {\n xhr.abort()\n } catch (e) {}\n xhr = $.getJSON(\n `/${(window as any).current_company_id}/partners/search.json`,\n { term: term, type: 'customer', corporation: false },\n function (data) {\n response.call(self, data)\n },\n )\n })(this.searchInputTarget.value, this.handleResult, this)\n }\n\n handleResult(data) {\n this.progressBarTarget.classList.add('d-none')\n\n if (data[0] === undefined) {\n this.okButtonTarget.classList.add('d-none')\n this.warningTarget.classList.remove('d-none')\n this.formTarget.classList.add('d-none')\n } else {\n this.okButtonTarget.classList.remove('d-none')\n this.formTarget.classList.remove('d-none')\n this.warningTarget.classList.add('d-none')\n this._dispatch('partner--search:change', { partner: data[0] })\n }\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n}\n","import Select2Builder from '../../standalone/components/Select2Builder'\nimport { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport Rails from '@rails/ujs'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n connect() {\n let $element = $(this.element)\n let dropdownParent = this.element.closest('.modal') || document.body\n\n const options = new Select2Builder().createParams(`/${(window as any).current_company_id}/partners/search.json`, {\n width: '100%',\n minimumInputLength: 0,\n tags: false,\n placeholder: this._allPartners(),\n dropdownParent: dropdownParent,\n })\n options.ajax.data = (params) => ({\n term: $.trim(params.term),\n type: this._type(),\n })\n options.ajax.processResults = (data, params) => {\n return {\n results: [{ name: this._allPartners(), id: 'All' }, ...data],\n }\n }\n\n $element.select2(options)\n\n if (this._autoCommit()) {\n $element.on('select2:select', (event) => {\n let form = this.element.closest('form')\n Rails.fire(form, 'submit')\n })\n }\n }\n\n _type(): string {\n return this.data.has('type') ? this.data.get('type') : 'customer'\n }\n\n _addDefaultOption(): boolean {\n // Default is true\n return !this.data.has('addDefaultOption') && this.data.get('addDefaultOption') === 'true'\n }\n\n _autoCommit(): boolean {\n // Default is true\n return !this.data.has('autoCommit') || this.data.get('autoCommit') === 'true'\n }\n\n _allPartners(): string {\n return this._type() === 'customer' ? i18n.t('customer.all_customers') : i18n.t('supplier.all_suppliers')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\n// IMPORTANT: You MUST define data-partner-type on the controlled element. Its\n// value is passed as the value of the type query parameter to the search\n// endpoint.\nexport default class extends Controller {\n $element\n\n static values = { allowClear: Boolean }\n\n declare allowClearValue: Boolean\n\n connect() {\n this.$element = $(this.element)\n\n const partnerType = this.$element.data('partner-type')\n if (!partnerType) {\n console.error('You must define data-partner-type on the controller element')\n return\n }\n\n let dropdownParent = this.element.closest('.modal') || document.body\n\n this.$element.select2({\n dropdownParent: dropdownParent,\n theme: 'bootstrap',\n width: '100%',\n allowClear: this.allowClearValue,\n minimumInputLength: 0,\n placeholder: i18n.t(['partner.existing_search_placeholder', partnerType]),\n\n templateResult: (item) => {\n // The loading indicator (Searching ...) is provided by Select2 which\n // stores the text under `text`. Partners returned by the server don't\n // have `text` and use `name` instead.\n if (item.text) {\n return item.text\n }\n\n if (item.name) {\n switch (item.type) {\n case 'PhoneSearch::PhoneSearchResult':\n return `${item.phone_number} - ${item.name} (${i18n.t([partnerType, 'phone_search'])})`\n case 'Partner':\n if (partnerType === 'customer') {\n return this._templateNewCustomer(item)\n } else {\n return item.name\n }\n case 'CompanyLookup':\n return `${item.name} (${i18n.t([partnerType, 'norwegian_company_lookup_search'])})`\n default:\n return `${item.name} (${i18n.t([partnerType, 'not_found_in_register'])})`\n }\n }\n\n throw 'item and text are both undefined'\n },\n\n // We need to try `text` first because this is the property that Select2\n // uses on dynamically-defined items. If we referenced `named` only then\n // the selection would be blank for items added progamatically.\n templateSelection: (selectedItem) => selectedItem.text || selectedItem.name,\n\n ajax: {\n url: `/${(window as any).current_company_id}/partners/search.json`,\n dataType: 'json',\n delay: 250,\n cache: true,\n data(params) {\n return {\n term: params.term,\n page: params.page,\n type: partnerType,\n }\n },\n processResults: (data, params) => {\n const total_count = data.total_count\n const lastUsedHeader = $(this.element).data('last-used-header')\n\n if (lastUsedHeader) {\n if (!params.term && data.length > 0) {\n data = [\n {\n text: lastUsedHeader,\n children: data,\n },\n ]\n }\n }\n\n // parse the results into the format expected by Select2\n // since we are using custom formatting functions we do not need to\n // alter the remote JSON data, except to indicate that infinite\n // scrolling can be used\n params.page = params.page || 1\n return {\n results: data,\n pagination: {\n more: params.page * 25 < total_count,\n },\n }\n },\n },\n })\n let eventName = 'partner--select:change'\n this.$element.on('change', (event) => {\n let partner = Object.assign({}, this.currentPartner, event.partner || {})\n\n this.updateSelectorData(partner)\n\n this._dispatch(eventName, { partner: partner })\n })\n }\n\n select(partner): void {\n const option = new Option(partner.name, partner.id, true, true)\n\n this.$element.append(option).trigger({\n type: 'change',\n partner: partner,\n })\n }\n\n get currentPartner() {\n const [currentPartner] = this.$element.select2('data')\n // An item is ALWAYS select even if it's blank. However, in that case the\n // attributes are going to be empty. If `id` is blank it means no partner\n // has been selected.\n if (!currentPartner.id) {\n return null\n }\n\n // Pre-existing selections use `text`. Selections made by the user use\n // `name`. See the comments near templateResult and templateSelection.\n return {\n id: currentPartner.id,\n name: currentPartner.text || currentPartner.name,\n country: currentPartner.country || '',\n domestic: currentPartner.domestic,\n send_methods: currentPartner.send_methods,\n default_debit_account_id: currentPartner.default_debit_account_id || null,\n default_debit_account_code_and_description: currentPartner.default_debit_account_code_and_description || null,\n default_purchase_type: currentPartner.default_purchase_type || null,\n default_vat_code: currentPartner.default_vat_code || null,\n available_vat_codes: currentPartner.available_vat_codes || null,\n bank_account_number: currentPartner.bank_account_number || null,\n supplier_currency: currentPartner.supplier_currency || 'NOK',\n }\n }\n\n updateSelectorData(partner) {\n this.$element.attr('data-country', partner.country || '')\n this.$element.attr('data-domestic', partner.domestic)\n }\n\n get isSelected(): boolean {\n return !!this.$element.val()\n }\n\n _dispatch(eventName, params = {}): void {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n\n _templateNewCustomer(item): JQuery | string {\n const leftSide = [item.address_street, item.address_zip, item.address_city].filter((x) => x).join(', ')\n const rightSide = `${item.email}`\n\n if (!leftSide.replace(/[, ]+/g, ' ').trim() && !rightSide.replace(/[, ]+/g, ' ').trim()) {\n return item.name\n }\n\n return $(`\n ${item.name}\n \n ${leftSide.replace(/[, ]+/g, ' ').trim() ? leftSide : ''}\n ${rightSide}\n \n `)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport KidValidator from '../classes/kid_validator'\nimport flatpickr from 'flatpickr'\nimport { nextFrame } from '../rendering'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { i18n } from '../libraries/i18n'\nimport PaymentDatePickerController from 'controllers/input/payment_date_picker_controller'\n\n// In this controller we're checking quite a few places if we've some targets. The reason is that we've two versions of\n// the payment form. One is with all fields, and one is limited to just amount, date and type.\nexport default class extends Controller {\n static targets = [\n 'paymentType',\n 'consentExpiredWarning',\n 'consentExpiredText',\n 'consentExpiredLink',\n 'recipientBankNumber',\n 'overWriteBankNumberCheckBox',\n 'negativeAmountWarning',\n // Will be added back in https://lucalabs.atlassian.net/browse/IN-2840\n // 'approvePaymentLater',\n 'message',\n 'messageWarning',\n 'account',\n 'paymentOn',\n 'setAsDefaultPaymentCheckbox',\n 'internationalBankFields',\n 'domesticBankFields',\n 'recipientBic',\n 'recipientIban',\n 'domesticAmountInput',\n 'foreignAmountInput',\n ]\n\n static values = {\n sourceCurrency: String,\n defaultCurrency: String,\n disabled: Boolean,\n totalAmount: String,\n editableForm: Boolean,\n allowExecuteInForeignCurrency: Boolean,\n }\n\n declare disabledValue: boolean\n declare hasDisabledValue: boolean\n declare sourceCurrencyValue: string\n declare hasSourceCurrencyValue: boolean\n declare defaultCurrencyValue: string\n declare hasDefaultCurrencyValue: boolean\n declare totalAmountValue: string\n declare editableFormValue: boolean\n declare hasAllowExecuteInForeignCurrencyValue: boolean\n declare allowExecuteInForeignCurrencyValue: boolean\n\n declare hasSetAsDefaultPaymentCheckboxTarget: boolean\n declare hasOverWriteBankNumberCheckBoxTarget: boolean\n declare hasMessageWarningTarget: boolean\n declare hasPaymentTypeTarget: boolean\n declare hasRecipientBankNumberTarget: boolean\n declare hasAccountTarget: boolean\n declare hasMessageTarget: boolean\n declare internationalBankFieldsTarget: HTMLElement\n declare hasInternationalBankFieldsTarget: boolean\n declare recipientBicTarget: HTMLInputElement\n declare recipientIbanTarget: HTMLInputElement\n declare domesticBankFieldsTarget: HTMLInputElement\n declare recipientBankNumberTarget: HTMLInputElement\n declare overWriteBankNumberCheckBoxTarget: HTMLInputElement\n declare paymentOnTarget: HTMLInputElement\n declare setAsDefaultPaymentCheckboxTarget: HTMLInputElement\n declare paymentTypeTarget: HTMLSelectElement\n declare consentExpiredLinkTarget: HTMLAnchorElement\n declare consentExpiredTextTarget: HTMLElement\n declare consentExpiredWarningTarget: HTMLInputElement\n declare messageWarningTarget: HTMLElement\n declare accountTarget: HTMLSelectElement\n declare accountTargets: Array\n declare messageTarget: HTMLInputElement\n declare kidValidator: KidValidator\n declare domesticAmountInputTarget: HTMLInputElement\n declare foreignAmountInputTarget: HTMLInputElement\n declare negativeAmountWarningTarget: HTMLElement\n declare hasNegativeAmountWarningTarget: boolean\n\n originalValue: string\n\n connect() {\n this.originalValue = ''\n this.handlePaymentTypeChange()\n if (\n this.hasOverWriteBankNumberCheckBoxTarget &&\n this.hasRecipientBankNumberTarget &&\n this.recipientBankNumberTarget.value === ''\n ) {\n this.overWriteBankNumberCheckBoxTarget.closest('fieldset').style.display = 'none'\n }\n this.validateKidNumber()\n if (this.hasMessageTarget && this.messageTarget.dataset.showMessageWarning && this.hasMessageWarningTarget) {\n this.messageWarningTarget.style.display = 'none'\n }\n this.hideSetAsDefaultPaymentCheckbox(true)\n\n // Wait for flatpickr controller to initialize\n nextFrame(() => this.handlePaymentTypeChange())\n\n this.updateRecipientPaymentFields()\n }\n\n showNegativeAmountAlert() {\n if (!this.hasNegativeAmountWarningTarget) {\n return\n }\n\n const foreignAmount = parseDecimal(this.foreignAmountInputTarget.value, new Decimal(0))\n const domesticAmount = parseDecimal(this.domesticAmountInputTarget.value, new Decimal(0))\n\n if (foreignAmount.isNegative() || domesticAmount.isNegative()) {\n this.negativeAmountWarningTarget.classList.remove('d-none')\n } else {\n this.negativeAmountWarningTarget.classList.add('d-none')\n }\n }\n\n sourceCurrencyValueChanged(value, previousValue) {\n if (!this.hasSourceCurrencyValue) {\n return\n }\n\n this.disableInvalidAccountOptions()\n this.showAmountInputFieldsByCurrency()\n\n // Disable execute payment if feature is not enabled\n if (this.hasAllowExecuteInForeignCurrencyValue && this.sourceCurrencyValue !== this.defaultCurrencyValue) {\n Array.from(this.paymentTypeTarget.options).forEach((option: HTMLOptionElement) => {\n // Need at least one account that can execute payments\n let accountCanExecutePayment =\n Array.from(this.accountTarget.options).find((option: HTMLOptionElement) => this.canExecute(option)) !==\n undefined\n if (['execute', 'initiated'].includes(option.value)) {\n if (accountCanExecutePayment && this.allowExecuteInForeignCurrencyValue) option.style.display = 'block'\n else option.style.display = 'none'\n } else {\n option.style.display = 'block'\n }\n })\n const availablePaymentOptions = Array.from(this.paymentTypeTarget.options).filter((option) => {\n return option.style.display != 'none'\n })\n if (this.paymentTypeTarget.selectedOptions[0].style.display === 'none') {\n this.paymentTypeTarget.value = availablePaymentOptions[0].value\n this.handlePaymentTypeChange()\n }\n } else {\n Array.from(this.paymentTypeTarget.options).forEach((option) => (option.style.display = 'block'))\n }\n\n // NOK -> USD\n if (value != this.defaultCurrencyValue && previousValue == this.defaultCurrencyValue) {\n this.syncAmountValues(this.domesticAmountInputTarget, this.foreignAmountInputTarget)\n }\n // USD -> NOK\n else if (value == this.defaultCurrencyValue && previousValue != this.defaultCurrencyValue) {\n this.syncAmountValues(this.foreignAmountInputTarget, this.domesticAmountInputTarget)\n }\n\n this.updateRecipientPaymentFields()\n }\n\n totalAmountValueChanged() {\n if (this.totalAmountValue == '' || parseDecimal(this.totalAmountValue, new Decimal(0)).isNegative()) {\n return\n }\n\n if (this.sourceCurrencyValue == this.defaultCurrencyValue) {\n this.domesticAmountInputTarget.value = this.totalAmountValue\n } else {\n this.foreignAmountInputTarget.value = this.totalAmountValue\n }\n }\n\n setLabel(inputElement: HTMLInputElement, labelText: string) {\n const labelElement = inputElement.parentElement.querySelector('label')\n if (labelElement) {\n labelElement.innerText = labelText\n }\n }\n\n setHint(inputElement: HTMLInputElement, hintContent: HTMLElement) {\n const hintElement = inputElement.parentElement.querySelector('.form-text')\n if (hintElement) {\n hintElement.innerHTML = ''\n hintElement.appendChild(hintContent)\n }\n }\n\n hideAndDisableElement(element: HTMLInputElement) {\n element.parentElement.classList.add('d-none')\n element.setAttribute('disabled', '')\n }\n\n showAndEnableElement(element: HTMLInputElement, options: { readonly?: boolean } = { readonly: false }) {\n element.parentElement.classList.remove('d-none')\n element.removeAttribute('disabled')\n if (options.readonly) {\n element.setAttribute('readonly', '')\n } else {\n element.removeAttribute('readonly')\n }\n }\n\n createPaidPartialLink() {\n const paid_partial_link = document.createElement('a')\n paid_partial_link.setAttribute('id', 'paid-partial')\n paid_partial_link.setAttribute('data-action', 'payment-payable#handlePayPartialAmount')\n paid_partial_link.setAttribute('href', '#')\n paid_partial_link.classList.add('d-flex', 'justify-content-end')\n paid_partial_link.innerText = i18n.t('activerecord.attributes.payment.edit_amount')\n return paid_partial_link\n }\n\n createEnterDeductedAmountHint() {\n const span = document.createElement('span')\n span.innerText = i18n.t('payment.hint.deducted')\n return span\n }\n\n showAmountInputFieldsByCurrency() {\n const selectedAccount = this.accountTarget.options[this.accountTarget.selectedIndex]\n if (!selectedAccount) return\n\n const bankAccountCurrency = selectedAccount.getAttribute('currency')\n const isSourceInDefaultCurrency = this.sourceCurrencyValue === this.defaultCurrencyValue\n const isBankAccountInDefaultCurrency = bankAccountCurrency === this.defaultCurrencyValue\n\n if (isSourceInDefaultCurrency && isBankAccountInDefaultCurrency) {\n this.handleDomesticCurrency()\n } else if ((!isSourceInDefaultCurrency && !isBankAccountInDefaultCurrency) || this.executingPayment()) {\n this.handleForeignCurrency()\n } else if (!isSourceInDefaultCurrency && isBankAccountInDefaultCurrency) {\n this.handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency)\n } else if (isSourceInDefaultCurrency && !isBankAccountInDefaultCurrency) {\n this.handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency)\n }\n }\n\n handleDomesticCurrency() {\n this.setLabel(this.domesticAmountInputTarget, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.showAndEnableElement(this.domesticAmountInputTarget, { readonly: !this.editableFormValue })\n this.hideAndDisableElement(this.foreignAmountInputTarget)\n if (!this.editableFormValue) {\n this.setHint(this.domesticAmountInputTarget, this.createPaidPartialLink())\n }\n }\n\n handleForeignCurrency() {\n this.setLabel(this.foreignAmountInputTarget, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.showAndEnableElement(this.foreignAmountInputTarget, { readonly: !this.editableFormValue })\n this.hideAndDisableElement(this.domesticAmountInputTarget)\n if (!this.editableFormValue) {\n this.setHint(this.foreignAmountInputTarget, this.createPaidPartialLink())\n }\n }\n\n handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency) {\n this.swapAmountInputs(this.foreignAmountInputTarget, this.domesticAmountInputTarget, isSourceInDefaultCurrency)\n\n const mainAmountInput = isSourceInDefaultCurrency ? this.domesticAmountInputTarget : this.foreignAmountInputTarget\n const secondaryAmountInput = isSourceInDefaultCurrency\n ? this.foreignAmountInputTarget\n : this.domesticAmountInputTarget\n const secondaryInputCurrency = isSourceInDefaultCurrency ? bankAccountCurrency : this.defaultCurrencyValue\n\n this.setLabel(mainAmountInput, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.setLabel(secondaryAmountInput, i18n.t('posting.amount_in', { currency: secondaryInputCurrency }))\n this.showAndEnableElement(mainAmountInput, { readonly: !this.editableFormValue })\n this.showAndEnableElement(secondaryAmountInput)\n\n if (!this.editableFormValue) {\n this.setHint(mainAmountInput, this.createPaidPartialLink())\n this.setHint(secondaryAmountInput, this.createEnterDeductedAmountHint())\n }\n }\n\n swapAmountInputs(\n domesticAmountInput: HTMLInputElement,\n foreignAmountInput: HTMLInputElement,\n isSourceInDefaultCurrency: boolean,\n ) {\n const domesticAmountElement = domesticAmountInput.parentElement\n const foreignAmountElement = foreignAmountInput.parentElement\n const destinationElement = domesticAmountElement.parentElement\n\n if (isSourceInDefaultCurrency) {\n destinationElement.innerHTML = ''\n destinationElement.appendChild(foreignAmountElement)\n destinationElement.appendChild(domesticAmountElement)\n } else {\n destinationElement.innerHTML = ''\n destinationElement.appendChild(domesticAmountElement)\n destinationElement.appendChild(foreignAmountElement)\n }\n }\n\n syncAmountValues(sourceInput: HTMLInputElement, targetInput: HTMLInputElement) {\n if (!parseDecimal(sourceInput.value, new Decimal(0)).isZero() && !this.editableFormValue) {\n targetInput.value = sourceInput.value\n sourceInput.value = '0,00'\n }\n }\n\n validateKidNumber() {\n if (this.hasSourceCurrencyValue && this.sourceCurrencyValue != this.defaultCurrencyValue) {\n return\n }\n\n if (this.hasMessageWarningTarget && this.hasMessageTarget) {\n if (this.messageTarget.value === '') {\n this.messageWarningTarget.style.display = 'none'\n return\n }\n\n this.kidValidator = new KidValidator()\n if (this.kidValidator.validKidNumber(this.messageTarget.value)) {\n this.messageWarningTarget.style.display = 'none'\n } else {\n this.messageWarningTarget.style.display = 'block'\n }\n }\n }\n\n updateRecipientPaymentFields() {\n if (!this.hasDefaultCurrencyValue || !this.hasSourceCurrencyValue || !this.hasInternationalBankFieldsTarget) {\n return\n }\n\n if (\n this.sourceCurrencyValue === '' ||\n this.sourceCurrencyValue == this.defaultCurrencyValue ||\n !this.executingPayment()\n ) {\n this.internationalBankFieldsTarget.classList.add('d-none')\n this.domesticBankFieldsTarget.classList.remove('d-none')\n this.recipientBankNumberTarget.disabled = false\n this.recipientIbanTarget.disabled = true\n this.recipientBicTarget.disabled = true\n this.messageTarget.parentElement.querySelector('label').innerText = this.messageTarget.dataset.domesticBankLabel\n } else {\n this.internationalBankFieldsTarget.classList.remove('d-none')\n this.domesticBankFieldsTarget.classList.add('d-none')\n this.recipientBankNumberTarget.disabled = true\n this.recipientIbanTarget.disabled = this.hasDisabledValue && this.disabledValue\n this.recipientBicTarget.disabled = this.hasDisabledValue && this.disabledValue\n this.messageTarget.parentElement.querySelector('label').innerText = i18n.t(\n 'activerecord.attributes.payment.message',\n )\n }\n }\n\n accountHasValidCurrency(bankAccountOption: HTMLOptionElement): boolean {\n if (!this.hasDefaultCurrencyValue) {\n return true\n }\n\n const bankAccountCurrency = bankAccountOption.getAttribute('currency')\n return (\n this.sourceCurrencyValue === this.defaultCurrencyValue ||\n bankAccountCurrency === this.defaultCurrencyValue ||\n bankAccountCurrency === this.sourceCurrencyValue\n )\n }\n\n handlePayPartialAmount(event) {\n event.preventDefault()\n\n if (this.sourceCurrencyValue === this.defaultCurrencyValue) {\n this.domesticAmountInputTarget.removeAttribute('readonly')\n } else {\n this.foreignAmountInputTarget.removeAttribute('readonly')\n }\n }\n\n // If the bank account has not finished integration it'll be hidden if the payment type is pay and execute now\n accountValidByPaymentType(bankAccountOption: HTMLOptionElement): boolean {\n return this.executingPayment() ? this.canExecute(bankAccountOption) : true\n }\n\n executingPayment() {\n return !(\n this.paymentTypeTarget.value === 'register_payment_later' || this.paymentTypeTarget.value === 'paid_in_bank'\n )\n }\n\n disableInvalidAccountOptions() {\n if (!this.hasAccountTarget) {\n return\n }\n\n // set visible all accounts\n Array.from(this.accountTarget.options).forEach((bankAccountOption: HTMLOptionElement) => {\n bankAccountOption.style.display = 'block'\n })\n\n // filter accounts\n let accountsToHide = Array.from(this.accountTarget.options).filter((bankAccountOption: HTMLOptionElement) => {\n return !(this.accountHasValidCurrency(bankAccountOption) && this.accountValidByPaymentType(bankAccountOption))\n })\n\n // hide not valid accounts\n Array.from(accountsToHide).forEach((bankAccountOption: HTMLOptionElement) => {\n bankAccountOption.style.display = 'none'\n })\n\n this.selectAvailableAccount()\n }\n\n selectAvailableAccount() {\n if (!this.hasAccountTarget) {\n return\n }\n\n const defaultAccount = this.accountTarget.querySelector('[selected_bank_account=\"true\"]') as HTMLOptionElement\n const selectedAccount = this.accountTarget.options[this.accountTarget.selectedIndex]\n const availableAccounts = Array.from(this.accountTarget.options).filter((option) => {\n return option.style.display != 'none'\n })\n\n // do not change anything if account that was selected before is valid\n if (selectedAccount && selectedAccount.style.display != 'none') {\n return\n }\n // try to select default account\n else if (defaultAccount && defaultAccount.style.display != 'none') {\n this.accountTarget.value = defaultAccount.value\n }\n // select first available\n else if (availableAccounts.length != 0) {\n this.accountTarget.value = availableAccounts[0].value\n } else {\n this.accountTarget.value = ''\n }\n }\n\n handlePaymentTypeChange() {\n const paymentBlock: HTMLElement = this.element.querySelector('#payment-payable')\n\n this.showConsentExpiredWarning()\n\n if (paymentBlock === null || !this.hasPaymentTypeTarget) {\n return\n }\n\n const paymentType = this.paymentTypeTarget.value\n\n if (paymentType === 'paid_in_bank') {\n this.disableInvalidAccountOptions()\n paymentBlock.style.display = 'block'\n if (this.hasOverWriteBankNumberCheckBoxTarget) {\n this.overWriteBankNumberCheckBoxTarget.closest('fieldset').style.display = 'none'\n }\n if (this.hasMessageTarget) {\n ;(this.messageTarget.closest('div') as HTMLElement).style.display = 'none'\n }\n if (this.hasRecipientBankNumberTarget) {\n ;(this.recipientBankNumberTarget.closest('div') as HTMLElement).style.display = 'none'\n }\n if (this.hasAccountTarget) {\n ;(this.accountTarget.parentElement.querySelector('label') as HTMLElement).innerText = i18n.t(\n 'activerecord.attributes.payment.paid_from_account',\n )\n }\n } else if (paymentType === 'register_payment_later') {\n this.disableInvalidAccountOptions()\n paymentBlock.style.display = 'none'\n } else {\n // execute, initiated\n paymentBlock.style.display = 'block'\n if (this.hasRecipientBankNumberTarget) {\n ;(this.recipientBankNumberTarget.closest('div') as HTMLElement).style.display = 'block'\n }\n if (this.hasMessageTarget) {\n ;(this.messageTarget.closest('div') as HTMLElement).style.display = 'block'\n }\n if (this.hasOverWriteBankNumberCheckBoxTarget) {\n this.overWriteBankNumberCheckBoxTarget.closest('fieldset').style.display = 'block'\n this.renderOverWriteReceiversBankAccountCheckBox()\n }\n if (this.hasAccountTarget) {\n ;(this.accountTarget.closest('div').childNodes[0] as HTMLElement).innerText = i18n.t(\n 'activerecord.attributes.payment.pay_from_account',\n )\n }\n this.disableInvalidAccountOptions()\n this.validateKidNumber()\n }\n\n if (this.paymentOnTarget) {\n const paymentDateController = this.application.getControllerForElementAndIdentifier(\n this.paymentOnTarget,\n 'input--payment-date-picker',\n ) as PaymentDatePickerController\n if (paymentDateController !== null) {\n paymentDateController.setPaymentType(paymentType)\n }\n }\n\n this.showAmountInputFieldsByCurrency()\n this.updateRecipientPaymentFields()\n }\n\n hideSetAsDefaultPaymentCheckbox(hide) {\n if (!this.hasSetAsDefaultPaymentCheckboxTarget) {\n return\n }\n\n if (hide) {\n this.setAsDefaultPaymentCheckboxTarget.parentElement.classList.add('d-none')\n } else {\n this.setAsDefaultPaymentCheckboxTarget.parentElement.classList.remove('d-none')\n }\n\n this.setAsDefaultPaymentCheckboxTarget.checked = false\n }\n\n showSetAsDefaultPaymentCheckbox() {\n if (this.hasAccountTarget) {\n if (\n this.accountTarget.options[this.accountTarget.selectedIndex].getAttribute('default_payment_account') === 'true'\n ) {\n this.hideSetAsDefaultPaymentCheckbox(true)\n } else {\n this.hideSetAsDefaultPaymentCheckbox(false)\n }\n }\n }\n\n showConsentExpiredWarning() {\n if (!this.hasAccountTarget || !this.hasPaymentTypeTarget) {\n return\n }\n\n // Hide warning\n this.consentExpiredWarningTarget.classList.add('d-none')\n\n for (const element of Array.from(this.accountTargets)) {\n let selectedOption = element.options[element.selectedIndex]\n\n if (selectedOption == undefined) {\n return\n }\n\n if ('execute' !== this.paymentTypeTarget.value || !this.canExecute(selectedOption)) {\n continue\n }\n\n let isISO20022Integration = selectedOption.getAttribute('iso20022_integration') === 'true'\n if (isISO20022Integration) {\n continue\n }\n\n let isPSD2Integration = selectedOption.getAttribute('psd2_integration') === 'true'\n let currentUserHasConsent = selectedOption.getAttribute('psd2_current_user_has_consent') === 'true'\n let currentConsentExpired = selectedOption.getAttribute('psd2_current_consent_expired') === 'true'\n let bankBic = selectedOption.getAttribute('bank_bic')\n let bankName = selectedOption.getAttribute('bank_name')\n\n if (isPSD2Integration) {\n if (currentUserHasConsent) {\n if (currentConsentExpired) {\n // Show warning that consent is expired\n this.showPsd2Alert(\n i18n.t('bank.account.index_page.consents.expired.text', { bank_name: bankName }),\n i18n.t('bank.account.index_page.consents.login_button', { bank_name: bankName }),\n 'warning',\n bankBic,\n )\n return\n }\n } else {\n // Show info that he can connect to do payments\n this.showPsd2Alert(\n i18n.t('bank.account.index_page.consents.other_user_has_consent.text', { bank_name: bankName }),\n i18n.t('bank.account.index_page.consents.login_button', { bank_name: bankName }),\n 'info',\n bankBic,\n )\n return\n }\n }\n }\n }\n\n showPsd2Alert(text: string, buttonText: string, level: string, bankBic: string) {\n this.consentExpiredWarningTarget.classList.remove('d-none')\n this.consentExpiredLinkTarget.dataset.bsTarget = `#reconnect-bank-account-${bankBic}`\n this.consentExpiredTextTarget.innerHTML = text\n this.consentExpiredLinkTarget.text = buttonText\n\n if (level == 'warning') {\n this.consentExpiredWarningTarget.classList.add('alert-warning')\n this.consentExpiredWarningTarget.classList.remove('alert-info')\n } else {\n // Info\n this.consentExpiredWarningTarget.classList.remove('alert-warning')\n this.consentExpiredWarningTarget.classList.add('alert-info')\n }\n }\n\n canExecute(bankAccountOption: HTMLOptionElement) {\n let isPsd2Integration = bankAccountOption.getAttribute('psd2_integration') === 'true'\n let isExecuteForeignPayment = this.sourceCurrencyValue != this.defaultCurrencyValue\n\n let canExecutePayments =\n bankAccountOption.getAttribute('supports_executing_payments') === 'true' ||\n (bankAccountOption.getAttribute('psd2_current_user_has_consent') === 'true' &&\n bankAccountOption.getAttribute('psd2_current_consent_expired') === 'true')\n\n // We only allow executing foreign payments with PSD2\n if (this.hasAllowExecuteInForeignCurrencyValue && isExecuteForeignPayment) {\n return this.allowExecuteInForeignCurrencyValue && canExecutePayments && isPsd2Integration\n }\n\n return canExecutePayments\n }\n\n renderOverWriteReceiversBankAccountCheckBox() {\n if (this.hasOverWriteBankNumberCheckBoxTarget) {\n if (this.originalValue === '') {\n this.originalValue = this.recipientBankNumberTarget.value\n }\n if (this.recipientBankNumberTarget.value === this.originalValue || this.recipientBankNumberTarget.value === '') {\n this.overWriteBankNumberCheckBoxTarget.closest('fieldset').style.display = 'none'\n this.overWriteBankNumberCheckBoxTarget.checked = false\n } else {\n this.overWriteBankNumberCheckBoxTarget.closest('fieldset').style.display = 'block'\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static targets = [\n 'excludeFeesAndInterestsCheckbox',\n 'account',\n 'negativeAmountWarning',\n 'foreignAmountInput',\n 'domesticAmountInput',\n ]\n static values = {\n sourceCurrency: String,\n defaultCurrency: String,\n editableForm: Boolean,\n sourceOutstandingAmountIncludingFeesAndInterests: String,\n sourceOutstandingAmountExcludingFeesAndInterests: String,\n }\n\n declare sourceCurrencyValue: string\n declare defaultCurrencyValue: string\n declare editableFormValue: boolean\n declare sourceOutstandingAmountIncludingFeesAndInterestsValue: string\n declare sourceOutstandingAmountExcludingFeesAndInterestsValue: string\n declare negativeAmountWarningTarget: HTMLElement\n declare hasNegativeAmountWarningTarget: boolean\n\n declare hasExcludeFeesAndInterestsCheckboxTarget: boolean\n declare accountTarget: HTMLSelectElement\n declare excludeFeesAndInterestsCheckboxTarget: HTMLInputElement\n declare domesticAmountInputTarget: HTMLInputElement\n declare foreignAmountInputTarget: HTMLInputElement\n\n connect() {\n this.showAmountInputFieldsByCurrency()\n }\n\n handlePayPartialAmount(event) {\n event.preventDefault()\n\n if (this.sourceCurrencyValue === this.defaultCurrencyValue) {\n this.domesticAmountInputTarget.removeAttribute('readonly')\n } else {\n this.foreignAmountInputTarget.removeAttribute('readonly')\n }\n }\n\n showAmountInputFieldsByCurrency() {\n const selectedAccount = this.accountTarget.options[this.accountTarget.selectedIndex]\n if (!selectedAccount) return\n\n const bankAccountCurrency = selectedAccount.getAttribute('currency')\n const isSourceInDefaultCurrency = this.sourceCurrencyValue === this.defaultCurrencyValue\n const isBankAccountInDefaultCurrency = bankAccountCurrency === this.defaultCurrencyValue\n\n if (isSourceInDefaultCurrency && isBankAccountInDefaultCurrency) {\n this.handleDomesticCurrency()\n } else if (!isSourceInDefaultCurrency && !isBankAccountInDefaultCurrency) {\n this.handleForeignCurrency()\n } else if (!isSourceInDefaultCurrency && isBankAccountInDefaultCurrency) {\n this.handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency)\n } else if (isSourceInDefaultCurrency && !isBankAccountInDefaultCurrency) {\n this.handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency)\n }\n }\n\n showNegativeAmountAlert() {\n if (!this.hasNegativeAmountWarningTarget) {\n return\n }\n\n const foreignAmount = parseDecimal(this.foreignAmountInputTarget.value, new Decimal(0))\n const domesticAmount = parseDecimal(this.domesticAmountInputTarget.value, new Decimal(0))\n\n if (foreignAmount.isNegative() || domesticAmount.isNegative()) {\n this.negativeAmountWarningTarget.classList.remove('d-none')\n } else {\n this.negativeAmountWarningTarget.classList.add('d-none')\n }\n }\n\n handleDomesticCurrency() {\n this.setLabel(this.domesticAmountInputTarget, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.showAndEnableElement(this.domesticAmountInputTarget, { readonly: !this.editableFormValue })\n this.hideAndDisableElement(this.foreignAmountInputTarget)\n if (!this.editableFormValue) {\n this.setHint(this.domesticAmountInputTarget, this.createPaidPartialLink())\n }\n }\n\n handleForeignCurrency() {\n this.setLabel(this.foreignAmountInputTarget, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.showAndEnableElement(this.foreignAmountInputTarget, { readonly: !this.editableFormValue })\n this.hideAndDisableElement(this.domesticAmountInputTarget)\n if (!this.editableFormValue) {\n this.setHint(this.foreignAmountInputTarget, this.createPaidPartialLink())\n }\n }\n\n handleMixedCurrency(isSourceInDefaultCurrency, bankAccountCurrency) {\n this.swapAmountInputs(this.foreignAmountInputTarget, this.domesticAmountInputTarget, isSourceInDefaultCurrency)\n\n const mainAmountInput = isSourceInDefaultCurrency ? this.domesticAmountInputTarget : this.foreignAmountInputTarget\n const secondaryAmountInput = isSourceInDefaultCurrency\n ? this.foreignAmountInputTarget\n : this.domesticAmountInputTarget\n const secondaryInputCurrency = isSourceInDefaultCurrency ? bankAccountCurrency : this.defaultCurrencyValue\n\n this.setLabel(mainAmountInput, i18n.t('posting.amount_in', { currency: this.sourceCurrencyValue }))\n this.setLabel(secondaryAmountInput, i18n.t('posting.amount_in', { currency: secondaryInputCurrency }))\n this.showAndEnableElement(mainAmountInput, { readonly: !this.editableFormValue })\n this.showAndEnableElement(secondaryAmountInput)\n if (!this.editableFormValue) {\n this.setHint(mainAmountInput, this.createPaidPartialLink())\n }\n }\n\n setLabel(inputElement: HTMLInputElement, labelText: string) {\n const labelElement = inputElement.parentElement.querySelector('label')\n if (labelElement) {\n labelElement.innerText = labelText\n }\n }\n\n setHint(inputElement: HTMLInputElement, hintContent: HTMLElement) {\n const hintElement = inputElement.parentElement.querySelector('.form-text')\n if (hintElement) {\n hintElement.innerHTML = ''\n hintElement.appendChild(hintContent)\n }\n }\n\n hideAndDisableElement(element: HTMLInputElement) {\n element.parentElement.classList.add('d-none')\n element.setAttribute('disabled', '')\n }\n\n showAndEnableElement(element: HTMLInputElement, options: { readonly?: boolean } = { readonly: false }) {\n element.parentElement.classList.remove('d-none')\n element.removeAttribute('disabled')\n if (options.readonly) {\n element.setAttribute('readonly', '')\n } else {\n element.removeAttribute('readonly')\n }\n }\n\n createPaidPartialLink() {\n const paid_partial_link = document.createElement('a')\n paid_partial_link.setAttribute('id', 'paid-partial')\n paid_partial_link.setAttribute('data-action', 'payment-receivable#handlePayPartialAmount')\n paid_partial_link.setAttribute('href', '#')\n paid_partial_link.classList.add('d-flex', 'justify-content-end')\n paid_partial_link.innerText = i18n.t('activerecord.attributes.payment.edit_amount')\n return paid_partial_link\n }\n\n swapAmountInputs(\n domesticAmountInput: HTMLInputElement,\n foreignAmountInput: HTMLInputElement,\n isSourceInDefaultCurrency: boolean,\n ) {\n const excludeFeesCheckboxElement = this.hasExcludeFeesAndInterestsCheckboxTarget\n ? this.excludeFeesAndInterestsCheckboxTarget.closest('fieldset')\n : null\n const domesticAmountElement = domesticAmountInput.parentElement\n const foreignAmountElement = foreignAmountInput.parentElement\n const destinationElement = domesticAmountElement.parentElement\n\n if (isSourceInDefaultCurrency) {\n destinationElement.innerHTML = ''\n destinationElement.appendChild(foreignAmountElement)\n destinationElement.appendChild(domesticAmountElement)\n } else {\n destinationElement.innerHTML = ''\n destinationElement.appendChild(domesticAmountElement)\n destinationElement.appendChild(foreignAmountElement)\n }\n\n if (excludeFeesCheckboxElement) {\n destinationElement.appendChild(excludeFeesCheckboxElement)\n }\n }\n\n showExcludeFeesAndInterestsCheckbox() {\n if (!this.hasExcludeFeesAndInterestsCheckboxTarget) {\n return\n }\n\n let paymentAmount = new Decimal(0)\n if (this.sourceCurrencyValue === this.defaultCurrencyValue) {\n paymentAmount = parseDecimal(this.domesticAmountInputTarget.value)\n } else {\n paymentAmount = parseDecimal(this.foreignAmountInputTarget.value)\n }\n const outstandingAmountExcludingFees = parseDecimal(this.sourceOutstandingAmountExcludingFeesAndInterestsValue)\n const outstandingAmountIncludingFees = parseDecimal(this.sourceOutstandingAmountIncludingFeesAndInterestsValue)\n const checkBoxWrapper = this.excludeFeesAndInterestsCheckboxTarget.parentNode.parentNode as HTMLElement\n\n if (\n outstandingAmountExcludingFees.lessThanOrEqualTo(paymentAmount) &&\n paymentAmount.lessThan(outstandingAmountIncludingFees)\n ) {\n checkBoxWrapper.classList.remove('d-none')\n this.excludeFeesAndInterestsCheckboxTarget.disabled = false\n } else {\n checkBoxWrapper.classList.add('d-none')\n this.excludeFeesAndInterestsCheckboxTarget.disabled = true\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../util/rails_fetch'\n\nexport default class extends Controller {\n static targets = ['target']\n static values = { url: { type: String, default: '' } }\n\n declare urlValue: string\n declare targetTargets: Array\n\n connect() {\n if (this.urlValue !== '') {\n this._fetchNumbers()\n } else {\n this._removeTargetElements()\n }\n }\n\n async _fetchNumbers() {\n let response = await rails_fetch(this.urlValue)\n let data = await response.json()\n this.targetTargets.forEach((target) => {\n let number = data[target.dataset.counterKey]\n if (number > 0) {\n // This is a specific case for inbox items\n if (target.dataset.counterKey === 'inbox_items') {\n target.innerText = `(${number})`\n } else {\n target.innerText = `${number}`\n target.classList.remove('d-none')\n }\n } else {\n target.remove()\n }\n })\n }\n\n _removeTargetElements() {\n this.targetTargets.forEach((targetElement) => {\n targetElement.remove()\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Popover } from 'bootstrap'\n\nexport default class extends Controller {\n initialize() {\n let popover = new Popover(this.element)\n if ((this.element as HTMLElement).dataset.show === 'true') {\n popover.show()\n }\n }\n\n hidePopovers() {\n Array.from(document.getElementsByClassName('popover')).forEach((el) => {\n Popover.getOrCreateInstance(el).hide()\n })\n }\n\n toggleToggleablePopovers() {\n this.hidePopovers()\n\n Array.from(document.querySelectorAll('.show-popover:not(.selected)')).forEach((el: HTMLElement) => {\n // There have been issues with collapse animations distorting the positioning of popovers.\n // To keep this from happening, we trigger a page scroll after the collapse animation is finished.\n // The scroll event repositions the popovers.\n setTimeout(function () {\n // We double check that we have not been selected the last 150ms, this can happen during testing\n if (!el.classList.contains('selected')) {\n let popover = new Popover(el)\n popover.show()\n window.scrollTo(window.scrollX, window.scrollY - 1)\n window.scrollTo(window.scrollX, window.scrollY + 1)\n }\n }, 150)\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { icon } from '@fortawesome/fontawesome-svg-core'\nimport { faSortUp, faSortDown } from 'fontawesome-luca/pro-regular-svg-icons'\n\nexport default class extends Controller {\n static targets = ['table']\n\n declare tableTarget: HTMLFormElement\n\n updateHeader(event) {\n const th = event.currentTarget\n const isAscending = th.classList.toggle('asc')\n\n // Remove any existing icons\n th.querySelectorAll('.fa-sort-up, .fa-sort-down').forEach((icon) => icon.remove())\n\n th.appendChild(icon(isAscending ? faSortDown : faSortUp).node[0])\n }\n\n sort(event) {\n event.preventDefault()\n\n const table = this.tableTarget\n const th = event.currentTarget.closest('th')\n const direction = th.dataset.direction || 'asc'\n const index = Array.prototype.indexOf.call(th.parentNode.children, th)\n const rows = Array.from(table.tBodies[0].querySelectorAll('tr:not(.total):not(.total-in-out)'))\n const totalRows = Array.from(table.tBodies[0].querySelectorAll('tr.total, tr.total-in-out'))\n\n this.updateHeader(event)\n\n const sortedRows = rows.sort((a: HTMLTableRowElement, b: HTMLTableRowElement) => {\n const aCell = a.cells[index]\n const bCell = b.cells[index]\n\n let aValue = parseFloat(aCell.textContent.trim().replace(/[, ]/g, ''))\n let bValue = parseFloat(bCell.textContent.trim().replace(/[, ]/g, ''))\n\n if (isNaN(aValue)) aValue = 0\n if (isNaN(bValue)) bValue = 0\n\n if (direction === 'asc') {\n return aValue - bValue\n } else {\n return bValue - aValue\n }\n })\n\n table.tBodies[0].append(...sortedRows)\n table.tBodies[0].append(...totalRows)\n\n th.dataset.direction = direction === 'asc' ? 'desc' : 'asc'\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport SplitViewController from './split_view_controller'\n\nexport default class extends Controller {\n static targets = ['preview']\n\n declare previewTarget: any\n\n toggle(url) {\n if ((this.previewTarget.data === url || this.previewTarget.src === url) && this.isVisible) {\n this.close()\n } else {\n this.open(url)\n }\n }\n\n open(url) {\n this.resetPreviewElement()\n this.previewTarget.data = url\n this.previewTarget.src = url\n this.splitViewController.show()\n }\n\n close() {\n this.previewTarget.data = ''\n this.previewTarget.src = ''\n this.splitViewController.hide()\n }\n\n resetPreviewElement() {\n // Switching the preview data type from image to pdf sometimes caused the window to display\n // data from a previously selected pdf inbox item.\n // We avoid this issue by rebuilding the previewElement.\n const oldPreviewElement = document.getElementsByClassName('split-view__preview-wrapper')[0]\n const parent = oldPreviewElement.parentElement\n parent.append(oldPreviewElement.cloneNode(true))\n parent.removeChild(oldPreviewElement)\n }\n\n get isVisible() {\n return !this.element.classList.contains('d-none')\n }\n\n get splitViewController(): SplitViewController {\n return this.application.getControllerForElementAndIdentifier(\n document.getElementById('split-view'),\n 'split-view',\n ) as SplitViewController\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n printPage(event) {\n event.preventDefault()\n window.print()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { BulkActionParams } from '../bulk_action_table_controller'\nimport { rails_fetch } from '../../util/rails_fetch'\nimport { getModelHashIds } from '../../util/get_model_hash_ids'\n\nexport default class extends Controller {\n async massDestroy(params: BulkActionParams) {\n const checkedRows = params.checkedRows\n const hashIds = getModelHashIds(checkedRows)\n\n const data = {\n product_ids: hashIds,\n }\n\n await rails_fetch(`/${(window as any).current_company_id}/products/mass_destroy`, {\n method: 'DELETE',\n body: JSON.stringify(data),\n })\n .then((response) => response.text())\n .then((data) => {\n eval(data)\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Select2Builder from '../../standalone/components/Select2Builder'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['productSelect', 'newProduct', 'unitPrice', 'vatCode', 'description']\n\n declare private productSelectTarget: HTMLInputElement\n declare private hasNewProductTarget: boolean\n declare private newProductTarget: HTMLInputElement\n declare private unitPriceTarget: HTMLInputElement\n declare private hasVatCodeTarget: HTMLSelectElement\n declare private vatCodeTarget: HTMLSelectElement\n declare private descriptionTarget: HTMLInputElement\n\n connect() {\n const elem = $(this.productSelectTarget)\n const params = new Select2Builder().createParams(`/${(window as any).current_company_id}/products/search.json`, {\n minimumInputLength: 0,\n placeholder: i18n.t('simple_form.placeholders.customer_invoice_line_item.product'),\n })\n params.ajax.processResults = function (data, params) {\n const total_count = data.total_count\n\n if (!params.term && data.length > 0) {\n data = [\n {\n text: elem.data('last-used-header'),\n children: data,\n },\n ]\n }\n\n params.page = params.page || 1\n return {\n results: data,\n pagination: {\n more: params.page * 25 < total_count,\n },\n }\n }\n elem.select2(params)\n\n elem.on('select2:select', (event) => {\n const data = event.params.data as any\n\n if (data.newTag) {\n this.newProductTarget.value = 'true'\n } else {\n this.newProductTarget.value = 'false'\n }\n if (data.unit_price) {\n this.unitPriceTarget.value = data.unit_price\n this.updateVatCode(data.vat_code)\n\n this._dispatch('product--search:changeUnitPrice', { unit_price: data.unit_price })\n } else {\n this.unitPriceTarget.value = ''\n }\n if (data.description) {\n this.descriptionTarget.value = data.description\n }\n })\n }\n\n updateVatCode(productVatCode) {\n if (!this.hasVatCodeTarget) {\n return\n }\n\n const options = Array.from(this.vatCodeTarget.options)\n const desireOption = options.filter(function (option) {\n return option.value === productVatCode\n })[0]\n\n if (desireOption.disabled) {\n return\n }\n\n this.vatCodeTarget.value = productVatCode\n }\n\n _dispatch(eventName, params = {}) {\n const event = document.createEvent('Event')\n event.initEvent(eventName, true, true)\n Object.assign(event, params)\n this.element.dispatchEvent(event)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Flatpickr from 'stimulus-flatpickr'\nimport $ from 'jquery'\nimport { Modal } from 'bootstrap'\nimport { parseDecimal } from '../../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { amountStr } from '../../formatting_helper'\nimport { i18n } from '../../../libraries/i18n'\n\ninterface BalanceToTaxGroup {\n default: string\n allowed: Array\n}\n\nexport default class extends Controller {\n static values = { balanceAccountToTaxGroup: String, taxGroups: String }\n\n declare balanceAccountToTaxGroupValue: string\n declare taxGroupsValue: string\n\n static targets = [\n 'purchasePrice',\n 'accountingValue',\n 'advancedData',\n 'purchaseDate',\n 'startDate',\n 'startYear',\n 'depreciationType',\n 'depreciationRate',\n 'depreciationRateWrapper',\n 'balanceAccount',\n 'depreciationAccount',\n 'taxGroupSelector',\n 'taxRate',\n 'taxGroupDetails',\n 'descriptionLinear',\n 'descriptionPercent',\n 'descriptionStartYearDate',\n 'descriptionStartDate',\n 'descriptionDuration',\n 'descriptionPercentStr',\n 'descriptionEndDate',\n 'durationValue',\n 'durationUnits',\n 'durationWrapper',\n 'descriptionAmount',\n 'wreckValue',\n 'submitButton',\n 'postingId',\n ]\n\n declare purchasePriceTarget: HTMLInputElement\n declare accountingValueTarget: HTMLInputElement\n declare advancedDataTarget: HTMLInputElement\n declare purchaseDateTarget: HTMLInputElement\n declare startDateTarget: HTMLInputElement\n declare startYearTarget: HTMLInputElement\n declare depreciationTypeTarget: HTMLSelectElement\n declare depreciationRateTarget: HTMLInputElement\n declare depreciationRateWrapperTarget: HTMLInputElement\n declare balanceAccountTarget: HTMLInputElement\n declare depreciationAccountTarget: HTMLInputElement\n declare taxGroupSelectorTarget: HTMLSelectElement\n declare taxGroupDetailsTarget: HTMLElement\n declare taxRateTarget: HTMLInputElement\n declare descriptionLinearTarget: HTMLElement\n declare descriptionPercentTarget: HTMLElement\n declare descriptionStartDateTarget: HTMLElement\n declare descriptionStartYearDateTarget: HTMLElement\n declare descriptionDurationTarget: HTMLElement\n declare descriptionPercentStrTarget: HTMLElement\n declare descriptionEndDateTargets: Array\n declare durationValueTarget: HTMLInputElement\n declare durationUnitsTarget: HTMLSelectElement\n declare durationWrapperTarget: HTMLSelectElement\n declare descriptionAmountTarget: HTMLElement\n declare wreckValueTarget: HTMLInputElement\n declare submitButtonTarget: HTMLButtonElement\n declare postingIdTarget: HTMLInputElement\n\n year: number\n\n connect() {\n if (this.postingIdTarget.value !== '') {\n this.updateTaxRate()\n Modal.getOrCreateInstance(document.querySelector('#purchase-asset-new-modal')).show()\n }\n this.toggleAccountingDescription()\n this.addEventListenersForInvoiceAssetButtons()\n }\n\n addEventListenersForInvoiceAssetButtons() {\n document.querySelectorAll('[data-bs-target=\"#purchase-asset-new-modal\"]').forEach((buttonElement) => {\n buttonElement.addEventListener('click', (event) => {\n const button = event.target as HTMLButtonElement\n if (button.dataset.fillNewAssetData === 'true') {\n this.fillNewAssetForm(event)\n }\n })\n })\n }\n\n fillNewAssetForm(event) {\n const button = event.target\n const flatpickrController = this.application.getControllerForElementAndIdentifier(\n this.purchaseDateTarget,\n 'flatpickr',\n ) as Flatpickr\n if (button.dataset.posting === 'true') {\n const date = new Date(button.dataset.purchaseDate)\n this.purchasePriceTarget.value = button.dataset.purchasePrice\n flatpickrController.fp.setDate(date)\n let option = this.balanceAccountTarget.querySelector(\"option[value='\" + button.dataset.balanceAccount + \"']\")\n if (option !== null) {\n $(this.balanceAccountTarget).val(button.dataset.balanceAccount).trigger('change')\n } else {\n this.balanceAccountTarget.dispatchEvent(\n Object.assign(new Event('set'), {\n id: button.dataset.balanceAccount,\n text: button.dataset.balanceAccountName,\n }),\n )\n }\n $(this.balanceAccountTarget).val(button.dataset.balanceAccount).trigger('change')\n this.postingIdTarget.value = button.dataset.postingId\n this.handleBalanceAccountChange()\n } else {\n flatpickrController.fp.clear()\n $(this.balanceAccountTarget).val(null).trigger('change')\n $(this.depreciationAccountTarget).val(null).trigger('change')\n this.postingIdTarget.value = ''\n this.purchasePriceTarget.value = ''\n this.depreciationAccountTarget.disabled = true\n }\n this.handlePurchaseDateChange()\n this.handlePurchasePriceChange()\n }\n\n handlePurchasePriceChange() {\n if (this.accountingValueTarget.getAttribute('data-modified') === 'false') {\n this.accountingValueTarget.value = this.purchasePriceTarget.value\n this.updateDepreciationAmount()\n }\n this.updateAdvancedDataVisibility()\n }\n\n handleAccountingValueChange() {\n if (this.accountingValueTarget.getAttribute('data-modified') === 'false') {\n this.accountingValueTarget.setAttribute('data-modified', 'true')\n }\n this.updateDepreciationAmount()\n }\n\n handleBalanceAccountChange() {\n this.updateAdvancedDataVisibility()\n this.depreciationAccountTarget.disabled = false\n this.updateTaxSelectBox()\n this.updateAccountingDepreciation()\n }\n\n handlePurchaseDateChange() {\n if (this.purchaseDateTarget.value !== '') {\n const date = new Date(this.purchaseDateTarget.value)\n this.year = date.getFullYear()\n this.startYearTarget.value = this.year.toString()\n\n this.updateAccountingStartDate(date)\n this.updateAdvancedDataVisibility()\n this.updateTaxSelectBox()\n }\n }\n\n updateAdvancedDataVisibility() {\n if (\n this.purchasePriceTarget.value !== '' &&\n this.purchaseDateTarget.value !== '' &&\n this.balanceAccountTarget.value !== '' &&\n this.depreciationAccountTarget.value !== ''\n ) {\n this.advancedDataTarget.classList.remove('d-none')\n this.submitButtonTarget.disabled = false\n } else {\n this.advancedDataTarget.classList.add('d-none')\n this.submitButtonTarget.disabled = true\n }\n }\n\n updateTaxSelectBox() {\n if (this.year === undefined || this.balanceAccountTarget.value == '') {\n return\n }\n\n let previouslySelectedOption = this.taxGroupSelectorTarget.value\n let balanceToTaxGroup = JSON.parse(this.balanceAccountToTaxGroupValue)[\n this.balanceAccountTarget.value\n ] as BalanceToTaxGroup\n let optionArrays = JSON.parse(this.taxGroupsValue)[this.year] as Array>\n if (optionArrays !== undefined) {\n optionArrays = optionArrays.filter((elem) => {\n return balanceToTaxGroup['allowed'].includes(elem[1])\n })\n let i,\n L = this.taxGroupSelectorTarget.options.length - 1\n for (i = L; i >= 0; i--) {\n this.taxGroupSelectorTarget.remove(i)\n }\n optionArrays.forEach((element) => {\n let option = document.createElement('option') as HTMLOptionElement\n option.text = element[0] as string\n option.value = element[1] as string\n option.dataset.rate = element[2]['data-rate']\n this.taxGroupSelectorTarget.add(option)\n })\n if (previouslySelectedOption) {\n this.taxGroupSelectorTarget.value\n } else {\n this.taxGroupSelectorTarget.value = balanceToTaxGroup['default']\n }\n this.updateTaxRate()\n }\n }\n\n updateAccountingDepreciation() {\n this.updateDepreciationType()\n // Linear description\n const date = new Date(this.startDateTarget.value)\n const durationValue = this.durationValueTarget.value === '' ? 0 : this.durationValueTarget.value\n const duration = `${durationValue} ${this.durationUnitsTarget.selectedOptions[0].innerText}`\n const startMonthYear = date.toLocaleDateString(i18n.locale, { month: 'long', year: 'numeric' })\n const endDate = this._calculateDepreciationEndDate(date)\n this.descriptionStartDateTarget.innerText = startMonthYear\n this.descriptionDurationTarget.innerText = duration\n this.descriptionEndDateTargets.forEach((element) => {\n element.innerText = endDate\n })\n\n // Percent description\n this.descriptionPercentStrTarget.innerText = this.depreciationRateTarget.value\n this.descriptionStartYearDateTarget.innerText = new Date(this.startDateTarget.value).getFullYear().toString()\n }\n\n toggleAccountingDescription() {\n if (this.depreciationTypeTarget.value == 'linear_depreciation') {\n this.descriptionLinearTarget.classList.remove('d-none')\n this.descriptionPercentTarget.classList.add('d-none')\n this.durationWrapperTarget.classList.remove('d-none')\n this.depreciationRateWrapperTarget.classList.add('d-none')\n } else {\n this.depreciationRateWrapperTarget.classList.remove('d-none')\n this.durationWrapperTarget.classList.add('d-none')\n this.descriptionLinearTarget.classList.add('d-none')\n this.descriptionPercentTarget.classList.remove('d-none')\n }\n }\n\n updateAccountingStartDate(date) {\n const flatpickrController = this.application.getControllerForElementAndIdentifier(\n this.startDateTarget,\n 'flatpickr-month',\n ) as Flatpickr\n flatpickrController.fp.setDate(date)\n this.updateAccountingDepreciation()\n }\n\n updateTaxRate() {\n let selectedOption = this.taxGroupSelectorTarget.selectedOptions[0]\n let rate = ''\n if (selectedOption !== undefined) {\n rate = selectedOption.dataset.rate\n } else {\n rate = this.taxGroupSelectorTarget.options[0].dataset.rate\n }\n this.taxRateTarget.value = rate\n this.depreciationRateTarget.value = rate\n\n if (rate == 'null' || parseInt(rate) == 0) {\n this.taxGroupDetailsTarget.classList.add('d-none')\n } else {\n this.taxGroupDetailsTarget.classList.remove('d-none')\n }\n }\n\n updateDepreciationType() {\n let selectedOption = this.taxGroupSelectorTarget.selectedOptions[0].value\n let isImmaterial = selectedOption === 'immaterial_asset' || selectedOption === 'none'\n let type = isImmaterial ? 'linear_depreciation' : 'percent_depreciation'\n // Only switch if we have the option available.\n // At the moment only ENK have the option to use percent as depreciation method\n if (Array.prototype.slice.call(this.depreciationTypeTarget.options).find((el) => el.value == type)) {\n this.depreciationTypeTarget.value = type\n this.toggleAccountingDescription()\n }\n }\n\n _calculateDepreciationEndDate(date) {\n let endDate\n if (this.durationValueTarget.value === '') {\n endDate = date\n } else {\n if (this.durationUnitsTarget.value == 'year') {\n endDate = new Date(date.setFullYear(date.getFullYear() + parseInt(this.durationValueTarget.value)))\n } else {\n endDate = new Date(date.setMonth(date.getMonth() + parseInt(this.durationValueTarget.value)))\n }\n }\n return endDate.toLocaleDateString(i18n.locale, { month: 'long', year: 'numeric' })\n }\n\n updateDepreciationAmount() {\n let wreckAmount = new Decimal(0)\n let accountingAmount = parseDecimal(this.accountingValueTarget.value, new Decimal(0))\n let durationMonths = parseDecimal(this.durationValueTarget.value)\n let depreciationAmount\n if (this.wreckValueTarget.value !== '') {\n wreckAmount = parseDecimal(this.wreckValueTarget.value, new Decimal(0))\n }\n if (this.durationUnitsTarget.value == 'year') {\n durationMonths = durationMonths.times(12)\n }\n depreciationAmount = accountingAmount.minus(wreckAmount).div(durationMonths)\n const depreciationAmountText = amountStr(depreciationAmount)\n this.descriptionAmountTarget.innerText = depreciationAmountText\n }\n\n enableParent(event) {\n event.preventDefault()\n const inputElement = event.target.parentElement.parentElement.querySelector('input')\n inputElement.readOnly = false\n inputElement.dataset.modified = true\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['card']\n\n declare cardTargets: HTMLFormElement[]\n\n connect() {\n if (this.cardTargets.length > 0) {\n let checkedCard = this.cardTargets.find((e) => e.querySelector('input').checked)\n if (checkedCard) {\n checkedCard.checked = true\n checkedCard.classList.add('border-primary', 'border-2')\n } else {\n this.cardTargets[0].checked = true\n this.cardTargets[0].classList.add('border-primary', 'border-2')\n }\n }\n }\n\n onChecked(event) {\n this.cardTargets.forEach((e) => e.classList.remove('border-primary', 'border-2'))\n event.target.parentElement.classList.add('border-primary', 'border-2')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { BulkActionParams } from '../bulk_action_table_controller'\nimport { rails_fetch } from '../../util/rails_fetch'\n\nexport default class extends Controller {\n async approve(params: BulkActionParams) {\n const checkedRows = params.checkedRows\n const hashIds = checkedRows\n .map((row) => row.querySelector('div[payment-hashid]')?.getAttribute('payment-hashid'))\n .filter(Boolean)\n\n const url = `/${(window as any).current_company_id}/payments/approve`\n\n const data = {\n payment_id: hashIds,\n }\n\n await rails_fetch(url, {\n method: 'POST',\n body: JSON.stringify(data),\n })\n .then((response) => response.text())\n .then((data) => {\n eval(data)\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n handleChangeDate(event) {\n event.preventDefault()\n let reverseDateList = event.target.parentElement.parentElement.querySelectorAll('input')\n // Did not find a better way to remove disabled from flatpickr as it has different fields for\n // the input and the value that is sent in. It does not support readonly and it did not work to wrap\n // the whole field inside another div and disable/enable that div. Feel free to fix this if you know a\n // better way.\n for (let i = 0; i < reverseDateList.length; i++) {\n reverseDateList[i].disabled = false\n reverseDateList[i].classList.remove('disabled')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['submitButton', 'employees']\n\n declare employeesTargets: Array\n declare submitButtonTarget: HTMLButtonElement\n\n employeeTicked() {\n if (this.employeesTargets.some((input) => input.checked)) {\n this.submitButtonTarget.classList.remove('disabled')\n this.submitButtonTarget.disabled = false\n } else {\n this.submitButtonTarget.classList.add('disabled')\n this.submitButtonTarget.disabled = true\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['amount']\n\n declare amountTarget: HTMLInputElement\n\n typeChanged(event: Event): void {\n const val = (event.target as HTMLInputElement).value\n const amountLabel = this.amountTarget.querySelector('label')\n\n switch (val) {\n case 'fixed_salary':\n this.amountTarget.classList.remove('d-none')\n amountLabel.innerHTML = i18n.t('salary.wage_type.yearly_salary')\n break\n case 'hour_salary':\n this.amountTarget.classList.remove('d-none')\n amountLabel.innerHTML = i18n.t('activerecord.attributes.salary/recurring_payslip_line_item.rate')\n break\n case 'none':\n this.amountTarget.classList.add('d-none')\n break\n default:\n throw new Error(`Unknown salary type ${val}`)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['extraFields']\n\n declare extraFieldsTarget: HTMLInputElement\n\n toggleExtraFields(event: Event): void {\n const val = (event.target as HTMLInputElement).value\n if (val == 'yes') {\n this.extraFieldsTarget.classList.remove('d-none')\n } else {\n this.extraFieldsTarget.classList.add('d-none')\n }\n }\n}\n","import CrudTableController from '../../crud_table_controller'\nimport { Turbo } from '@hotwired/turbo-rails'\n\nexport default class extends CrudTableController {\n destroy(hashid: string): void {\n // We reload the page to make sure we reload the button.\n Turbo.visit(location.toString())\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Select2Builder from '../../standalone/components/Select2Builder'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n initialize() {\n let $element = $(this.element)\n\n $element.select2(\n new Select2Builder().createParams(`/salary/norwegian_standardised_occupations.json`, {\n minimumInputLength: 2,\n tags: false,\n placeholder: i18n.t('salary.employment.choose_standard_occupation'),\n dropdownParent: $element.parent().parent(),\n\n templateResult(repo) {\n if (repo.loading) {\n return repo.code\n }\n if (repo.code) {\n return $(`${repo.name} ${repo.code}`)\n }\n },\n templateSelection(selected) {\n if (selected.text) {\n return selected.text\n }\n return `${selected.name}`\n },\n }),\n )\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static targets = ['payrunOn', 'checkbox']\n\n declare payrunOnTarget: HTMLInputElement\n declare originalValue: string\n declare checkboxTargets: Array\n\n connect() {\n this.originalValue = this.payrunOnTarget.value\n this.hidePayrunSubmit()\n }\n\n dateChange(event) {\n if (isNaN(Date.parse(event.target.value)) || event.target.value === this.originalValue) {\n return\n }\n\n let companyHashId = window.location.pathname.split('/')[1]\n window.location.href = `/${companyHashId}/salary/payruns/new?payrun_on=${event.target.value}`\n }\n\n hidePayrunSubmit() {\n if (this.checkboxTargets.some((checkbox) => (checkbox as HTMLInputElement).checked)) {\n $('#create-empty-payrun-button').addClass('d-none')\n $('#create-payrun-button').removeClass('d-none')\n } else {\n $('#create-payrun-button').addClass('d-none')\n $('#create-empty-payrun-button').removeClass('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['checkBox', 'submit']\n\n declare checkBoxTarget: HTMLInputElement\n declare submitTarget: HTMLButtonElement\n declare hasCheckBoxTarget: boolean\n\n checkBoxHandler() {\n // One of the possible buttons is a button which opens a modal. The way modals works is that we use the data\n // target on the button to match and open the modal, so here we use id instead of setting it as a data-bs-target.\n if (this.submitTarget === null || !this.hasCheckBoxTarget) {\n return\n }\n\n if (this.checkBoxTarget.checked) {\n this.submitTarget.disabled = false\n this.submitTarget.classList.remove('disabled')\n } else {\n this.submitTarget.classList.add('disabled')\n this.submitTarget.disabled = true\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../../../classes/parse_decimal'\nimport { i18n } from '../../../libraries/i18n'\nimport Decimal from 'decimal.js'\n\nexport interface WageType {\n name: string\n deduction: boolean\n quantityType: string\n showAmount: boolean\n extraAltinnInfo: string\n attachmentOfEarningType: string\n hint: string\n hintType: string\n}\n\nexport default class extends Controller {\n static targets = [\n 'quantity',\n 'quantityWrapper',\n 'rate',\n 'total',\n 'wageType',\n 'purchaseCar',\n 'hint',\n 'makeRecurring',\n 'attachmentOfEarningOther',\n ]\n\n declare hasWageTypeTarget: boolean\n declare wageTypeTarget: HTMLSelectElement\n declare hasPurchaseCarTarget: boolean\n declare purchaseCarTarget: HTMLSelectElement\n declare rateTarget: HTMLInputElement\n declare quantityTarget: HTMLInputElement\n declare quantityWrapperTarget: HTMLInputElement\n declare totalTarget: HTMLInputElement\n declare hintTarget: HTMLDivElement\n declare hasMakeRecurringTarget: boolean\n declare makeRecurringTarget: HTMLElement\n declare attachmentOfEarningOtherTarget: HTMLElement\n\n selectedWageType: WageType\n\n connect() {\n this.setWageTypeData(JSON.parse(this.wageTypeTarget.dataset.definition)[0])\n }\n\n calculateTotal() {\n let quantityType = this.selectedWageType.quantityType\n if (!this.selectedWageType.showAmount) return\n\n let total = parseDecimal(this.quantityTarget.value).mul(parseDecimal(this.rateTarget.value, new Decimal(0)))\n\n if (quantityType === 'percent') {\n total = total.div(100)\n }\n\n this.totalTarget.value = new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n .format(total.toNumber())\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n }\n\n setWageType(event: CustomEvent) {\n this.setWageTypeData(event.detail.event.params.data)\n }\n\n private setWageTypeData(data) {\n this.selectedWageType = data\n\n let quantityType = this.selectedWageType.quantityType\n let showAmount = this.selectedWageType.showAmount\n let percentTemplate = `%`\n let label = this.quantityTarget.parentNode.previousSibling as HTMLElement\n label.innerText = i18n.t(`activerecord.attributes.salary/wage_type.quantity_type.${quantityType}`)\n switch (quantityType) {\n case 'percent':\n this.quantityWrapperTarget.classList.remove('d-none')\n this.quantityTarget.classList.add('text-end')\n this.quantityTarget.type = ''\n if (!(this.quantityTarget.nextSibling as HTMLElement)?.classList?.contains('input-group-text')) {\n this.quantityTarget.insertAdjacentHTML('afterend', percentTemplate)\n }\n this.rateTarget.parentElement.classList.remove('d-none')\n this.totalTarget.parentElement.classList.remove('d-none')\n break\n case 'hidden':\n this.quantityWrapperTarget.classList.add('d-none')\n this.totalTarget.parentElement.classList.add('d-none')\n break\n default:\n this.quantityWrapperTarget.classList.remove('d-none')\n this.quantityTarget.classList.remove('text-end')\n this.quantityTarget.type = 'string'\n if ((this.quantityTarget.nextSibling as HTMLElement)?.classList?.contains('input-group-text')) {\n this.quantityTarget.nextSibling.remove()\n }\n this.rateTarget.parentElement.classList.remove('d-none')\n this.totalTarget.parentElement.classList.remove('d-none')\n }\n if (!showAmount) {\n this.rateTarget.parentElement.classList.add('d-none')\n this.totalTarget.parentElement.classList.add('d-none')\n }\n\n if (this.selectedWageType.hint !== '') {\n if (this.selectedWageType.hintType == 'info') {\n this.showInfoAlert()\n } else {\n this.showWarningAlert()\n }\n } else {\n this.hintTarget.classList.add('d-none')\n }\n\n this.showPurchaseCarInputField()\n this.showAttachmentOfEarning()\n this.calculateTotal()\n }\n\n showInfoAlert() {\n this.hintTarget.classList.add('alert')\n this.hintTarget.classList.add('alert-info')\n this.hintTarget.classList.remove('alert-warning')\n this.hintTarget.innerHTML = this.selectedWageType.hint\n this.hintTarget.classList.remove('d-none')\n }\n\n showWarningAlert() {\n this.hintTarget.classList.add('alert')\n this.hintTarget.classList.add('alert-warning')\n this.hintTarget.classList.remove('alert-info')\n this.hintTarget.innerHTML = this.selectedWageType.hint\n this.hintTarget.classList.remove('d-none')\n }\n\n private showPurchaseCarInputField() {\n if (!this.hasPurchaseCarTarget || !this.hasWageTypeTarget) {\n return\n }\n\n if (\n this.selectedWageType.extraAltinnInfo == 'car_licence_plate' ||\n this.selectedWageType.extraAltinnInfo == 'car_license_plate_and_price'\n ) {\n this.purchaseCarTarget.style.display = 'block'\n } else {\n this.purchaseCarTarget.style.display = 'none'\n }\n }\n\n private showAttachmentOfEarning() {\n if (this.selectedWageType.attachmentOfEarningType === 'other_attachment_of_earning') {\n this.attachmentOfEarningOtherTarget.classList.remove('d-none')\n this.attachmentOfEarningOtherTarget.querySelectorAll('input').forEach((item) => {\n item.disabled = false\n })\n if (this.hasMakeRecurringTarget) {\n this.makeRecurringTarget.classList.add('d-none')\n this.makeRecurringTarget.querySelectorAll('input').forEach((item) => {\n item.disabled = true\n })\n }\n } else {\n this.attachmentOfEarningOtherTarget.classList.add('d-none')\n this.attachmentOfEarningOtherTarget.querySelectorAll('input').forEach((item) => {\n item.disabled = true\n })\n if (this.hasMakeRecurringTarget) {\n this.makeRecurringTarget.classList.remove('d-none')\n this.makeRecurringTarget.querySelectorAll('input').forEach((item) => {\n item.disabled = false\n })\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Turbo } from '@hotwired/turbo-rails'\nimport { Modal } from 'bootstrap'\n\nexport default class extends Controller {\n static targets = ['inputs', 'modal']\n\n declare inputsTarget: HTMLInputElement\n declare modalTarget: HTMLInputElement\n\n connect() {\n let urlParams = new URLSearchParams(window.location.search)\n if (urlParams.get('pension_report_amount_cents') !== null) {\n Modal.getOrCreateInstance(this.modalTarget).show()\n Turbo.navigator.history.push(location.pathname)\n }\n }\n\n submit(event: Event): void {\n event.preventDefault()\n this._copySelectedInputsToAltinnForm()\n Modal.getOrCreateInstance(this.element).hide()\n Modal.getOrCreateInstance(document.querySelector('#altinn-login-altinn-modal')).show()\n }\n\n _copySelectedInputsToAltinnForm() {\n const pinForm = document.getElementById('pin_form')\n let inputDiv = pinForm.querySelector('.hidden-inputs')\n if (inputDiv === null) {\n inputDiv = document.createElement('div')\n inputDiv.classList.add('hidden-inputs')\n pinForm.appendChild(inputDiv)\n } else {\n // reset in case it has been used earlier\n inputDiv.innerHTML = ''\n }\n\n const inputs = this.inputsTarget.querySelectorAll('input')\n\n for (let i = 0; i < inputs.length; i++) {\n const name = inputs[i].name\n if (name.trim().length > 0) {\n let hiddenInput = document.createElement('input')\n hiddenInput.type = 'hidden'\n hiddenInput.name = inputs[i].name\n hiddenInput.value = inputs[i].value\n inputDiv.appendChild(hiddenInput)\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Decimal from 'decimal.js'\nimport { parseDecimal } from '../../../classes/parse_decimal'\nimport { WageType } from '../payslip-line-items/edit_controller'\nimport { i18n } from '../../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['rate', 'amountFormGroup', 'amountInputGroup', 'purchaseCar', 'wageType']\n\n declare rateTarget: HTMLInputElement\n declare purchaseCarTarget: HTMLSelectElement\n declare hasPurchaseCarTarget: boolean\n declare amountFormGroupTarget: HTMLDivElement\n declare amountInputGroupTarget: HTMLDivElement\n declare hasWageTypeTarget: boolean\n declare wageTypeTarget: HTMLSelectElement\n\n selectedWageType: WageType\n amount\n\n connect() {\n this.setWageTypeData(JSON.parse(this.wageTypeTarget.dataset.definition)[0])\n this.reverseCalculateRate()\n this.showPurchaseCarInputField()\n }\n\n setWageType(event: CustomEvent) {\n this.setWageTypeData(event.detail.event.params.data)\n }\n\n amountChanged(event: Event) {\n this.amount = (event.target as HTMLInputElement).value\n this.calculateRate()\n }\n\n private setWageTypeData(data) {\n this.selectedWageType = data\n this.showPurchaseCarInputField()\n this.setVisibility()\n this.setLabelNames(data)\n this.setDeductionPrepend(data)\n this.calculateRate()\n }\n\n private calculateRate() {\n if (!this.amount) {\n return\n }\n\n if (this.selectedWageType.name === 'fixed_salary') {\n this.rateTarget.value = this.formatAmount(parseDecimal(this.amount).div(12))\n } else {\n if (this.selectedWageType.deduction) {\n this.rateTarget.value = this.formatAmount(parseDecimal(this.amount).neg())\n } else {\n this.rateTarget.value = this.amount\n }\n }\n }\n\n // This is needed when we do \"edit\" since we then get the rate and not the amount\n private reverseCalculateRate() {\n const amountInput = this.amountInputGroupTarget.querySelector('input')\n const rate = this.rateTarget.value\n if (this.selectedWageType.name === 'fixed_salary') {\n // In this case we round to the nearest whole amount\n // This might give a wrong cent amount, but it is almost always the right thing to do to show\n // a correct yearly amount.\n amountInput.value = this.formatAmount(parseDecimal(rate).times(12), false)\n } else {\n if (this.selectedWageType.deduction) {\n amountInput.value = this.formatAmount(parseDecimal(rate).neg())\n } else {\n amountInput.value = rate\n }\n }\n }\n\n private setVisibility() {\n this.amountFormGroupTarget.classList.remove('d-none')\n const inputColumn = this.rateTarget.closest('.d-none')\n if (inputColumn) {\n inputColumn.classList.remove('d-none')\n }\n }\n\n private setLabelNames(data: WageType) {\n const amountLabel = this.amountFormGroupTarget.querySelector('label')\n const rateLabel = this.rateTarget.parentNode.querySelector('label')\n // Ensure both are shown. We hide them below if necessary\n this.amountFormGroupTarget.parentElement.style.display = 'block'\n this.rateTarget.parentElement.style.display = 'block'\n switch (data.name) {\n case 'fixed_salary':\n amountLabel.innerHTML = i18n.t('salary.wage_type.yearly_salary')\n rateLabel.innerHTML = i18n.t('salary.wage_type.monthly_salary')\n break\n default:\n switch (data.quantityType) {\n case 'hidden':\n this.amountFormGroupTarget.parentElement.style.display = 'none'\n this.rateTarget.parentElement.style.display = 'none'\n break\n case 'percent':\n amountLabel.innerHTML = i18n.t('accounting.amount')\n rateLabel.innerHTML = i18n.t('salary.wage_type.totals')\n break\n default:\n amountLabel.innerHTML = i18n.t(`activerecord.attributes.salary/recurring_payslip_line_item.rate`)\n rateLabel.innerHTML = i18n.t('activerecord.attributes.salary/recurring_payslip_line_item.rate')\n this.rateTarget.parentElement.style.display = 'none'\n }\n }\n if (!data.showAmount) {\n this.amountFormGroupTarget.parentElement.style.display = 'none'\n this.rateTarget.parentElement.style.display = 'none'\n }\n }\n\n private setDeductionPrepend(data: WageType) {\n const prependDiv = this.amountFormGroupTarget.querySelector('.input-group-text')\n if (data.deduction) {\n this.amountInputGroupTarget.classList.add('input-group')\n prependDiv.classList.remove('d-none')\n } else {\n this.amountInputGroupTarget.classList.remove('input-group')\n prependDiv.classList.add('d-none')\n }\n }\n\n private formatAmount(amount: Decimal, decimals: boolean = true) {\n return (\n new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: decimals ? 2 : 0,\n maximumFractionDigits: decimals ? 2 : 0,\n })\n .format(amount.toNumber())\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n )\n }\n\n private showPurchaseCarInputField() {\n if (!this.hasPurchaseCarTarget || !this.hasWageTypeTarget) {\n return\n }\n\n if (\n this.selectedWageType.extraAltinnInfo == 'car_licence_plate' ||\n this.selectedWageType.extraAltinnInfo == 'car_license_plate_and_price'\n ) {\n this.purchaseCarTarget.style.display = 'block'\n } else {\n this.purchaseCarTarget.style.display = 'none'\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Select2Builder from '../../standalone/components/Select2Builder'\nimport $ from 'jquery'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static values = { date: String, recurringLine: String }\n\n declare dateValue: string\n declare hasDateValue: boolean\n declare recurringLineValue: string\n declare hasRecurringLineValue: boolean\n\n initialize() {\n let dropdownParent = this.element.closest('.modal') || document.body\n\n const url = `/${(window as any).current_company_id}/salary/wage_types.json`\n const queryParams = new URLSearchParams({\n date: this.hasDateValue ? this.dateValue : '',\n recurring_line: this.hasRecurringLineValue ? this.recurringLineValue : '',\n }).toString()\n\n $(this.element).select2(\n new Select2Builder().createParams(`${url}?${queryParams}`, {\n minimumInputLength: 0,\n tags: false,\n placeholder: i18n.t('salary.wage_type.choose_wage_type'),\n dropdownParent: dropdownParent,\n\n templateResult(wage_type) {\n // Don't modify the text on the loading indicator and group headers.\n if (wage_type.loading || wage_type.children) {\n return wage_type.text\n }\n if (wage_type.i18nName) {\n return $(`${wage_type.i18nName}`)\n }\n },\n templateSelection(selected) {\n if (selected.text === i18n.t('salary.wage_type.choose_wage_type')) return selected.text\n\n return selected.text\n },\n }),\n )\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['submitWithModal', 'submitWithoutModal']\n\n declare submitWithModalTarget: HTMLElement\n declare hasSubmitWithModalTarget: boolean\n declare submitWithoutModalTarget: HTMLElement\n declare hasSubmitWithoutModalTarget: boolean\n\n handleChange() {\n if (this.hasSubmitWithModalTarget && this.hasSubmitWithoutModalTarget) {\n this.submitWithoutModalTarget.classList.add('d-none')\n this.submitWithModalTarget.classList.remove('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../../../util/rails_fetch'\nimport JsFormError from '../../../standalone/components/JsFormError'\n\nexport default class extends Controller {\n static targets = ['preview', 'submit']\n\n declare previewTarget: HTMLElement\n declare submitTarget: HTMLButtonElement\n\n async preview(event) {\n event.preventDefault()\n\n const formData = new FormData()\n formData.append('sale_invoice_import[file]', event.target.files[0])\n\n const response = await rails_fetch(`/${(window as any).current_company_id}/sale/previews`, {\n method: 'POST',\n body: formData,\n })\n\n if (response.ok) {\n let data = await response.json()\n this.previewTarget.innerHTML = data.html\n this.submitTarget.disabled = false\n } else {\n let data = await response.json()\n new JsFormError('sale_invoice_import', data).updateForm()\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['fee', 'interest']\n\n declare feeTargets: Array\n declare interestTargets: Array\n\n updateFee(event) {\n this.feeTargets.forEach((fee) => {\n fee.value = event.target.value\n })\n }\n\n updateInterest(event) {\n this.interestTargets.forEach((element) => {\n element.checked = event.target.checked\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport Flatpickr from 'stimulus-flatpickr'\n\nexport default class extends Controller {\n static targets = ['invoiceWillRepeat', 'frequency', 'frequencyUnit', 'endingOption', 'endingOn']\n\n declare private invoiceWillRepeatTarget: HTMLSelectElement\n declare private hasInvoiceWillRepeatTarget: boolean\n declare private frequencyTarget: HTMLSelectElement\n declare private frequencyUnitTarget: HTMLInputElement\n declare private endingOptionTarget: HTMLSelectElement\n declare private endingOnTarget: HTMLInputElement\n\n connect() {\n this.toggleFrequencyOptions()\n this.toggleEndingOnDate()\n }\n\n toggleFrequencyOptions() {\n if (!this.hasInvoiceWillRepeatTarget) {\n return\n }\n\n const selectedOption = this.invoiceWillRepeatTarget.options[this.invoiceWillRepeatTarget.selectedIndex].value\n\n if (this.invoiceWillRepeatTarget.selectedIndex === this.invoiceWillRepeatTarget.options.length - 1) {\n this.showFrequencyOptions()\n } else {\n this.hideFrequencyOptions()\n this.updateFrequencyOptions(selectedOption)\n }\n }\n\n showFrequencyOptions() {\n this.frequencyTarget.closest('.col').classList.remove('d-none')\n this.frequencyUnitTarget.closest('.col').classList.remove('d-none')\n }\n\n hideFrequencyOptions() {\n this.frequencyTarget.closest('.col').classList.add('d-none')\n this.frequencyUnitTarget.closest('.col').classList.add('d-none')\n }\n\n updateFrequencyOptions(selectedOption) {\n this.frequencyTarget.value = this.frequencyTarget.options[0].value\n this.frequencyUnitTarget.value = selectedOption\n }\n\n toggleEndingOnDate() {\n const selectedOption = this.endingOptionTarget.options[this.endingOptionTarget.selectedIndex].value\n let flatpickr: Flatpickr = this.application.getControllerForElementAndIdentifier(this.endingOnTarget, 'flatpickr')\n if (selectedOption === 'never') {\n this.endingOnTarget.closest('.col').classList.add('d-none')\n this.endingOnTarget.value = null\n } else {\n this.endingOnTarget.closest('.col').classList.remove('d-none')\n if (flatpickr) {\n flatpickr.fp.open()\n }\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\n\nexport default class extends Controller {\n static targets = [\n 'unitPriceExVat',\n 'unitPriceIncVat',\n 'vatCode',\n 'hintExVat',\n 'hintIncVat',\n 'unitPriceIncVatCol',\n 'unitPriceExVatCol',\n ]\n declare unitPriceExVatTarget: HTMLInputElement\n declare unitPriceIncVatTarget: HTMLInputElement\n declare vatCodeTarget: HTMLSelectElement\n declare hintExVatTarget: HTMLSpanElement\n declare hintIncVatTarget: HTMLSpanElement\n declare unitPriceIncVatColTarget: HTMLDivElement\n declare unitPriceExVatColTarget: HTMLDivElement\n declare hasVatCodeTarget: boolean\n\n connect() {\n this.updatePriceIncVatField()\n }\n\n switch(event) {\n event.preventDefault()\n\n if (this.unitPriceIncVatColTarget.classList.contains('d-none')) {\n this.unitPriceIncVatColTarget.classList.remove('d-none')\n this.unitPriceExVatColTarget.classList.add('d-none')\n } else {\n this.unitPriceIncVatColTarget.classList.add('d-none')\n this.unitPriceExVatColTarget.classList.remove('d-none')\n }\n }\n\n updatePriceExVatField() {\n let vatRate = new Decimal(0)\n if (this.hasVatCodeTarget) {\n vatRate = parseDecimal(this.vatCodeTarget.options[this.vatCodeTarget.selectedIndex].getAttribute('vat_code_rate'))\n }\n let priceIncVat = parseDecimal(this.unitPriceIncVatTarget.value, new Decimal(0))\n let priceExVat = parseDecimal(this.formatAmount(priceIncVat.div(vatRate.add(1))))\n\n this.unitPriceExVatTarget.value = this.formatAmount(priceExVat)\n this.hintExVatTarget.innerText = this.formatAmount(priceExVat)\n this.hintIncVatTarget.innerText = this.unitPriceIncVatTarget.value\n }\n\n updatePriceIncVatField() {\n let vatRate = new Decimal(0)\n if (this.hasVatCodeTarget) {\n vatRate = parseDecimal(this.vatCodeTarget.options[this.vatCodeTarget.selectedIndex].getAttribute('vat_code_rate'))\n }\n let priceExcVat = parseDecimal(this.unitPriceExVatTarget.value, new Decimal(0))\n let vat = parseDecimal(this.formatAmount(priceExcVat.mul(vatRate)))\n\n this.unitPriceIncVatTarget.value = this.formatAmount(priceExcVat.add(vat))\n this.hintIncVatTarget.innerText = this.formatAmount(priceExcVat.add(vat))\n this.hintExVatTarget.innerText = this.unitPriceExVatTarget.value\n }\n\n handleVatChange() {\n this.updatePriceIncVatField()\n\n let vatRate = new Decimal(0)\n if (this.hasVatCodeTarget) {\n vatRate = parseDecimal(this.vatCodeTarget.options[this.vatCodeTarget.selectedIndex].getAttribute('vat_code_rate'))\n\n if (vatRate.eq(0)) {\n this.unitPriceIncVatColTarget.classList.add('d-none')\n this.unitPriceExVatColTarget.classList.remove('d-none')\n }\n }\n }\n\n private formatAmount(amount: Decimal) {\n return (\n new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n .format(amount.toNumber())\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n )\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static values = { urlParamNames: String, targetParamName: String, path: String }\n\n declare urlParamNamesValue: string\n declare targetParamNameValue: string\n declare pathValue: string\n\n replace() {\n let url = new URL(`${window.location.origin}${this.pathValue}`)\n this.urlParamNamesValue.split(' ').forEach((paramName) => {\n let param = new URL(window.location.href).searchParams.get(paramName)\n\n if (param != null) {\n let targetParamName = this.targetParamNameValue + '[' + paramName + ']'\n url.searchParams.set(targetParamName, param)\n }\n })\n\n let pages_number = '0'\n if (document.querySelector('.pagination') !== null) {\n pages_number = document.querySelector('.pagination').childElementCount.toString()\n }\n url.searchParams.set('pages', pages_number)\n\n let target = this.element as HTMLAnchorElement\n target.href = `${window.location.origin}${url.pathname}?${url.searchParams.toString()}`\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static values = {\n url: String,\n label: String,\n id: String,\n allowClear: Boolean,\n placeholder: String,\n dropdownParent: String,\n }\n\n declare hasUrlValue: boolean\n declare urlValue: string\n declare hasLabelValue: boolean\n declare labelValue: string\n declare hasIdValue: boolean\n declare idValue: string\n declare hasAllowClearValue: boolean\n declare allowClearValue: boolean\n declare hasPlaceholderValue: boolean\n declare placeholderValue: string\n declare hasDropdownParentValue: boolean\n declare dropdownParentValue: string\n\n connect() {\n this.element.classList.add('select2-input')\n let options: any = {\n theme: 'bootstrap',\n width: '100%',\n minimumInputLength: 0,\n }\n\n if (this.hasDropdownParentValue) {\n options.dropdownParent = $(`#${this.dropdownParentValue}`)\n } else {\n options.dropdownParent = this.element.closest('.modal') || document.body\n }\n\n if (this.hasAllowClearValue) {\n options.allowClear = this.allowClearValue\n if (!this.hasPlaceholderValue) {\n options.placeholder = ''\n }\n }\n\n if (this.hasPlaceholderValue) {\n options.placeholder = this.hasPlaceholderValue\n }\n\n options = this.setupAjax(options)\n $(this.element).select2(options)\n\n $(this.element).on('change', (event) => {\n this._dispatch('select2:change')\n })\n }\n\n setupAjax(options: any) {\n if (!this.hasUrlValue) return options\n if (!this.hasLabelValue || !this.hasIdValue) console.error('Label and/or value is not defined')\n\n options.ajax = {\n url: this.urlValue,\n dataType: 'json',\n\n data: (params) => {\n return { term: params.term }\n },\n processResults: (data) => {\n return {\n results: data.map((item) => {\n return { id: item[this.idValue], text: item[this.labelValue] }\n }),\n }\n },\n }\n return options\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { isWithinInterval, max } from 'date-fns'\n\nexport default class extends Controller {\n static targets = [\n 'select', // Select to filter out options\n 'beginningOn', // Used in dateRange filter\n 'endingOn', // Used in dateRange filter\n ]\n\n static values = { type: String }\n\n declare beginningOnTarget: HTMLInputElement\n declare endingOnTarget: HTMLInputElement\n declare selectTarget: HTMLSelectElement\n declare typeValue: string\n\n connect() {\n this.filter()\n }\n\n filter() {\n switch (this.typeValue) {\n case 'between':\n this.filterOnDateRangeBetween()\n break\n case 'dateRangeIntersect':\n this.filterOnDateRangeIntersect()\n break\n }\n }\n\n filterOnDateRangeIntersect() {\n for (let i = 0; i < this.selectTarget.options.length; i++) {\n let beginningOnDate = new Date(this.beginningOnTarget.value || new Date(0, 1, 1))\n let endingOnDate = new Date(this.endingOnTarget.value || new Date(9999, 12, 31))\n let optionBeginningOnDate = new Date(this.selectTarget.options[i].dataset.beginningOn || new Date(0, 1, 1))\n let optionEndingOnDate = new Date(this.selectTarget.options[i].dataset.endingOn || new Date(9999, 12, 31))\n\n if (beginningOnDate <= optionEndingOnDate && endingOnDate >= optionBeginningOnDate) {\n this.selectTarget.options[i].style.display = 'block'\n } else {\n this.selectTarget.options[i].style.display = 'none'\n }\n }\n }\n\n filterOnDateRangeBetween() {\n Array.from(this.selectTarget.options).forEach((option) => {\n let beginningOnDate = new Date(this.beginningOnTarget.value || new Date(0, 1, 1))\n let endingOnDate = new Date(this.endingOnTarget.value || max([new Date(), beginningOnDate]))\n let optionBeginningOnDate = new Date(option.dataset.beginningOn || new Date(0, 1, 1))\n let optionEndingOnDate = new Date(option.dataset.endingOn || new Date(9999, 12, 31))\n\n const interval = { start: optionBeginningOnDate, end: optionEndingOnDate }\n if (isWithinInterval(beginningOnDate, interval) && isWithinInterval(endingOnDate, interval)) {\n option.style.display = 'block'\n } else {\n option.style.display = 'none'\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\n// This controller allows for sortable tables\n// It should be used in combination with Luca::Component::StimulusSortableTable\n\nexport default class extends Controller {\n static targets = ['form']\n\n declare formTarget: HTMLFormElement\n currentOrderAttribute: string\n\n reloadTable() {\n this.formTarget.dispatchEvent(new Event('submit', { bubbles: true }))\n }\n\n order(event) {\n event.preventDefault()\n this.currentOrderAttribute = event.target.dataset.orderAttribute\n this._findOrCreateOrderInput().value = this.currentOrderAttribute\n this.reloadTable()\n }\n\n _findOrCreateOrderInput(): HTMLInputElement {\n let input = this.formTarget.querySelector('[name=order]') as HTMLInputElement\n if (!input) {\n input = document.createElement('input')\n input.setAttribute('type', 'hidden')\n input.setAttribute('name', 'order')\n this.formTarget.appendChild(input)\n }\n return input\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nconst EXTENSION_WHITELIST = ['jpg', 'jpeg', 'png', 'webp']\nlet mouseClicked = false\n\nfunction fileExtension(url: string): string {\n return url.split(/\\?/)[0].split('.').pop().trim().toLowerCase()\n}\n\nfunction getImageType(url: string): string {\n let extension = fileExtension(url)\n if (!EXTENSION_WHITELIST.includes(extension)) return null\n\n if (extension === 'jpg') {\n return 'image/jpeg'\n } else {\n return `image/${extension}`\n }\n}\n\nexport default class extends Controller {\n static targets = [\n 'buttonRow',\n 'separator',\n 'left',\n 'right',\n 'splitView',\n 'showButton',\n 'preview',\n 'forceWrap',\n 'forceHide',\n 'hidden',\n ]\n declare hasPreviewTarget: boolean\n declare hasHiddenTarget: boolean\n declare hasShowButtonTarget: boolean\n declare leftTarget: HTMLElement\n declare previewTarget: HTMLObjectElement | HTMLIFrameElement\n declare rightTarget: HTMLElement\n declare separatorTarget: HTMLElement\n declare showButtonTarget: HTMLElement\n declare splitViewTarget: HTMLElement\n declare forceWrapTargets: Array\n declare forceHideTargets: Array\n\n connect() {\n if (!this.hasPreviewTarget) {\n return\n }\n this.adjustFlashAlert()\n\n this.handleKeyDown = this.handleKeyDown.bind(this)\n document.addEventListener('keydown', this.handleKeyDown)\n if (!this.hasHiddenTarget) {\n this.show()\n } else {\n this.hide()\n }\n }\n\n show(): void {\n this.resetPreview()\n this.rightTarget.classList.remove('d-none')\n if (this.hasShowButtonTarget) {\n this.showButtonTarget.classList.add('d-none')\n }\n this.leftTarget.classList.add('split-view__left')\n this.leftTarget.style.width =\n this.separatorTarget.getBoundingClientRect().left - this.leftTarget.getBoundingClientRect().left + 'px'\n this.handleSmallLeftWidth()\n }\n\n hide(): void {\n this.rightTarget.classList.add('d-none')\n if (this.hasShowButtonTarget) {\n this.showButtonTarget.classList.remove('d-none')\n }\n this.leftTarget.classList.remove('split-view__left')\n this.leftTarget.style.width = ''\n this.handleSmallLeftWidth()\n }\n\n handleKeyDown(event): void {\n if (event.key === 'Escape') {\n this.toggle()\n event.preventDefault()\n }\n }\n\n toggle(): void {\n if (this.rightTarget.classList.contains('d-none')) {\n this.show()\n } else {\n this.hide()\n }\n }\n\n dragstart(): void {\n mouseClicked = true\n this.previewTarget.classList.add('split-view--prevent-events')\n this.leftTarget.classList.add('split-view--prevent-events')\n this.splitViewTarget.classList.add('split-view--prevent-marking')\n }\n\n dragend(): void {\n if (!this.hasPreviewTarget) {\n return\n }\n mouseClicked = false\n this.previewTarget.classList.remove('split-view--prevent-events')\n this.leftTarget.classList.remove('split-view--prevent-events')\n this.splitViewTarget.classList.remove('split-view--prevent-marking')\n }\n\n drag(event): void {\n if (mouseClicked) {\n let leftWidth = this.separatorTarget.getBoundingClientRect().left - this.leftTarget.getBoundingClientRect().left\n let rightWidth = window.innerWidth - event.clientX - this.separatorTarget.getBoundingClientRect().width * 1.5\n this.leftTarget.style.width = leftWidth + 'px'\n this.rightTarget.style.width = rightWidth + 'px'\n this.handleSmallLeftWidth()\n }\n }\n\n setPreviewType(): void {\n if (!this.hasPreviewTarget) {\n return\n }\n let imageType = getImageType(this.urlFromPreviewTarget())\n\n if (imageType) {\n this.previewTarget.setAttribute('type', imageType)\n this.previewTarget.classList.add('preview__image')\n } else if (this.isSafari()) {\n this.createSafariFriendlyIFrame()\n } else {\n this.previewTarget.setAttribute('type', 'application/pdf')\n this.previewTarget.classList.add('preview__pdf')\n }\n }\n\n handleSmallLeftWidth(): void {\n let leftWidth = this.separatorTarget.getBoundingClientRect().left - this.leftTarget.getBoundingClientRect().left\n let bootstrapMdWidth = parseFloat(\n getComputedStyle(this.leftTarget).getPropertyValue('--breakpoint-md').replace(/\\D/g, ''),\n )\n\n if (leftWidth < bootstrapMdWidth && this.leftTarget.style.width) {\n for (let wrapTarget in this.forceWrapTargets) {\n this.forceWrapTargets[wrapTarget].classList.add('flex-column')\n }\n\n for (let targetToHide in this.forceHideTargets) {\n this.forceHideTargets[targetToHide].classList.add('d-none')\n }\n } else {\n for (let wrapTarget in this.forceWrapTargets) {\n this.forceWrapTargets[wrapTarget].classList.remove('flex-column')\n }\n\n for (let targetToHide in this.forceHideTargets) {\n this.forceHideTargets[targetToHide].classList.remove('d-none')\n }\n }\n }\n\n adjustFlashAlert(): void {\n const flashAlert = document.querySelector('#flash_alert')\n if (flashAlert) {\n this.leftTarget.insertBefore(flashAlert, this.leftTarget.firstChild)\n }\n }\n\n isSafari(): boolean {\n return navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1\n }\n\n createSafariFriendlyIFrame(): void {\n let iframeSafari = document.createElement('iframe')\n iframeSafari.setAttribute('src', this.urlFromPreviewTarget())\n iframeSafari.classList.add('preview__pdf-safari')\n iframeSafari.setAttribute('data-split-view-target', 'preview')\n iframeSafari.setAttribute('data-preview-target', 'preview')\n this.previewTarget.parentNode.removeChild(this.previewTarget)\n let elementNow = document.getElementsByClassName('split-view__preview-wrapper')[0]\n elementNow.append(iframeSafari)\n }\n\n removeHighlights(): void {\n let highlightedElements = document.querySelectorAll('a.fw-bold[data-action=\"inbox#preview\"]')\n Array.from(highlightedElements).forEach((highlightedElement) => {\n highlightedElement.classList.remove('fw-bold')\n })\n }\n\n resetPreview(): void {\n this.previewTarget.className = ''\n this.removeHighlights()\n this.hide()\n this.setPreviewType()\n }\n\n urlFromPreviewTarget(): string {\n let url: string\n if (this.previewTarget.nodeName === 'IFRAME') {\n url = (this.previewTarget as HTMLIFrameElement).src\n } else {\n url = (this.previewTarget as HTMLObjectElement).data\n }\n return url\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { nextFrame } from '../../../rendering'\nimport $ from 'jquery'\nimport JsFormError from '../../../standalone/components/JsFormError'\nimport { i18n } from '../../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = [\n 'name',\n 'isin',\n 'listedInTheStockMarket',\n 'foreignCompany',\n 'exemptionMethod',\n 'sameConcern',\n 'longtermInvestment',\n 'percentRangeOwned',\n 'tradeAccount',\n 'profitAccount',\n 'lossAccount',\n ]\n static values = {\n accounts: { type: Object, default: {} },\n }\n\n declare listedInTheStockMarketTarget: HTMLInputElement\n declare foreignCompanyTarget: HTMLInputElement\n declare exemptionMethodTarget: HTMLInputElement\n declare sameConcernTarget: HTMLInputElement\n declare longtermInvestmentTarget: HTMLInputElement\n declare percentRangeOwnedTarget: HTMLInputElement\n declare tradeAccountTarget: HTMLInputElement\n declare profitAccountTarget: HTMLInputElement\n declare lossAccountTarget: HTMLInputElement\n declare accountsValue: object\n\n connect() {\n this._handleAjaxError = this._handleAjaxError.bind(this)\n nextFrame(() => this.showInputs())\n }\n\n showInput(show, ...inputs) {\n const klass = show ? 'block' : 'none'\n inputs.forEach((input) => {\n $(input).parent()[0].style.display = klass\n if (!show) input.value = ''\n })\n }\n\n showInputs() {\n this.showInput(true, this.listedInTheStockMarketTarget)\n this.showInput(this.listedInTheStockMarketTarget.value !== '', this.foreignCompanyTarget)\n this.showInput(this.foreignCompanyTarget.value === 'true', this.exemptionMethodTarget)\n if (this.listedInTheStockMarketTarget.value === '' || this.listedInTheStockMarketTarget.value === 'true') {\n this.showInput(false, this.percentRangeOwnedTarget, this.longtermInvestmentTarget, this.sameConcernTarget)\n } else {\n this.showInput(true, this.longtermInvestmentTarget)\n if (this.longtermInvestmentTarget.value === 'true') {\n this.showInput(true, this.percentRangeOwnedTarget)\n this.showInput(false, this.sameConcernTarget)\n } else if (this.longtermInvestmentTarget.value === 'false') {\n this.showInput(true, this.sameConcernTarget)\n this.showInput(false, this.percentRangeOwnedTarget)\n }\n }\n let listedInTheStockMarket = this.listedInTheStockMarketTarget.value === 'true'\n let foreignCompany = this.foreignCompanyTarget.value === 'true'\n let exemptionMethod = this.exemptionMethodTarget.value === 'true'\n let sameConcern = this.sameConcernTarget.value === 'true'\n let longtermInvestment = this.longtermInvestmentTarget.value === 'true'\n let percentRangeOwned = this.percentRangeOwnedTarget.value\n\n let chosenAccount = Object.keys(this.accountsValue).find(\n (key) =>\n this.accountsValue[key].listed_in_the_stock_market === listedInTheStockMarket &&\n this.accountsValue[key].foreign_company === foreignCompany &&\n (this.accountsValue[key].exemption_method || false) === exemptionMethod &&\n (this.accountsValue[key].same_concern || false) === sameConcern &&\n this.accountsValue[key].longterm_investment === longtermInvestment &&\n (this.accountsValue[key].percent_range_owned || '') === percentRangeOwned,\n )\n\n if (chosenAccount !== undefined) {\n this.tradeAccountTarget.innerText = this.accountText(chosenAccount)\n\n this.profitAccountTarget.innerText = this.accountText(this.accountsValue[chosenAccount].profit_account)\n this.lossAccountTarget.innerText = this.accountText(this.accountsValue[chosenAccount].loss_account)\n } else {\n this.tradeAccountTarget.innerText = null\n this.profitAccountTarget.innerText = null\n this.lossAccountTarget.innerText = null\n }\n }\n\n accountText(account) {\n return `${account} - ${i18n.t(`norwegian_account_plan.level_3.${account}.name`)}`\n }\n\n _handleAjaxError(event) {\n const data = event.detail[0]\n new JsFormError(data.model_name, data).updateForm()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../../../classes/parse_decimal'\nimport Decimal from 'decimal.js'\n\nexport default class extends Controller {\n static targets = [\n 'stockSelect',\n 'bankAccountSelect',\n 'noPurchasesWarning',\n 'tradeType',\n 'tradePartTotal',\n 'brokerageFee',\n 'total',\n 'openingInventoryElement',\n 'openingInventoryInfo',\n ]\n\n declare stockSelectTarget: HTMLSelectElement\n declare bankAccountSelectTarget: HTMLSelectElement\n declare noPurchasesWarningTarget: HTMLElement\n declare tradeTypeTarget: HTMLSelectElement\n declare hasNoPurchasesWarningTarget: boolean\n declare brokerageFeeTarget: HTMLInputElement\n declare tradePartTotalTargets: Array\n declare totalTarget: HTMLElement\n declare openingInventoryElementTargets: HTMLElement[]\n declare openingInventoryInfoTarget: HTMLElement\n\n emptyStockId: any\n\n connect() {\n this.addNoPurchasesWarningListeners()\n this.hideopeningInventorySections()\n }\n\n handleStockCreate(event) {\n const { model } = event\n const option = new Option(model.name, model.id, true, true)\n this.stockSelectTarget.append(option)\n event.preventDefault()\n }\n\n handleBankAccountCreate(event) {\n const { model } = event\n const option = new Option(`${model.name} - ${model.number}`, model.id, true, true)\n this.bankAccountSelectTarget.append(option)\n event.preventDefault()\n }\n\n calculateTotal() {\n let total = parseDecimal(this.brokerageFeeTarget.value, new Decimal(0))\n if (this.tradeTypeTarget.value == 'sale') total = total.times(new Decimal(-1))\n\n this.tradePartTotalTargets.forEach((part) => {\n total = total.plus(parseDecimal(part.value, new Decimal(0)))\n })\n this.totalTarget.innerText = new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n .format(total.toNumber())\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n }\n\n addNoPurchasesWarningListeners() {\n // We have only checked the stock that was preselected, if stock change we can hide the message\n this.emptyStockId = this.stockSelectTarget.selectedOptions[0].value\n this.stockSelectTarget.addEventListener('change', (event) => {\n this._hideNoPurchasesWarning(!this._isEmptyStockSelected() || this._isPurchaseSelected())\n })\n this.tradeTypeTarget.addEventListener('change', (event) => {\n if (!this._isEmptyStockSelected()) this._hideNoPurchasesWarning(true)\n this._hideNoPurchasesWarning(this._isPurchaseSelected())\n this.hideopeningInventorySections()\n })\n }\n\n hideopeningInventorySections() {\n this.openingInventoryElementTargets.forEach((el) => {\n el.style.display = this.tradeTypeTarget.value == 'opening_inventory' ? 'none' : 'block'\n })\n this.openingInventoryInfoTarget.style.display = this.tradeTypeTarget.value == 'opening_inventory' ? 'block' : 'none'\n }\n\n _hideNoPurchasesWarning(condition) {\n if (this.hasNoPurchasesWarningTarget) {\n if (condition) {\n this.noPurchasesWarningTarget.hidden = true\n } else {\n this.noPurchasesWarningTarget.removeAttribute('hidden')\n }\n }\n }\n\n _isEmptyStockSelected() {\n return this.stockSelectTarget.selectedOptions[0].value === this.emptyStockId\n }\n\n _isPurchaseSelected() {\n return this.tradeTypeTarget.selectedOptions[0].value === 'purchase'\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.35.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar validateLoadParams = function validateLoadParams(params) {\n var errorMessage = \"invalid load parameters; expected object of shape\\n\\n {advancedFraudSignals: boolean}\\n\\nbut received\\n\\n \".concat(JSON.stringify(params), \"\\n\");\n\n if (params === null || _typeof(params) !== 'object') {\n throw new Error(errorMessage);\n }\n\n if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {\n return params;\n }\n\n throw new Error(errorMessage);\n};\n\nvar loadParams;\nvar loadStripeCalled = false;\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadStripeCalled = true;\n var startTime = Date.now();\n return loadScript(loadParams).then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nloadStripe.setLoadParameters = function (params) {\n if (loadStripeCalled) {\n throw new Error('You cannot change load parameters after calling loadStripe');\n }\n\n loadParams = validateLoadParams(params);\n};\n\nexports.loadStripe = loadStripe;\n","module.exports = require('./dist/pure.js');\n","import { Controller } from '@hotwired/stimulus'\nimport { loadStripe } from '@stripe/stripe-js/pure'\nimport { rails_fetch } from '../../util/rails_fetch'\nimport { i18n } from '../../libraries/i18n'\n\n// When performing an instant payment the following flow happens:\n// stripe_checkout_controller.ts Stripe form CreatePaymentIntent UpdatePaymentIntent Stripe\n// | Open form | | | |\n// +------------------------> | | |\n// | | Submit | | |\n// | +-----------------> | |\n// | | | createIntent | |\n// | | +---------------------+-------------->\n// | | | response | |\n// | | <---------------------+--------------+\n// | | | | |\n// <------------------------+-----------------+ | |\n// | | confirmIntent | |\n// +------------------------+---------------------------------------+-------------->\n// | | response | |\n// <------------------------+---------------------------------------+--------------+\n// | | redirect | |\n// +------------------------+-----------------+---------------------> |\n// | | | | |\n\nexport default class extends Controller {\n static values = {\n mount: String,\n amountCents: Number,\n companyHashid: String,\n paymentIntentEndpoint: String,\n callbackUrl: String,\n }\n static targets = [\n 'alert',\n 'errorMessage',\n 'paymentElement',\n 'paymentForm',\n 'submitButton',\n 'useCardInFuture',\n 'totalAmount',\n ]\n\n declare mountValue: string\n declare amountCentsValue: string\n declare paymentIntentEndpointValue: string\n declare companyHashidValue: string\n declare callbackUrlValue: string\n declare stripe: any\n declare alertTarget: HTMLElement\n declare errorMessageTarget: HTMLElement\n declare paymentElementTarget: HTMLElement\n declare paymentFormTarget: HTMLFormElement\n declare submitButtonTarget: HTMLButtonElement\n declare useCardInFutureTarget: HTMLInputElement\n declare hasUseCardInFutureTarget: boolean\n declare hasTotalAmountTarget: boolean\n declare totalAmountTarget: HTMLElement\n\n async connect() {\n if ((window as any).stripePublicKey !== undefined) {\n this.stripe = await loadStripe((window as any).stripePublicKey)\n }\n this.element.addEventListener('shown.bs.modal', () => {\n switch (this.mountValue) {\n case 'mountStripeCardSetup':\n this.mountStripeCardSetup()\n return\n case 'mountStripePayment':\n this.mountStripePayment()\n return\n default:\n console.error('Mount action not defined')\n this.disconnect()\n }\n })\n }\n\n async mountStripeCardSetup() {\n this.mountStripeElements(false)\n }\n\n async mountStripePayment() {\n this.mountStripeElements(true)\n }\n\n handleCheckBoxToggling() {\n let callbackUrl = new URL(this.callbackUrlValue)\n let urlParams = callbackUrl.searchParams\n urlParams.set('use_card_in_future', this.useCardInFutureTarget.checked.toString())\n callbackUrl.search = urlParams.toString()\n let updatedUrl = callbackUrl.toString()\n this.callbackUrlValue = updatedUrl\n }\n\n private async createStripeSetupIntent() {\n let response = await rails_fetch(`/${this.companyHashidValue}/subscription/stripe/setup_intents`, {\n method: 'POST',\n })\n let { client_secret } = await response.json()\n return client_secret\n }\n\n private async createStripeCustomer() {\n await rails_fetch(`/${this.companyHashidValue}/subscription/stripe/customers`, {\n method: 'POST',\n })\n }\n\n private async createStripePaymentIntent() {\n let response = await rails_fetch(\n `/${this.companyHashidValue}/subscription/stripe/payment_intents/${this.paymentIntentEndpointValue}`,\n { method: 'POST' },\n )\n let { client_secret } = await response.json()\n return client_secret\n }\n\n private async mountStripeElements(performPayment: boolean) {\n const options = {\n locale: i18n.locale,\n appearance: {\n /*...*/\n },\n } as any\n\n await this.createStripeCustomer()\n if (performPayment) {\n options.setup_future_usage = 'off_session'\n options.mode = 'payment'\n options.amount = this.amountCentsValue\n options.currency = 'nok'\n } else {\n options.clientSecret = await this.createStripeSetupIntent()\n }\n const elements = this.stripe.elements(options)\n const paymentElement = elements.create('payment')\n paymentElement.mount(this.paymentElementTarget)\n this.alertTarget.classList.remove('d-none')\n if (this.hasUseCardInFutureTarget) {\n this.useCardInFutureTarget.parentElement.classList.remove('d-none')\n }\n if (this.hasTotalAmountTarget) {\n this.totalAmountTarget.classList.remove('d-none')\n }\n this.submitButtonTarget.classList.remove('disabled', 'd-none')\n\n this.paymentFormTarget.addEventListener('submit', async (event) => {\n event.preventDefault()\n let originalText = this.submitButtonTarget.textContent\n this.submitButtonTarget.textContent = i18n.t('generic.please_wait')\n this.submitButtonTarget.classList.add('disabled')\n const { error: submitError } = await elements.submit() // Load the form\n if (submitError) {\n this.handleError(submitError)\n return\n }\n\n let error = null\n if (performPayment) {\n let clientSecret = await this.createStripePaymentIntent()\n error = await this.stripe.confirmPayment({\n //`Elements` instance that was used to create the Payment Element\n elements,\n clientSecret,\n confirmParams: {\n return_url: this.callbackUrlValue,\n },\n })\n } else {\n error = await this.stripe.confirmSetup({\n //`Elements` instance that was used to create the Payment Element\n elements,\n confirmParams: {\n return_url: this.callbackUrlValue,\n },\n })\n }\n\n if (error) {\n // This point will only be reached if there is an immediate error when\n // confirming the payment. Show error to your customer (for example, payment\n // details incomplete)\n this.errorMessageTarget.textContent = error.error.message\n this.errorMessageTarget.classList.remove('d-none')\n this.submitButtonTarget.textContent = originalText\n this.submitButtonTarget.classList.remove('disabled')\n } else {\n // Your customer will be redirected to your `return_url`. For some payment\n // methods like iDEAL, your customer will be redirected to an intermediate\n // site first to authorize the payment, then redirected to the `return_url`.\n }\n })\n }\n\n handleError(error) {\n this.errorMessageTarget.textContent = error.message\n this.errorMessageTarget.classList.remove('d-none')\n this.submitButtonTarget.classList.remove('disabled')\n this.submitButtonTarget.disabled = false\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { rails_fetch } from '../../util/rails_fetch'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['activating', 'main', 'error']\n static values = { purchaseUrl: String, callbackUrl: String }\n\n declare purchaseUrlValue: string\n declare callbackUrlValue: string\n declare activatingTarget: HTMLElement\n declare mainTarget: HTMLElement\n declare errorTarget: HTMLElement\n\n async activate(event) {\n event.preventDefault()\n this.errorTarget.classList.add('d-none')\n this.mainTarget.classList.add('d-none')\n this.activatingTarget.classList.remove('d-none')\n\n try {\n let activateResponse = await rails_fetch(this.purchaseUrlValue, {\n method: 'POST',\n })\n\n if (activateResponse.status === 200) {\n let response = await rails_fetch(this.callbackUrlValue, {\n method: 'POST',\n })\n\n let result = await response.json()\n\n if (result.redirect) {\n window.location.href = result.redirect\n } else {\n this.showError(result.error ?? i18n.t('generic.error_message'))\n }\n } else {\n let result = await activateResponse.json()\n this.showError(result.error ?? i18n.t('generic.error_message'))\n }\n } catch (err) {\n this.showError(i18n.t('generic.error_message'))\n console.error(err)\n }\n }\n\n private showError(msg) {\n this.errorTarget.innerHTML = msg\n this.errorTarget.classList.remove('d-none')\n this.activatingTarget.classList.add('d-none')\n this.mainTarget.classList.remove('d-none')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['uploadButton', 'fileInput']\n\n declare uploadButtonTarget: HTMLButtonElement\n declare fileInputTarget: HTMLElement\n\n connect() {\n this.handleUploadButtonClick = this.handleUploadButtonClick.bind(this)\n this.handleFileInputChange = this.handleFileInputChange.bind(this)\n this.setupAutoSubmit()\n }\n\n setupAutoSubmit() {\n this.uploadButtonTarget.addEventListener('click', this.handleUploadButtonClick)\n this.fileInputTarget.addEventListener('change', this.handleFileInputChange)\n }\n\n handleUploadButtonClick(event) {\n this.fileInputTarget.click()\n event.preventDefault()\n return false\n }\n\n handleFileInputChange(event) {\n ;(this.element as HTMLFormElement).submit()\n }\n}\n","export default class Vat {\n // Takes in a value including VAT, and returns a tuple with [value_ex_vat, vat]\n // The sum of the tuple is guaranteed to be the same as the value coming in\n // This adheres to the normal rules of how to decompose VAT.\n // Expects integer input (cents), and outputs cents as well\n // This method will return in exact cents, never decimals.\n inc_to_ex(val, rate) {\n const ex = Math.round(val / (1 + rate))\n const vat = val - ex\n\n return [ex, vat]\n }\n\n // This method can return decimal values. This is since many times this calculation will be used by\n // other methods, which might need the decimals in a bigger calculation before rounding to whole cents\n ex_to_inc(val, rate) {\n return val + this.vat(val, rate)\n }\n\n // This method rounds the value before calculating VAT. This is the correct way of calculating VAT\n vat(val, rate) {\n return Math.round(Math.round(val) * rate)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { nextFrame } from '../rendering'\nimport { isBefore, isFuture, isValid, parse, parseISO, setYear } from 'date-fns'\nimport PartnerSelectController from './partner/select_controller'\nimport FlatpickrController from './flatpickr_controller'\nimport VatRateController from './vat_rate_controller'\nimport { Modal } from 'bootstrap'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport Decimal from 'decimal.js'\nimport { amountStr } from './formatting_helper'\nimport NestedFormController from '../controllers/nested_form_controller'\nimport Vat from '../classes/vat'\nimport { i18n } from '../libraries/i18n'\n\nfunction isNaN(argument) {\n // NaN is the only floating value that is different from itself.\n return argument !== argument\n}\n\nexport default class extends Controller {\n static targets = [\n 'amount',\n 'totalAmount',\n 'totalAmountText',\n 'paymentHeaderLabel',\n 'invoiceNumber',\n 'invoiceTypeSelect',\n 'dueDateWarning',\n 'purchaseType',\n 'debitAccount',\n 'templatePostingLine',\n 'newPostingLine',\n 'postingLine',\n 'supplierSelect',\n 'transactionText',\n 'amountLabel',\n 'vatCodeSelect',\n 'newOrExisting',\n 'paymentOn',\n 'creditNoteWarning',\n 'paidBy',\n 'employees',\n 'recipientBankNumber',\n 'newOrExistingContainer',\n 'employeesContainer',\n 'deleteLineItem',\n 'postingDate',\n 'postingDateText',\n 'invoiceDate',\n 'dueDate',\n 'nestedFormController',\n 'vatAmount',\n 'paymentBlock',\n ]\n\n static values = { businessType: String }\n\n declare businessTypeValue: string\n\n declare vatAmountTargets\n declare amountTargets\n declare postingLineTargets\n declare newPostingLineTarget\n declare newPostingLineTargets\n declare invoiceDateTarget\n declare hasInvoiceDateTarget: boolean\n declare dueDateTarget\n declare hasDueDateTarget: boolean\n declare paymentOnTarget\n declare hasPaymentOnTarget: boolean\n declare supplierSelectTarget\n declare hasSupplierSelectTarget: boolean\n declare invoiceTypeSelectTarget\n declare hasInvoiceTypeSelectTarget: boolean\n declare dueDateWarningTarget\n declare hasDueDateWarningTarget: boolean\n declare invoiceNumberTarget\n declare hasInvoiceNumberTarget: boolean\n declare transactionTextTarget\n declare transactionTextTargets\n declare hasTransactionTextTarget: boolean\n declare hasVatCodeSelectTarget: boolean\n declare recipientBankNumberTarget\n declare hasRecipientBankNumberTarget: boolean\n declare postingDateTarget\n declare hasPostingDateTarget: boolean\n declare paidByTarget\n declare hasPaidByTarget: boolean\n declare paymentHeaderLabelTarget\n declare hasPaymentHeaderLabelTarget: boolean\n declare deleteLineItemTarget\n declare hasDeleteLineItemTarget: boolean\n declare deleteLineItemTargets\n declare hasDeleteLineItemTargets: boolean\n declare postingDateTextTarget\n declare creditNoteWarningTarget\n declare hasCreditNoteWarningTarget: boolean\n declare vatCodeSelectTargets\n declare vatCodeSelectTarget\n declare totalAmountTextTarget\n declare totalAmountTarget\n declare purchaseTypeTarget\n declare amountLabelTargets\n declare nestedFormControllerTarget\n declare hasPaymentBlockTarget: boolean\n declare paymentBlockTarget: HTMLElement\n\n invoiceDate: Date\n dueDate: Date\n currentSupplierName: string | null\n currentInvoiceNumber: string | null\n paidBy: string | null\n\n connect() {\n this.updateDueDateWarning = this.updateDueDateWarning.bind(this)\n this.updateVatCodes = this.updateVatCodes.bind(this)\n this._updateVatCodes = this._updateVatCodes.bind(this)\n this.initializeDates()\n this.handlePaidByChange()\n this.initialFocusOnSupplierInvoice()\n // We need to wait until this frame is done because otherwise the partner\n // controller wouldn't be properly set up.\n nextFrame(() => this.setupAutomaticTranscationText())\n\n // We need to update the codes in the next frame because the array of VAT\n // codes hasn't been evaluated at the time connect is called.\n nextFrame(() => this.updateVatCodes(null))\n\n if (this.postingLineTargets.length === 0 && this.newPostingLineTargets.length === 0) {\n // wait when nested-form controller is loaded\n nextFrame(() => {\n this._addNewPostingLine()\n })\n } else {\n this._updateDeleteLineItemButtonAvailability()\n this.updateTotalAmount()\n }\n\n this.updateLabelsAndInputNames()\n this.showAssetModal()\n this.showReopenVatModalIfExists()\n\n // update the payment_on field in case the field is moved by the move controller\n window.addEventListener('load', () => {\n if (this.hasDueDateTarget && this.dueDateTarget.value != '') {\n this._updatePaymentOn(parseISO(this.dueDateTarget.value))\n }\n })\n }\n\n vat = new Vat()\n updateVatAmount(event) {\n if (!event || !event.target) {\n return\n }\n\n const invoice_line_item = event.target.closest('.supplier-invoice-line-item')\n this.calculateVatAmount(invoice_line_item)\n }\n\n updateAllVatAmountFields() {\n document.querySelectorAll('.supplier-invoice-line-item').forEach((invoice_line_item) => {\n this.calculateVatAmount(invoice_line_item)\n })\n }\n\n // If you ever add codes 86, 87, 88 or 89 to this list, please update the calculation. The VAT rate calculation\n // for these codes are different from the regular way and that is NOT currently done correctly in our code here\n // (it is correct on the back end though)\n SHOW_VAT_AMOUNT_CODE_LIST = ['1', '11', '12', '13']\n calculateVatAmount(invoice_line_item) {\n const index = this.amountTargets.findIndex((input) => invoice_line_item.contains(input))\n\n const [amountInput, vatInput, vatAmountInputRow] = [\n this.amountTargets[index],\n this.vatCodeSelectTargets[index],\n this.vatAmountTargets[index],\n ]\n if (!vatAmountInputRow) return\n\n const vatAmountInput = vatAmountInputRow.querySelector('input')\n const vatAmountLabel = vatAmountInputRow.querySelector('label')\n\n if (!vatInput || !vatInput[vatInput.selectedIndex]) {\n return\n }\n\n const vatOption = vatInput[vatInput.selectedIndex]\n const code = vatOption.value\n\n if (!this.SHOW_VAT_AMOUNT_CODE_LIST.includes(code)) {\n vatAmountInput.classList.add('d-none')\n vatAmountLabel.classList.add('d-none')\n return\n }\n vatAmountInput.classList.remove('d-none')\n vatAmountLabel.classList.remove('d-none')\n\n const rate = parseDecimal(vatOption.getAttribute('rate')).toNumber()\n const amount = parseDecimal(amountInput.value).toNumber() * 100\n const result = this.vat.inc_to_ex(amount, rate)[1] / 100.0 || 0\n\n vatAmountInput.value = amountStr(result)\n }\n\n setupSelect2ForExistingPostingLines() {\n // We need to skip the template row because if we initialize Select2 in it\n // then it'll break adding new rows. Select2 must be initialized in newly\n // added rows AFTER the template is cloned.\n this.setupSelect2($(this.postingLineTargets))\n this.setupSelect2($(this.newPostingLineTargets))\n }\n\n setupSelect2($elements) {\n $elements.attr('data-controller', 'account-select')\n }\n\n showReopenVatModalIfExists() {\n // Back-end decides will this element be present or not\n if (document.getElementById('vat-reopen-modal')) {\n Modal.getOrCreateInstance(document.querySelector('#vat-reopen-modal')).show()\n }\n }\n\n showAssetModal() {\n const queryString = window.location.search\n const urlParams = new URLSearchParams(queryString)\n if (urlParams.get('asset') === 'true' && $('#asset-modal') !== null) {\n Modal.getOrCreateInstance(document.querySelector('#asset-modal')).show()\n }\n }\n\n initializeDates() {\n if (this.hasInvoiceDateTarget) {\n this.invoiceDateChangedAux(parseISO(this.invoiceDateTarget.value))\n } else {\n this.invoiceDateChangedAux(null)\n }\n if (this.hasDueDateTarget && this.hasPaymentOnTarget && isFuture(parseISO(this.dueDateTarget.value))) {\n this.paymentOnTarget.value = this.dueDateTarget.value\n }\n this.dueDateChanged(null)\n }\n\n initialFocusOnSupplierInvoice() {\n if (this.hasSupplierSelectTarget) {\n this.supplierSelectTarget.focus()\n }\n }\n\n invoiceDateChanged(event) {\n this.invoiceDateChangedAux(parseISO(event.target.value))\n }\n\n invoiceDateChangedAux(invoiceDate) {\n const previousDate = this.invoiceDate\n this.invoiceDate = invoiceDate\n this.updateDueDateWarning()\n if (\n this.hasInvoiceTypeSelectTarget &&\n this.invoiceTypeSelectTarget.value === 'receipt' &&\n this.invoiceDate !== null\n ) {\n this._updatePaymentOn(this.invoiceDate)\n }\n this._updateAutomaticTransactionText({ invoiceDate: this.invoiceDate, oldInvoiceDate: previousDate })\n this.updateVatCodes(previousDate)\n }\n\n dueDateChanged(event) {\n if (event != null) {\n this.dueDate = parseISO(event.target.value)\n if (!isValid(this.dueDate)) {\n this.dueDate = parse(event.target.value, i18n.t('date.formats.frontend.datefns.short'), new Date())\n }\n }\n this.updateDueDateWarning()\n if (this.dueDate !== null) {\n this._updatePaymentOn(this.dueDate)\n }\n }\n\n updateDueDateWarning() {\n if (this.hasDueDateWarningTarget) {\n if (this.invoiceDate && this.dueDate && isBefore(this.dueDate, this.invoiceDate)) {\n $(this.dueDateWarningTarget).removeClass('d-none')\n } else {\n $(this.dueDateWarningTarget).addClass('d-none')\n }\n }\n }\n\n setupAutomaticTranscationText() {\n this.currentSupplierName = null\n this.currentInvoiceNumber = null\n if (this.hasSupplierSelectTarget) {\n const controller = this.application.getControllerForElementAndIdentifier(\n this.supplierSelectTarget,\n 'partner--select',\n ) as PartnerSelectController\n this.currentSupplierName = controller.currentPartner && controller.currentPartner.name\n }\n if (this.hasInvoiceNumberTarget) {\n this.currentInvoiceNumber = $(this.invoiceNumberTarget).val() as string\n }\n if (this.hasTransactionTextTarget && this.transactionTextTarget.value === '') {\n this._updateAutomaticTransactionText({\n supplierName: this.currentSupplierName,\n invoiceNumber: this.currentInvoiceNumber,\n })\n }\n }\n\n deletePostingLine(event) {\n this.removeVatLock()\n this.updateLabelsAndInputNames()\n this._updateDeleteLineItemButtonAvailability()\n this.updateTotalAmount()\n\n event.preventDefault()\n return false\n }\n\n updateVatCodes(previousDate) {\n const previousYear = previousDate === undefined || previousDate === null ? null : previousDate\n const date = this._dateForVatPurposes\n\n if (previousYear !== null && previousYear.getFullYear() !== date.getFullYear()) {\n this._confirmVatRateUpdate(previousYear.getFullYear(), date.getFullYear())\n }\n\n this._updateAllowedVatCodes()\n }\n\n handleAssetCode(event) {\n const selectedValue = event.target.parentElement.querySelector('.select2-selection__rendered').innerHTML\n const alert = event.target.parentElement.querySelector('.alert')\n let code = parseInt(selectedValue.substr(0, 2))\n alert.classList.add('d-none')\n if (!isNaN(code)) {\n if ((window as any).SupplierInvoice.AssetCodes.includes(code)) {\n alert.classList.remove('d-none')\n }\n }\n\n this.updateVatAmount(event)\n }\n\n submit(event) {\n if (document.querySelector('.modal.show')) {\n return\n }\n // In case the total amount is negative, the user gets a warning about not being able\n // to register the payment. We're not destroying the object before clicking submit\n // because we'll show the payment form again if the total amount changes to positive.\n const paymentForm = document.getElementById('supplier-invoice-payment-form')\n if (paymentForm !== null && this.calculateTotalAmount().lessThan(0)) {\n paymentForm.parentNode.removeChild(paymentForm)\n }\n }\n\n changeTotalAmount(event) {\n this.totalAmountTextTarget.innerText = i18n.t('supplier_invoice.total_amount', { currency: event.target.value })\n }\n\n changeAmountLabel(event) {\n this.amountLabelTargets.forEach((label) => {\n label.innerText = i18n.t('posting.amount_in', { currency: event.target.value })\n })\n }\n\n addNewPostingLine(event) {\n this._addNewPostingLine()\n this.removeVatLock()\n\n event.preventDefault()\n return false\n }\n\n updateDefaults(partnerData) {\n if (this.newPostingLineTargets.length > 1) {\n return\n }\n\n if (this.newPostingLineTargets.length === 1) {\n const {\n default_debit_account_id,\n default_debit_account_code_and_description,\n default_vat_code,\n available_vat_codes,\n bank_account_number,\n } = partnerData\n if (\n this.hasRecipientBankNumberTarget &&\n this.invoiceTypeSelectTarget.value === 'invoice' &&\n bank_account_number\n ) {\n this.recipientBankNumberTarget.value = bank_account_number\n }\n if (default_debit_account_id !== null && default_debit_account_code_and_description !== null) {\n this.newPostingLineTarget.querySelector('select').dispatchEvent(\n Object.assign(new Event('set'), {\n id: default_debit_account_id,\n text: default_debit_account_code_and_description,\n }),\n )\n\n if (this.hasVatCodeSelectTarget) {\n this._updateVatCodes({\n available_vat_codes: available_vat_codes,\n default_vat_code: default_vat_code,\n vatCodeSelector: this.vatCodeSelectTarget,\n })\n }\n }\n }\n\n if (partnerData.default_purchase_type) {\n $(this.purchaseTypeTarget).val(partnerData.default_purchase_type)\n this._updateAllowedVatCodes()\n }\n\n const $newPostingLineTarget = $(this.newPostingLineTarget)\n this._updateDefaultSelected(\n $newPostingLineTarget.find('select.account_select'),\n partnerData.default_debit_account_id,\n )\n this._updateDefaultSelected($newPostingLineTarget.find('select.vat-code'), partnerData.default_vat_code)\n }\n\n _updateVatCodes(event) {\n let vatCodeSelector = event.vatCodeSelector\n if (!vatCodeSelector) {\n vatCodeSelector = this.vatCodeSelectTargets.find((codeSelector) => {\n return event.target.closest('.supplier-invoice-line-item').querySelector(`#${codeSelector.id}`)\n })\n }\n\n const controller = this.application.getControllerForElementAndIdentifier(\n vatCodeSelector,\n 'vat-rate',\n ) as VatRateController\n\n controller?.changeAllowedVatCodes(event.available_vat_codes, event.default_vat_code)\n\n this.updateVatAmount(event)\n }\n\n updateLabelsAndInputNames() {\n this.postingLineTargets.forEach((row, index) => {\n $(row)\n .find('input[name]')\n .attr('name', (_index, oldName) => oldName.replace(/\\d+/, index))\n $(row)\n .find('select')\n .attr('name', (_index, oldName) => oldName.replace(/\\d+/, index))\n })\n }\n\n updateCollapseElements(row) {\n const collapseId = Math.random().toString(36).substr(2)\n $(row)\n .find('.accrual__toggle-form-link')\n .attr({\n href: `.multi-${collapseId}`,\n 'aria-controls': collapseId,\n })\n $(row)\n .find('.accrual__info')\n .attr({\n id: collapseId,\n class: `collapse accrual__info multi-${collapseId}`,\n })\n }\n\n _updateDefaultSelected(selectElement, defaultValue) {\n $(selectElement).find('option').removeAttr('selected')\n $(selectElement).find(`option[value='${defaultValue}']`).attr('selected', 'true')\n }\n\n _addNewPostingLine() {\n // If the page is read-only then the template posting line is absent. In this\n // case we want an early return because we don't need to add new blank\n // posting_lines.\n\n if (!this.targets.has('nestedFormController')) {\n return\n }\n\n const nestedFormController = this.application.getControllerForElementAndIdentifier(\n this.nestedFormControllerTarget,\n 'nested-form',\n ) as NestedFormController\n nestedFormController.add(document.createEvent('Event'))\n\n const $row = $(this.newPostingLineTarget)\n this.updateLabelsAndInputNames()\n this.updateCollapseElements($row)\n this._updateDeleteLineItemButtonAvailability()\n this.updateTotalAmount()\n }\n\n _confirmVatRateUpdate(previousYear, currentYear): void {\n if (isNaN(previousYear) || isNaN(currentYear)) {\n return\n }\n confirm(i18n.t('supplier_invoice.confirm_vat_code_update', { previousYear, currentYear }))\n }\n\n get _dateForVatPurposes() {\n if (this.invoiceDate === undefined || this.invoiceDate === null) {\n this.invoiceDate = null\n }\n let value = new Date()\n if (this.invoiceDate === null) {\n if (this.hasPostingDateTarget) {\n value = parseISO(this.postingDateTarget.value)\n }\n } else {\n value = this.invoiceDate\n }\n value = setYear(value, Math.min(Math.max(value.getFullYear(), 2016), new Date().getFullYear()))\n return value\n }\n\n handleInvoiceNumberKeyUp(event) {\n this._updateAutomaticTransactionText({ invoiceNumber: $(event.target).val() })\n }\n\n _updateAutomaticTransactionText({\n supplierName = null,\n invoiceNumber = null,\n invoiceDate = null,\n oldInvoiceDate = null,\n }) {\n let paidBy = null\n let previousPaidBy = null\n if (supplierName === null) {\n supplierName = this.currentSupplierName\n }\n if (invoiceNumber === null) {\n invoiceNumber = this.currentInvoiceNumber\n }\n if (oldInvoiceDate === null) {\n oldInvoiceDate = null\n }\n if (this.hasInvoiceTypeSelectTarget) {\n if (this.invoiceTypeSelectTarget.value === 'invoice') {\n invoiceDate = null\n } else if (this.invoiceTypeSelectTarget.value === 'reimbursement') {\n if (this.paidBy === undefined) {\n this.paidBy = null\n }\n invoiceDate = null\n paidBy = this.paidByTarget[this.paidByTarget.selectedIndex].text\n previousPaidBy = this.paidBy\n this.paidBy = paidBy\n }\n }\n\n const reimbursementTransactionText = this._formatTransactionText(null, null, null, paidBy)\n const oldReimbursementTransactionText = this._formatTransactionText(null, null, null, previousPaidBy)\n const dateTransactionText = this._formatTransactionText(null, null, invoiceDate)\n const oldDateTransactionText = this._formatTransactionText(null, null, oldInvoiceDate)\n const newTransactionText = this._formatTransactionText(supplierName, invoiceNumber)\n const oldTransactionText = this._formatTransactionText(this.currentSupplierName, this.currentInvoiceNumber)\n\n $(this.transactionTextTargets).val((_index, currentTransactionText) => {\n if (\n reimbursementTransactionText !== '' &&\n (currentTransactionText === oldReimbursementTransactionText || currentTransactionText === '')\n ) {\n return reimbursementTransactionText\n } else if (\n dateTransactionText !== '' &&\n (currentTransactionText === oldDateTransactionText || currentTransactionText === '')\n ) {\n return dateTransactionText\n } else if (currentTransactionText === oldTransactionText || currentTransactionText === '') {\n return newTransactionText\n } else {\n return currentTransactionText\n }\n })\n\n this.currentSupplierName = supplierName\n this.currentInvoiceNumber = invoiceNumber\n }\n\n enableDescription(event) {\n event.preventDefault()\n event.target.parentElement.previousElementSibling.removeAttribute('readonly')\n }\n\n calculateTotalAmount() {\n let relevantAmountTargets = this.amountTargets\n\n return relevantAmountTargets.reduce((subTotal: Decimal, element: HTMLInputElement) => {\n let amount = parseDecimal(element.value, new Decimal(0))\n if (amount.isNaN()) {\n return subTotal\n } else {\n return subTotal.plus(amount)\n }\n }, new Decimal(0)) as Decimal\n }\n\n updateTotalAmount() {\n const totalAmount = this.calculateTotalAmount()\n\n const totalAmountText = amountStr(totalAmount)\n $(this.totalAmountTarget).text(totalAmountText)\n this.negativeAmountWarning(totalAmount)\n }\n\n updateTotalAmountOnPayableForm(totalAmount: string) {\n const element = document.querySelector('[data-payment-payable-total-amount-value]')\n if (element) {\n element.setAttribute('data-payment-payable-total-amount-value', totalAmount)\n }\n }\n\n negativeAmountWarning(totalAmount) {\n const paymentForm = document.getElementById('supplier-invoice-payment-form')\n if (paymentForm !== null && this.hasCreditNoteWarningTarget) {\n if (totalAmount < 0) {\n paymentForm.style.display = 'none'\n this.creditNoteWarningTarget.style.display = 'block'\n } else {\n this.creditNoteWarningTarget.style.display = 'none'\n paymentForm.style.display = 'block'\n this.updateTotalAmountOnPayableForm(totalAmount.toFixed(2).toString().replace('.', ','))\n }\n }\n }\n\n _formatTransactionText(supplierName, invoiceNumber, invoiceDate = null, paidBy = null) {\n if (paidBy) {\n return paidBy\n } else if (supplierName && invoiceNumber) {\n return i18n.t('supplier_invoice.default_description', {\n locale: $(this.element).data('locale'),\n supplier_name: supplierName,\n invoice_number: invoiceNumber,\n })\n } else if (invoiceDate) {\n const locale = $(this.element).data('locale')\n return i18n.t(`supplier_invoice.default_${this.invoiceTypeSelectTarget.value}_description_with_date`, {\n locale: locale,\n invoice_date: invoiceDate.toLocaleDateString(locale, { day: '2-digit', month: '2-digit', year: 'numeric' }),\n })\n } else {\n return ''\n }\n }\n\n handlePartnerCreate(event) {\n const { partner } = event\n const controller = this.application.getControllerForElementAndIdentifier(\n this.supplierSelectTarget,\n 'partner--select',\n ) as PartnerSelectController\n controller.select(partner)\n }\n\n handlePartnerChange(event) {\n const partner = event.partner\n this.updateDefaults(partner)\n let supplierInvoiceForeignCurrency = document.querySelector(\n '#supplier_invoice_foreign_currency',\n ) as HTMLInputElement\n supplierInvoiceForeignCurrency.value = event.partner.supplier_currency\n if (supplierInvoiceForeignCurrency.value !== '') {\n supplierInvoiceForeignCurrency.dispatchEvent(new Event('change'))\n }\n this._updateAutomaticTransactionText({ supplierName: partner.name })\n }\n\n handlePurchaseTypeChange() {\n this._updateAllowedVatCodes()\n const debitAccount = this.newPostingLineTarget.querySelector('select')\n debitAccount.dispatchEvent(new Event('reset'))\n }\n\n handleInvoiceTypeChange() {\n let path = window.location.pathname\n if (!path.includes('edit')) {\n path = path.concat('/edit')\n }\n window.location.replace(window.location.origin + path + '?type=' + this.invoiceTypeSelectTarget.value)\n }\n\n _showAndEnableSupplierSelect() {\n this.element.setAttribute('disabled', 'false')\n this._showSupplierSelect(true)\n }\n\n _hideAndDisableSupplierSelect() {\n this._showSupplierSelect(false)\n this.element.setAttribute('disabled', 'true')\n }\n\n _showSupplierSelect(status) {\n // Since it is a select2-box we need to hide/show the parent\n let parent = this.supplierSelectTarget.parentElement\n if (status) {\n parent.classList.remove('d-none')\n } else {\n parent.classList.add('d-none')\n }\n }\n\n async _updateAllowedVatCodes() {\n for (const target of this.vatCodeSelectTargets) {\n const controller = this.application.getControllerForElementAndIdentifier(target, 'vat-rate') as VatRateController\n if (controller !== null) {\n // We wait for each update so we don't do multiple xhr requests\n await controller.changeDate(this._dateForVatPurposes)\n await controller.changePurchaseType(this.purchaseTypeTarget.value)\n }\n }\n\n this.updateAllVatAmountFields()\n }\n\n _updateDeleteLineItemButtonAvailability() {\n if (this.hasDeleteLineItemTarget) {\n if (this.deleteLineItemTargets.length > 1) {\n $(this.deleteLineItemTargets).removeClass('d-none')\n } else {\n $(this.deleteLineItemTargets).addClass('d-none')\n }\n }\n }\n\n // payments\n _updatePaymentOn(date) {\n // we should get field by id in the case when it is moved by the move controller\n let paymentOn = this.hasPaymentOnTarget\n ? this.paymentOnTarget\n : (document.getElementById('payment_on-payment-modal-base') as HTMLElement)\n\n if (paymentOn && this.invoiceTypeSelectTarget.value === 'invoice') {\n const flatpickrController = this.application.getControllerForElementAndIdentifier(\n paymentOn,\n 'flatpickr',\n // We cast to unknown since FlatpickrController doesn't cover Controller\n // There might be a better way in Typescript, but we dont know how\n // In any case, it is a FlatpickrController that should be returned.\n ) as unknown as FlatpickrController\n if (flatpickrController !== null && isValid(date)) {\n flatpickrController.fp.setDate(date)\n\n // looking for nearest available date\n let availableDates = flatpickrController.fp.selectedDates\n while (availableDates.length === 0) {\n date.setDate(date.getDate() + 1)\n flatpickrController.fp.setDate(date)\n availableDates = flatpickrController.fp.selectedDates\n }\n }\n }\n }\n\n handlePaidByChange() {\n if (this.hasPaidByTarget) {\n this._updateAutomaticTransactionText({})\n if (this.hasPaymentHeaderLabelTarget) {\n let selectedValue = this.paidByTarget[this.paidByTarget.selectedIndex].value\n if (this.paidByTarget[this.paidByTarget.selectedIndex].dataset.employee) {\n selectedValue = this.paidByTarget[this.paidByTarget.selectedIndex].dataset.employee\n }\n this.paymentHeaderLabelTarget.innerHTML = i18n.t(`supplier_invoice.payment_header.${selectedValue}`)\n }\n if (this.hasRecipientBankNumberTarget) {\n const bankAccount = this.paidByTarget[this.paidByTarget.selectedIndex].dataset['accountNumber']\n if (bankAccount !== undefined) {\n this.recipientBankNumberTarget.value = bankAccount\n } else {\n this.recipientBankNumberTarget.value = ''\n }\n }\n if (this.hasPaymentBlockTarget) {\n if (this.paidByTarget.value === 'liabilities_to_owners_enk_no_payback') {\n this.paymentBlockTarget.classList.add('d-none')\n } else {\n this.paymentBlockTarget.classList.remove('d-none')\n }\n }\n }\n }\n\n handlePostingDateChange() {\n let $text = $(this.postingDateTextTarget)\n const link = $text.children().last().get(0)\n let date = this.postingDateTarget.value\n date = new Date(date).toLocaleDateString(i18n.locale, { day: '2-digit', month: '2-digit', year: 'numeric' })\n $text.html(i18n.t('supplier_invoice.posting_date', { posting_date: date }) + ' ' + link.outerHTML)\n this._updateAllowedVatCodes()\n }\n\n // This method enables amount and vat code fields for line items and also\n // changes account selector behavior to show all accounts for supplier invoice\n // without filtering by vat code\n removeVatLock() {\n document.querySelectorAll('.vat-code').forEach((elem: HTMLInputElement) => {\n if (elem.disabled && elem.dataset.fixed === 'true') {\n elem.disabled = false\n elem.dataset.fixed = 'false'\n if (elem.getAttribute('type') === 'hidden' && !elem.disabled) {\n elem.parentNode.removeChild(elem)\n }\n }\n })\n document.querySelectorAll('.line-item-amount').forEach((elem: HTMLInputElement) => {\n elem.disabled = false\n if (elem.getAttribute('type') === 'hidden') {\n elem.parentNode.removeChild(elem)\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../../libraries/i18n'\n\nexport default class extends Controller {\n static targets = ['addPaymentButton']\n\n declare hasAddPaymentButtonTarget: boolean\n declare addPaymentButtonTarget: HTMLButtonElement\n\n connect() {\n this.hidePreview()\n }\n\n hidePreview() {\n if (window.innerWidth < 900) {\n this._dispatch('supplier-invoice--edit:hideSplitView')\n }\n }\n\n _dispatch(eventName, params = {}) {\n const cancelEvent = document.createEvent('Event')\n cancelEvent.initEvent(eventName, true, true)\n Object.assign(cancelEvent, params)\n this.element.dispatchEvent(cancelEvent)\n }\n\n updateCurrencyValueOnPayableForm(event) {\n const selectedCurrency = event.target.value\n\n const element = document.querySelector('[data-payment-payable-source-currency-value]')\n if (element) {\n element.setAttribute('data-payment-payable-source-currency-value', selectedCurrency)\n }\n }\n\n disablePaymentButton() {\n if (this.hasAddPaymentButtonTarget) {\n this.addPaymentButtonTarget.classList.add('disabled')\n }\n }\n\n fillSupplierSelectPlaceholder() {\n let elem = document.querySelector('.select2-search__field') as HTMLInputElement\n elem.placeholder = i18n.t('supplier.search_all_suppliers')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Tab } from 'bootstrap'\n\nexport default class extends Controller {\n connect() {\n let urlParams = new URLSearchParams(location.search)\n\n if (window.location.hash) {\n let nav = document.querySelector('.nav a[href=\"' + window.location.hash + '\"]')\n if (nav) {\n Tab.getOrCreateInstance(nav).show()\n } else {\n console.log(`Could not find tab with href=${window.location.hash}, is it missing?`)\n }\n } else if (this.data.get('default-tab')) {\n Tab.getOrCreateInstance(document.querySelector('.nav a[href=\"#' + this.data.get('default-tab') + '\"]')).show()\n }\n\n const tabElems = this.element.querySelectorAll('a[data-bs-toggle=\"tab\"]')\n tabElems.forEach((tabElem) => {\n tabElem.addEventListener('shown.bs.tab', function (e) {\n history.pushState({}, '', (e.target as HTMLAnchorElement).href)\n })\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { nextFrame } from '../rendering'\n\nexport default class extends Controller {\n static targets = ['thead', 'tbody']\n static values = { selector: String }\n\n declare theadTarget: HTMLElement\n declare tbodyTarget: HTMLElement\n declare selectorValue: string\n\n connect() {\n this.hideOnEmptyTable()\n }\n\n hideOnEmptyTable() {\n // This can be called from an element that is being removed, wait until next frame to not include removed elements\n nextFrame(() => {\n if (this.tbodyTarget.querySelectorAll(`:scope > ${this.selectorValue}`).length > 0) {\n this.theadTarget.classList.remove('d-none')\n } else {\n this.theadTarget.classList.add('d-none')\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['input', 'hours', 'minutes']\n\n declare inputTarget: HTMLInputElement\n declare hoursTarget: HTMLInputElement\n declare minutesTarget: HTMLInputElement\n\n connect() {\n const secondsStr = this.inputTarget.value\n if (secondsStr) {\n const seconds = parseInt(secondsStr)\n const secondsInMinute = 60\n const secondsInHour = 60 * secondsInMinute\n const hours = Math.floor(seconds / secondsInHour)\n const remainingSecondsAfterHours = seconds % secondsInHour\n const minutes = Math.floor(remainingSecondsAfterHours / secondsInMinute)\n this.hoursTarget.value = hours.toString()\n this.minutesTarget.value = minutes.toString()\n }\n }\n\n updateHiddenInput() {\n let hours = parseInt(this.hoursTarget.value)\n if (Number.isNaN(hours)) {\n hours = 0\n }\n let minutes = parseInt(this.minutesTarget.value)\n if (Number.isNaN(minutes)) {\n minutes = 0\n }\n\n this.inputTarget.value = (hours * 3600 + minutes * 60).toString()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['target']\n\n declare targetTargets: Array\n\n toggle(e: Event) {\n e.preventDefault()\n\n this.targetTargets.forEach((target) => {\n if (target.classList.contains('d-none')) {\n target.classList.remove('d-none')\n } else {\n target.classList.add('d-none')\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { parseDecimal } from '../classes/parse_decimal'\nimport Decimal from 'decimal.js'\n\n// This controller can be used to compute a total of items and store the result\n// in another item. This is most useful when computing totals on invoices,\n// financial statements, etc.\n//\n// LIMITATIONS\n//\n// - Currently itemTargets MUST be INPUT tags.\nexport default class extends Controller {\n static targets = [\n // Items whose total is computed.\n 'item',\n\n // The item containing the computed total.\n 'total',\n ]\n declare itemTargets: Array\n declare totalTargets: Array\n total: number\n\n connect() {\n this.update()\n }\n\n update() {\n this.totalTargets.forEach((totalTarget) => this.calculateTarget(totalTarget))\n }\n\n calculateTarget(totalTarget) {\n // If group is not specified we assume only one total target is defined\n let type = totalTarget.getAttribute('data-total-amount-type')\n let items\n if (totalTarget.getAttribute('data-total-amount-group') === null) {\n items = this.itemTargets\n } else {\n // The first target defined is the group to sum/multiply, the others is used by other total targets.\n let group = totalTarget.getAttribute('data-total-amount-group').split(' ')[0]\n // If you need to use the total element as an item as well we exclude the total target as it will calulate wrong\n // And if the element is part of multiple groups we separate them with ' '\n items = this.itemTargets.filter(\n (elem) => elem.getAttribute('data-total-amount-group').split(' ').includes(group) && elem != totalTarget,\n )\n }\n if (type === undefined || type === null || type === 'sum') {\n this.sumTargets(totalTarget, items)\n } else if (type === 'multiply') {\n this.multiplyTargets(totalTarget, items)\n }\n // If the total target is part of multiple groups we update those groups as well\n let groups = totalTarget.getAttribute('data-total-amount-group')\n if (groups !== null && groups.split(' ').length > 1) {\n for (let i = 1; i < groups.split(' ').length; i++) {\n let target = this.totalTargets.find(\n (t) => t.getAttribute('data-total-amount-group').split(' ')[0] === groups[i],\n )\n if (target != null) {\n this.calculateTarget(target)\n }\n }\n }\n }\n\n sumTargets(totalTarget, items) {\n this.total = items\n .reduce((subTotal, inputTag) => subTotal.plus(parseDecimal(inputTag.value, new Decimal(0))), new Decimal(0))\n .toNumber()\n\n this._setTargetValues(totalTarget, this.total)\n }\n\n // This will multiply all items. Useful when working with f.ex. units and unit price.\n multiplyTargets(totalTarget, items) {\n let total = items.reduce(\n (subTotal, inputTag) => subTotal.times(parseDecimal(inputTag.value), new Decimal(1)),\n new Decimal(1),\n )\n\n this._setTargetValues(totalTarget, total)\n }\n\n _setTargetValues(totalTarget, value) {\n const formattedTotal = new Intl.NumberFormat('nb-NO', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n .format(value)\n // Use regular minus instead of the special minus that Intl.NumberFormat seems like use\n .replaceAll('\\u2212', '-')\n\n // We need trim to remove the whitespace added by toCurrency at the end.\n totalTarget.value = formattedTotal\n totalTarget.innerHTML = formattedTotal\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { i18n } from '../libraries/i18n'\n\nexport default class extends Controller {\n static values = { url: String }\n\n declare hasUrlValue: boolean\n declare urlValue: string\n\n connect() {\n if (!this.hasUrlValue) {\n let form = this.element as HTMLFormElement\n let method = (form.querySelector('input[name=\"_method\"]') as HTMLInputElement)?.value || form.method\n this.urlValue = method == 'post' ? `${form.action}/new` : `${form.action}/edit`\n }\n this.element.addEventListener('turbo:submit-start', this.handleSubmitStart.bind(this))\n this.element.addEventListener('turbo:submit-end', this.handleSubmitEnd.bind(this))\n }\n\n update(event: Event) {\n const target = event.target as HTMLInputElement\n const form = target.form as HTMLFormElement\n\n form.setAttribute('action', this.urlValue)\n form.setAttribute('method', 'get')\n form.setAttribute('data-turbo-stream', 'true')\n form.querySelector('input[name=\"_method\"]')?.remove()\n this.addOrUpdateLastChanged(form, target.name)\n form.requestSubmit()\n }\n\n handleSubmitStart() {\n this.toggleSubmit(false)\n }\n\n handleSubmitEnd(event) {\n if (event.detail.formSubmission.result.success) {\n this.toggleSubmit(false)\n } else {\n this.toggleSubmit(true)\n }\n }\n\n toggleSubmit(enable: boolean) {\n document.querySelectorAll(`[form=\"${this.element.id}\"][type=\"submit\"]`).forEach((btn: HTMLButtonElement) => {\n if (enable) {\n btn.disabled = false\n btn.style.opacity = ''\n } else {\n btn.disabled = true\n btn.style.opacity = '1'\n }\n })\n }\n\n private addOrUpdateLastChanged(form: HTMLFormElement, name: string) {\n const inputName = 'last_updated_field'\n let input = form.querySelector(`input[name=\"${inputName}\"]`) as HTMLInputElement\n\n if (!input) {\n // If the input doesn't exist, create it\n input = document.createElement('input')\n input.type = 'hidden'\n input.name = inputName\n form.appendChild(input)\n }\n\n // Set the value to the name passed in\n input.value = name\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { Turbo } from '@hotwired/turbo-rails'\n\nexport default class extends Controller {\n connect() {\n this.element.addEventListener('ajax:beforeSend', (event: CustomEvent) => {\n const url = this.removeEmptyQueryParams(event.detail[1].url)\n Turbo.navigator.history.push(url)\n })\n }\n\n private removeEmptyQueryParams(path): URL {\n try {\n // Path might or might not contain the origin (http://host:port), lets add it if it doesn't\n // The reason is that new URL() only accepts full urls, not only paths\n if (!path.startsWith('http')) {\n path = `${window.location.origin}${path}`\n }\n\n let url = new URL(path)\n url.searchParams.forEach((value, key) => {\n if (value == '') {\n url.searchParams.delete(key)\n }\n })\n return url\n } catch (error) {\n console.error(error)\n // In case of error we just give up and return the same path\n // This will show up as ugly URLs with empty parameters\n return new URL(path)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { getAuth, signInWithEmailAndPassword } from 'firebase/auth'\n\nexport default class extends Controller {\n static values = { email: String }\n\n declare emailValue: string\n\n static targets = ['newEmail', 'password', 'alert']\n\n declare newEmailTarget: HTMLFormElement\n declare passwordTarget: HTMLInputElement\n declare alertTarget: HTMLElement\n\n originalInputValue: string\n\n connect() {\n this.originalInputValue = this.newEmailTarget.value\n this.passwordTarget.form.addEventListener('submit', (event) => {\n this.verify(event)\n })\n }\n\n verify(event: Event) {\n if (this.originalInputValue == this.newEmailTarget.value) {\n return\n }\n\n event.preventDefault()\n\n const auth = getAuth()\n signInWithEmailAndPassword(auth, this.emailValue, this.passwordTarget.value)\n .then(() => {\n this.passwordTarget.form.submit()\n })\n .catch(() => {\n this.showAlert()\n // This is a custom event that is triggered when ajax request is completed to unlock submit button\n this.fireAjaxCompleteEvent()\n })\n }\n\n showAlert() {\n this.alertTarget.classList.remove('d-none')\n }\n\n fireAjaxCompleteEvent() {\n const event = new CustomEvent('ajax:complete', { bubbles: true, cancelable: true })\n this.passwordTarget.form.dispatchEvent(event)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['submitButton']\n\n declare submitButtonTarget: HTMLButtonElement\n\n acceptTerms(event) {\n this.submitButtonTarget.disabled = !event.currentTarget.checked\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['appliesTo', 'remark']\n\n declare hasAppliesToTarget: boolean\n declare appliesToTarget: HTMLSelectElement\n declare remarkTarget: HTMLSelectElement\n\n connect() {\n this.appliesToChanged()\n }\n\n appliesToChanged() {\n if (!this.hasAppliesToTarget) return\n\n let appliesToOption = this.appliesToTarget.selectedOptions[0]\n let appliesTo = appliesToOption.value === 'mva-melding' ? 'mva-melding' : 'mva kode'\n let allowedRemarks = JSON.parse(appliesToOption.dataset.allowedRemarks)\n Array.from(this.remarkTarget.options).forEach((option) => {\n let optionAppliesTo = option.dataset.appliesTo === undefined || option.dataset.appliesTo === appliesTo\n if (optionAppliesTo) {\n let disabled = !allowedRemarks.includes(option.value)\n option.disabled = disabled\n option.classList.toggle('d-none', disabled)\n } else {\n option.disabled = true\n option.classList.toggle('d-none', true)\n }\n })\n if (this.remarkTarget.selectedOptions[0].disabled) {\n this.remarkTarget.selectedIndex = Array.from(this.remarkTarget.options).findIndex((option) => !option.disabled)\n this.remarkTarget.dispatchEvent(new Event('change'))\n }\n }\n}\n","import Select2Builder from '../standalone/components/Select2Builder'\nimport { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\nimport { formatISO, isWithinInterval, parseISO, isSameDay } from 'date-fns'\nimport { rails_fetch } from '../util/rails_fetch'\n\nconst DEFAULT_PURCHASE_TYPE = 'domestic_purchase'\nconst DEFAULT_ALLOWED_VAT_CODES = ''\n\n// The controller expects that window.vatCodesByPurchaseType is set and follows this structure:\n//\n// window.vatCodesByPurchaseType = {\n// date: \"2022-01-01\",\n// rates: {\n// domestic_purchase: [0, 1, 2],\n// international_goods_purchase: [3, 4, 5],\n// international_services_purchase: [6, 7, 8],\n// loan: [9, 10],\n// }\n// }\nexport default class extends Controller {\n static values = { postingDateBeforeVatPeriodWarning: String }\n\n declare postingDateBeforeVatPeriodWarningValue: string\n declare hasPostingDateBeforeVatPeriodWarningValue: boolean\n\n $element\n _date\n _allowedVatCodes\n _purchaseType\n\n connect() {\n this.$element = $(this.element)\n\n // Notice .data() evals values into JavaScript objects but dataset always returns strings.\n this._date = parseISO(this.$element.data('date')) || new Date()\n this._purchaseType = this.getCurrentPurchaseType()\n let elem = this.element as HTMLElement\n this._allowedVatCodes = (elem.dataset.allowedVatCodes || DEFAULT_ALLOWED_VAT_CODES).split(' ')\n\n const params = new Select2Builder().createStaticParams({ minimumInputLength: 0 })\n this.$element.select2(params)\n\n this._updateOptions(elem.dataset.selected || null)\n }\n\n async changeDate(date: Date) {\n this._date = date\n await this._updateOptions()\n }\n\n getCurrentPurchaseType() {\n let elem = document.querySelector('#supplier_invoice_purchase_type') as HTMLInputElement\n return elem.value || DEFAULT_PURCHASE_TYPE\n }\n\n async changePurchaseType(purchaseType) {\n this._purchaseType = purchaseType\n await this._updateOptions()\n }\n\n async changeAllowedVatCodes(allowedVatCodes, defaultVatCode = null) {\n this._allowedVatCodes = allowedVatCodes.map((code) => code.toString())\n await this._updateOptions(defaultVatCode)\n }\n\n async _updateOptions(overrideSelectedCode = null) {\n const currentlySelectedCode = overrideSelectedCode || this.$element.val()\n const availableVatRegistrations = (window as any).vatRegistrations || []\n let date = this._date\n if (date === null || isNaN(date.getFullYear())) {\n date = new Date()\n }\n\n let inVatRegistrationPeriod = false\n let isDateBeforeFirstVatPeriod = true\n availableVatRegistrations.forEach((period) => {\n if (!inVatRegistrationPeriod) {\n inVatRegistrationPeriod = isWithinInterval(date, { start: parseISO(period[0]), end: parseISO(period[1]) })\n }\n if (isDateBeforeFirstVatPeriod) {\n isDateBeforeFirstVatPeriod = date < parseISO(period[0])\n }\n })\n if (\n !(window as any).vatCodesByPurchaseType ||\n !isSameDay(date, parseISO((window as any).vatCodesByPurchaseType['date']))\n ) {\n let response = await rails_fetch(\n `/${(window as any).current_company_id}/vat/rates?inbound=true&date=${formatISO(date)}`,\n )\n // We might have multiple vat-rate-controllers on the same page so we store the result globally to share\n ;(window as any).vatCodesByPurchaseType = await response.json()\n }\n\n const availableVatOptions = (window as any).vatCodesByPurchaseType['rates'][this._purchaseType].filter(\n ([_label, code]) => {\n if (inVatRegistrationPeriod) {\n this.showPostingDateBeforeVatPeriodWarning(false)\n return this._allowedVatCodes.includes(code)\n } else {\n // We use code 21 for international goods purchases and code 0 for everything else\n this.showPostingDateBeforeVatPeriodWarning(isDateBeforeFirstVatPeriod)\n return code === '0' || code === '21'\n }\n },\n )\n this.$element.empty()\n\n availableVatOptions.forEach(([label, code, rate]) => {\n const option = new Option(label, code, false, false)\n option.setAttribute('rate', rate)\n this.$element.append(option)\n })\n\n if (\n currentlySelectedCode &&\n availableVatOptions.some(([_label, code]) => currentlySelectedCode.toString() === code.toString())\n ) {\n this.$element.val(currentlySelectedCode).change()\n } else if (availableVatOptions.length > 0) {\n // Take the first VAT rate (index 0) and pick it's code (index 1).\n this.$element.val(availableVatOptions[0][1]).change()\n }\n }\n\n showPostingDateBeforeVatPeriodWarning(show: boolean) {\n let hintElement = this.element.parentElement.querySelector('.form-text')\n if (!this.hasPostingDateBeforeVatPeriodWarningValue || !hintElement) return\n\n if (show) {\n hintElement.innerHTML = this.postingDateBeforeVatPeriodWarningValue\n hintElement.classList.remove('d-none')\n } else {\n hintElement.classList.add('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['radio', 'target']\n\n declare radioTargets: Array\n declare targetTargets: Array\n\n connect() {\n this.reveal()\n }\n\n reveal() {\n this.radioTargets.forEach((radio) => {\n if (radio.checked) {\n this.targetTargets.forEach((target) => {\n if (target.dataset.radioShowValue) {\n this.show(target, target.dataset.radioShowValue === radio.value)\n } else if (target.dataset.radioHideValue) {\n this.show(target, !(target.dataset.radioHideValue == radio.value))\n } else {\n this.show(target, false)\n }\n })\n }\n })\n }\n\n private show(target: HTMLElement, value: boolean) {\n if (value) {\n target.classList.remove('d-none')\n } else {\n target.classList.add('d-none')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['target', 'source']\n static values = { hide: String, show: String, disableInputs: { type: Boolean, default: false } }\n\n declare targetTargets: [HTMLElement]\n declare sourceTarget: HTMLInputElement\n declare hasTargetTarget: boolean\n declare hasSourceTarget: boolean\n declare hideValue: string\n declare hasHideValue: boolean\n declare showValue: string\n declare hasShowValue: string\n declare disableInputsValue: boolean\n\n connect() {\n this.toggleVisibility()\n }\n\n toggleVisibility() {\n if (!this.hasTargetTarget || !this.hasSourceTarget) {\n return\n }\n if (this.hasHideValue && this.hasShowValue) {\n console.log('Please define only hideValue or showValue, not both')\n }\n\n if (this.hasShowValue) {\n if (this.showValue.split(';').includes(this.sourceTarget.value)) {\n this.showTargets(this.targetTargets)\n } else {\n this.hideTargets(this.targetTargets)\n }\n return\n } else if (this.targetTargets.find((e) => e.dataset.visibilityToggleTargetShowValue !== undefined)) {\n this.targetTargets.forEach((e) => {\n if (e.dataset.visibilityToggleTargetShowValue.split(';').includes(this.sourceTarget.value.toString())) {\n e.classList.remove('d-none')\n } else {\n e.classList.add('d-none')\n }\n })\n return\n } else if (this.sourceTarget.type == 'checkbox') {\n this.toggleCheckBox()\n return\n } else {\n let hideValue = ''\n if (this.hasHideValue) {\n hideValue = this.hideValue\n }\n if (hideValue.split(';').includes(this.sourceTarget.value)) {\n this.hideTargets(this.targetTargets)\n } else {\n this.showTargets(this.targetTargets)\n }\n return\n }\n }\n\n toggleCheckBox() {\n if (this.sourceTarget.checked) {\n this.showTargets(this.targetTargets)\n } else {\n this.hideTargets(this.targetTargets)\n }\n }\n\n private hideTargets(targets: Array) {\n targets.forEach((e) => e.classList.add('d-none'))\n }\n\n private showTargets(targets: Array) {\n targets.forEach((e) => e.classList.remove('d-none'))\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport $ from 'jquery'\n\nexport default class extends Controller {\n static targets = ['code', 'city']\n\n declare hasCityTarget: boolean\n declare codeTarget: HTMLInputElement\n declare cityTarget: HTMLInputElement\n\n find() {\n if (this.codeTarget.value.length === 4) {\n $.ajax({\n type: 'GET',\n url: `/norwegian_zip_codes/${this.codeTarget.value}.json`,\n dataType: 'json',\n success: (result) => {\n if (this.hasCityTarget && result.city != null) {\n this.cityTarget.value = result.city\n }\n },\n })\n }\n }\n}\n","// src/index.ts\nvar CONTROLLER_FILENAME_REGEX = /^(?:.*?(?:controllers|components)\\/|\\.?\\.\\/)?(.+)(?:[/_-]controller\\..+?)$/;\nfunction registerControllers(application, controllerModules) {\n application.load(definitionsFromGlob(controllerModules));\n}\nfunction definitionsFromGlob(controllerModules) {\n return Object.entries(controllerModules).map(definitionFromEntry).filter((value) => value);\n}\nfunction definitionFromEntry([name, controllerModule]) {\n var _a;\n const identifier = identifierForGlobKey(name);\n const controllerConstructor = (_a = controllerModule.default) != null ? _a : controllerModule;\n if (identifier && typeof controllerConstructor === \"function\")\n return { identifier, controllerConstructor };\n}\nfunction identifierForGlobKey(key) {\n const logicalName = (key.match(CONTROLLER_FILENAME_REGEX) || [])[1];\n if (logicalName)\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n}\nexport {\n CONTROLLER_FILENAME_REGEX,\n definitionsFromGlob,\n identifierForGlobKey,\n registerControllers\n};\n","// Set up Stimulus\n/// \nimport { Application } from '@hotwired/stimulus'\nimport { registerControllers } from 'stimulus-vite-helpers'\n\nexport default class SetupStimulus {\n static start() {\n // @ts-ignore\n const controllers = import.meta.glob('./controllers/**/*_controller.*s', { eager: true })\n registerControllers(Application.start(), controllers)\n }\n}\n","import { StreamActions } from '@hotwired/turbo'\nimport { Turbo } from '@hotwired/turbo-rails'\nimport { Modal } from 'bootstrap'\n\nStreamActions.remove_by_hashid = function () {\n let target = document.querySelector(`[data-model-hashid='${this.getAttribute('target')}']`)\n target?.remove()\n}\n\nStreamActions.open_modal = function () {\n let target = document.getElementById(this.getAttribute('target'))\n // Find the closest parent/child modal\n let modal = target.closest('.modal') || target.querySelector('.modal')\n // If the modal is already open, remove the backdrop to prevent multiple backdrops being shown.\n document.querySelector('.modal-backdrop.show')?.remove()\n if (modal) Modal.getOrCreateInstance(modal).show()\n}\nStreamActions.close_modal = function () {\n let modal = document.getElementById(this.getAttribute('target')).closest('.modal')\n if (modal) Modal.getOrCreateInstance(modal).hide()\n}\n\nStreamActions.disable_button = function () {\n let target = document.getElementById(this.getAttribute('target')) as HTMLButtonElement\n target.disabled = true\n target.setAttribute('data-turbo-original-text', target.innerText)\n target.innerText = target.getAttribute('data-turbo-submits-with')\n}\n\nStreamActions.enable_button = function () {\n let target = document.getElementById(this.getAttribute('target')) as HTMLButtonElement\n target.disabled = false\n target.innerText = target.getAttribute('data-turbo-original-text')\n}\n\nStreamActions.redirect = function () {\n Turbo.visit(this.getAttribute('target'))\n}\n","var CrispMessage = /** @class */ (function () {\n function CrispMessage(crisp) {\n this.parent = crisp;\n }\n CrispMessage.prototype.setMessageText = function (content) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"message:text\", [content]]);\n };\n CrispMessage.prototype.send = function (type, content) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"message:send\", [type, content]]);\n };\n CrispMessage.prototype.sendText = function (content) {\n this.send(\"text\", content);\n };\n CrispMessage.prototype.sendFile = function (content) {\n this.send(\"file\", content);\n };\n CrispMessage.prototype.sendAnimation = function (content) {\n this.send(\"animation\", content);\n };\n CrispMessage.prototype.sendAudio = function (content) {\n this.send(\"audio\", content);\n };\n CrispMessage.prototype.show = function (type, content) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"message:show\", [type, content]]);\n };\n CrispMessage.prototype.showText = function (content) {\n this.show(\"text\", content);\n };\n CrispMessage.prototype.showFile = function (content) {\n this.show(\"file\", content);\n };\n CrispMessage.prototype.showAnimation = function (content) {\n this.show(\"animation\", content);\n };\n CrispMessage.prototype.showAudio = function (content) {\n this.show(\"audio\", content);\n };\n CrispMessage.prototype.showPicker = function (content) {\n this.show(\"picker\", content);\n };\n CrispMessage.prototype.showField = function (content) {\n this.show(\"field\", content);\n };\n CrispMessage.prototype.showCarousel = function (content) {\n this.show(\"carousel\", content);\n };\n CrispMessage.prototype.markAsRead = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"message:read\"]);\n };\n CrispMessage.prototype.startThread = function (name) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"message:thread:start\", [name]]);\n };\n CrispMessage.prototype.endThread = function (name) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"message:thread:end\", [name]]);\n };\n CrispMessage.prototype.onMessageSent = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offMessageSent();\n window.$crisp.push([\"on\", \"message:sent\", callback]);\n };\n CrispMessage.prototype.offMessageSent = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"message:sent\"]);\n };\n CrispMessage.prototype.onMessageReceived = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offMessageReceived();\n window.$crisp.push([\"on\", \"message:received\", callback]);\n };\n CrispMessage.prototype.offMessageReceived = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"message:received\"]);\n };\n CrispMessage.prototype.onMessageComposeSent = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offMessageComposeSent();\n window.$crisp.push([\"on\", \"message:compose:sent\", callback]);\n };\n CrispMessage.prototype.offMessageComposeSent = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"message:compose:sent\"]);\n };\n CrispMessage.prototype.onMessageComposeReceived = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offMessageComposeReceived();\n window.$crisp.push([\"on\", \"message:compose:received\", callback]);\n };\n CrispMessage.prototype.offMessageComposeReceived = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"message:compose:received\"]);\n };\n return CrispMessage;\n}());\n\nvar CrispUser = /** @class */ (function () {\n function CrispUser(crisp) {\n this.parent = crisp;\n }\n CrispUser.prototype.setNickname = function (nickname) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"user:nickname\", [nickname]]);\n };\n CrispUser.prototype.setEmail = function (email, hmac) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"user:email\", [email, hmac]]);\n };\n CrispUser.prototype.setPhone = function (phone) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"user:phone\", [phone]]);\n };\n CrispUser.prototype.setAvatar = function (avatar) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"user:avatar\", [avatar]]);\n };\n CrispUser.prototype.setCompany = function (name, data) {\n var _payload = {};\n if (data) {\n if (data.url) {\n _payload.url = data.url;\n }\n if (data.description) {\n _payload.description = data.description;\n }\n if (data.employment) {\n _payload.employment = [\n data.employment.title\n ];\n if (data.employment.role) {\n _payload.employment.push(data.employment.role);\n }\n }\n }\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"set\", \"user:company\", [name, _payload]]);\n };\n CrispUser.prototype.getEmail = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"user:email\");\n };\n CrispUser.prototype.getPhone = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"user:phone\");\n };\n CrispUser.prototype.getNickname = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"user:nickname\");\n };\n CrispUser.prototype.getAvatar = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"user:avatar\");\n };\n CrispUser.prototype.getCompany = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"user:company\");\n };\n CrispUser.prototype.onEmailChanged = function (callback) {\n if (this.parent.isCrispInjected()) {\n this.offEmailChanged();\n window.$crisp.push([\"on\", \"user:email:changed\", callback]);\n }\n };\n CrispUser.prototype.offEmailChanged = function () {\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"off\", \"user:email:changed\"]);\n }\n };\n CrispUser.prototype.onPhoneChanged = function (callback) {\n if (this.parent.isCrispInjected()) {\n this.offPhoneChanged();\n window.$crisp.push([\"on\", \"user:phone:changed\", callback]);\n }\n };\n CrispUser.prototype.offPhoneChanged = function () {\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"off\", \"user:phone:changed\"]);\n }\n };\n CrispUser.prototype.onNicknameChanged = function (callback) {\n if (this.parent.isCrispInjected()) {\n this.offNicknameChanged();\n window.$crisp.push([\"on\", \"user:nickname:changed\", callback]);\n }\n };\n CrispUser.prototype.offNicknameChanged = function () {\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"off\", \"user:nickname:changed\"]);\n }\n };\n CrispUser.prototype.onAvatarChanged = function (callback) {\n if (this.parent.isCrispInjected()) {\n this.offAvatarChanged();\n window.$crisp.push([\"on\", \"user:avatar:changed\", callback]);\n }\n };\n CrispUser.prototype.offAvatarChanged = function () {\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"off\", \"user:avatar:changed\"]);\n }\n };\n return CrispUser;\n}());\n\nvar CrispTrigger = /** @class */ (function () {\n function CrispTrigger(crisp) {\n this.parent = crisp;\n }\n CrispTrigger.prototype.run = function (name) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"trigger:run\", [name]]);\n };\n return CrispTrigger;\n}());\n\nvar EventsColors;\n(function (EventsColors) {\n EventsColors[\"Red\"] = \"red\";\n EventsColors[\"Orange\"] = \"orange\";\n EventsColors[\"Yellow\"] = \"yellow\";\n EventsColors[\"Green\"] = \"green\";\n EventsColors[\"Blue\"] = \"blue\";\n EventsColors[\"Purple\"] = \"purple\";\n EventsColors[\"Pink\"] = \"pink\";\n EventsColors[\"Brown\"] = \"brown\";\n EventsColors[\"Grey\"] = \"grey\";\n EventsColors[\"Black\"] = \"black\";\n})(EventsColors || (EventsColors = {}));\nvar CrispSession = /** @class */ (function () {\n function CrispSession(crisp) {\n this.parent = crisp;\n }\n CrispSession.prototype.reset = function (reload) {\n if (reload === void 0) { reload = false; }\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"do\", \"session:reset\", [reload]]);\n }\n };\n CrispSession.prototype.setSegments = function (segments, overwrite) {\n this.parent.createSingletonIfNecessary();\n $crisp.push([\"set\", \"session:segments\", [segments, overwrite]]);\n };\n CrispSession.prototype.setData = function (data) {\n var _this = this;\n var _payload = [];\n Object.entries(data).forEach(function (item) {\n if (_this.isValidDataValue(item[0])) {\n _payload.push([item[0], item[1]]);\n }\n });\n this.parent.createSingletonIfNecessary();\n $crisp.push([\"set\", \"session:data\", [_payload]]);\n };\n CrispSession.prototype.pushEvent = function (name, data, color) {\n if (data === void 0) { data = {}; }\n if (color === void 0) { color = EventsColors.Blue; }\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"set\", \"session:event\", [[[name, data, color]]]]);\n }\n };\n CrispSession.prototype.getData = function (key) {\n if (!this.parent.isCrispInjected()) {\n return undefined;\n }\n return window.$crisp.get(\"session:data\", key);\n };\n CrispSession.prototype.getIdentifier = function () {\n if (!this.parent.isCrispInjected()) {\n return null;\n }\n return window.$crisp.get(\"session:identifier\");\n };\n CrispSession.prototype.onLoaded = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offLoaded();\n window.$crisp.push([\"on\", \"session:loaded\", callback]);\n };\n CrispSession.prototype.offLoaded = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"session:loaded\"]);\n };\n CrispSession.prototype.isValidDataValue = function (value) {\n return (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\");\n };\n return CrispSession;\n}());\n\nvar CrispChat = /** @class */ (function () {\n function CrispChat(crisp) {\n this.parent = crisp;\n }\n CrispChat.prototype.show = function () {\n this.parent.autoInjectIfNecessary();\n window.$crisp.push([\"do\", \"chat:show\"]);\n };\n CrispChat.prototype.hide = function () {\n this.parent.autoInjectIfNecessary();\n window.$crisp.push([\"do\", \"chat:hide\"]);\n };\n CrispChat.prototype.open = function () {\n this.parent.autoInjectIfNecessary();\n window.$crisp.push([\"do\", \"chat:open\"]);\n };\n CrispChat.prototype.close = function () {\n if (this.parent.isCrispInjected()) {\n window.$crisp.push([\"do\", \"chat:close\"]);\n }\n };\n CrispChat.prototype.setHelpdeskView = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"helpdesk:search\"]);\n };\n CrispChat.prototype.openHelpdeskArticle = function (locale, slug, title, category) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"helpdesk:article:open\", [\n locale,\n slug,\n title,\n category\n ]]);\n };\n CrispChat.prototype.queryHelpdesk = function (query) {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"do\", \"helpdesk:query\", [query]]);\n };\n CrispChat.prototype.unreadCount = function () {\n if (!this.parent.isCrispInjected()) {\n return 0;\n }\n return window.$crisp.get(\"chat:unread:count\");\n };\n CrispChat.prototype.isChatOpened = function () {\n if (!this.parent.isCrispInjected()) {\n return false;\n }\n return window.$crisp.is(\"chat:opened\");\n };\n CrispChat.prototype.isVisible = function () {\n if (!this.parent.isCrispInjected()) {\n return false;\n }\n return window.$crisp.is(\"chat:visible\");\n };\n CrispChat.prototype.onChatInitiated = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offChatInitiated();\n window.$crisp.push([\"on\", \"chat:initiated\", callback]);\n };\n CrispChat.prototype.offChatInitiated = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"chat:initiated\"]);\n };\n CrispChat.prototype.onChatOpened = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offChatOpened();\n window.$crisp.push([\"on\", \"chat:opened\", callback]);\n };\n CrispChat.prototype.offChatOpened = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"chat:opened\"]);\n };\n CrispChat.prototype.onChatClosed = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offChatClosed();\n window.$crisp.push([\"on\", \"chat:closed\", callback]);\n };\n CrispChat.prototype.offChatClosed = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"chat:closed\"]);\n };\n CrispChat.prototype.onHelpdeskQueried = function (callback) {\n this.parent.createSingletonIfNecessary();\n this.offHelpdeskQueried();\n window.$crisp.push([\"on\", \"helpdesk:queried\", callback]);\n };\n CrispChat.prototype.offHelpdeskQueried = function () {\n this.parent.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"helpdesk:queried\"]);\n };\n return CrispChat;\n}());\n\nvar ChatboxColors;\n(function (ChatboxColors) {\n ChatboxColors[\"Default\"] = \"default\";\n ChatboxColors[\"Amber\"] = \"amber\";\n ChatboxColors[\"Black\"] = \"black\";\n ChatboxColors[\"Blue\"] = \"blue\";\n ChatboxColors[\"BlueGrey\"] = \"blue_grey\";\n ChatboxColors[\"LightBlue\"] = \"light_blue\";\n ChatboxColors[\"Brown\"] = \"brown\";\n ChatboxColors[\"Cyan\"] = \"cyan\";\n ChatboxColors[\"Green\"] = \"green\";\n ChatboxColors[\"LightGreen\"] = \"light_green\";\n ChatboxColors[\"Grey\"] = \"grey\";\n ChatboxColors[\"Indigo\"] = \"indigo\";\n ChatboxColors[\"Orange\"] = \"orange\";\n ChatboxColors[\"DeepOrange\"] = \"deep_orange\";\n ChatboxColors[\"Pink\"] = \"pink\";\n ChatboxColors[\"Purple\"] = \"purple\";\n ChatboxColors[\"DeepPurple\"] = \"deep_purple\";\n ChatboxColors[\"Red\"] = \"red\";\n ChatboxColors[\"Teal\"] = \"teal\";\n})(ChatboxColors || (ChatboxColors = {}));\nvar ChatboxPosition;\n(function (ChatboxPosition) {\n ChatboxPosition[\"Left\"] = \"left\";\n ChatboxPosition[\"Right\"] = \"right\";\n})(ChatboxPosition || (ChatboxPosition = {}));\nvar Crisp = /** @class */ (function () {\n function Crisp() {\n // Options\n this.clientUrl = \"https://client.crisp.chat/l.js\";\n this.websiteId = \"\";\n this.autoload = true;\n // States\n this.injected = false;\n this.chat = new CrispChat(this);\n this.session = new CrispSession(this);\n this.user = new CrispUser(this);\n this.message = new CrispMessage(this);\n this.trigger = new CrispTrigger(this);\n }\n Crisp.prototype.configure = function (websiteId, options) {\n if (options === void 0) { options = {}; }\n this.websiteId = websiteId;\n this.tokenId = options.tokenId;\n this.locale = options.locale;\n this.sessionMerge = options.sessionMerge;\n this.cookieDomain = options.cookieDomain;\n this.cookieExpire = options.cookieExpire;\n this.lockFullview = options.lockFullview;\n this.lockMaximized = options.lockMaximized;\n this.safeMode = options.safeMode;\n if (options.clientUrl !== undefined) {\n this.clientUrl = options.clientUrl;\n }\n if (options.autoload !== undefined) {\n this.autoload = options.autoload;\n }\n // Autoload Crisp if option is enabled\n if (this.autoload) {\n this.load();\n }\n };\n Crisp.prototype.load = function () {\n var _head = document.getElementsByTagName(\"head\");\n this.createSingletonIfNecessary();\n // Prevents from loading Crisp twice\n if (this.isCrispInjected() === true) {\n return;\n }\n if (!this.websiteId) {\n throw new Error(\"websiteId must be set before loading Crisp\");\n }\n window.CRISP_WEBSITE_ID = this.websiteId;\n window.CRISP_RUNTIME_CONFIG = {};\n if (this.tokenId) {\n window.CRISP_TOKEN_ID = this.tokenId;\n }\n if (this.sessionMerge) {\n window.CRISP_RUNTIME_CONFIG.session_merge = true;\n }\n if (this.locale) {\n window.CRISP_RUNTIME_CONFIG.locale = this.locale;\n }\n if (this.lockFullview) {\n window.CRISP_RUNTIME_CONFIG.lock_full_view = true;\n }\n if (this.lockMaximized) {\n window.CRISP_RUNTIME_CONFIG.lock_maximized = true;\n }\n if (this.cookieDomain) {\n window.CRISP_COOKIE_DOMAIN = this.cookieDomain;\n }\n if (this.cookieExpire) {\n window.CRISP_COOKIE_EXPIRE = this.cookieExpire;\n }\n if (!_head || !_head[0]) {\n return this.deferredLoading();\n }\n if (this.safeMode === true) {\n this.setSafeMode(true);\n }\n var _script = document.createElement(\"script\");\n _script.src = this.clientUrl;\n _script.async = true;\n _head[0].appendChild(_script);\n this.injected = true;\n };\n Crisp.prototype.setTokenId = function (tokenId) {\n this.tokenId = tokenId;\n // Refresh injected token?\n if (this.isCrispInjected() === true) {\n if (tokenId) {\n window.CRISP_TOKEN_ID = tokenId;\n }\n else {\n delete window.CRISP_TOKEN_ID;\n }\n }\n };\n Crisp.prototype.setZIndex = function (zIndex) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"container:index\", [zIndex]]);\n };\n Crisp.prototype.setColorTheme = function (color) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"color:theme\", [color]]);\n };\n Crisp.prototype.setHideOnAway = function (enabled) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"hide:on:away\", [enabled]]);\n };\n Crisp.prototype.setHideOnMobile = function (enabled) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"hide:on:mobile\", [enabled]]);\n };\n Crisp.prototype.setPosition = function (position) {\n this.createSingletonIfNecessary();\n $crisp.push([\"config\", \"position:reverse\", [\n position === ChatboxPosition.Left\n ]]);\n };\n Crisp.prototype.setAvailabilityTooltip = function (enabled) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"availability:tooltip\", [enabled]]);\n };\n Crisp.prototype.setVacationMode = function (enabled) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"hide:vacation\", [enabled]]);\n };\n Crisp.prototype.setSafeMode = function (safe) {\n if (safe === void 0) { safe = true; }\n this.createSingletonIfNecessary();\n window.$crisp.push([\"safe\", safe]);\n };\n Crisp.prototype.muteSound = function (mute) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"sound:mute\", [mute]]);\n };\n Crisp.prototype.toggleOperatorCount = function (enabled) {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"config\", \"show:operator:count\", [enabled]]);\n };\n Crisp.prototype.onWebsiteAvailabilityChanged = function (callback) {\n this.createSingletonIfNecessary();\n this.offWebsiteAvailabilityChanged();\n window.$crisp.push([\"on\", \"website:availability:changed\", callback]);\n };\n Crisp.prototype.offWebsiteAvailabilityChanged = function () {\n this.createSingletonIfNecessary();\n window.$crisp.push([\"off\", \"website:availability:changed\"]);\n };\n Crisp.prototype.createSingletonIfNecessary = function () {\n // Assigns $crisp singleton\n if (window.$crisp === undefined) {\n window.$crisp = [];\n }\n };\n Crisp.prototype.autoInjectIfNecessary = function () {\n if (!this.isCrispInjected()) {\n this.load();\n }\n };\n Crisp.prototype.isCrispInjected = function () {\n // Check if Crisp was injected (either from the Web SDK, or from another \\\n // source)\n if (this.injected === true || (window.$crisp && window.$crisp.is)) {\n return true;\n }\n return false;\n };\n Crisp.prototype.deferredLoading = function () {\n var _this = this;\n document.addEventListener(\"DOMContentLoaded\", function () {\n _this.load();\n });\n };\n return Crisp;\n}());\nvar singleton = new Crisp();\n\nexport { ChatboxColors, ChatboxPosition, singleton as Crisp, Crisp as CrispClass, EventsColors };\n//# sourceMappingURL=crisp.esm.js.map\n","/* eslint no-console:0 */\nimport './../polyfills'\nimport Rails from '@rails/ujs'\nimport '@hotwired/turbo-rails'\nimport * as ActiveStorage from '@rails/activestorage'\nimport 'jquery'\nimport 'bootstrap'\nimport '../rollbar/rollbarInit'\nimport '../standalone/manifest'\nimport LucaLogin from '../authentication/LucaLogin'\nimport './../vue/app'\nimport 'chart.js'\nimport 'trix'\nimport '@rails/actiontext'\n\nimport SetupStimulus from './../setupStimulus'\nimport './../libraries/fontawesome'\nimport './../libraries/turbo/stream_actions'\n\n// Set up legacy JavaScript.\ndocument.addEventListener('turbo:load', () => {\n new LucaLogin()\n})\n\nSetupStimulus.start()\nif (!(window as any)._rails_loaded) {\n Rails.start()\n}\nActiveStorage.start()\n\nimport { Crisp } from 'crisp-sdk-web'\n// Crisp automatically sets window.$crisp as well\n// @ts-ignore\nwindow.crispApp = Crisp\n"],"file":"assets/application-CbDP3Tf3.js"}
\n {{ i18n().t('automatic_bank_reconciliation.v2.you_can_mark_as_reconciled') }}\n
\n {{ i18n().t('automatic_bank_reconciliation.v2.month_not_finished') }}\n
\n {{ i18n().t('automatic_bank_reconciliation.v2.reconcile_previous_months') }}\n
{{ i18n().t('automatic_bank_reconciliation.v2.click_any_item') }}