{"version":3,"sources":["webpack://[name]/webpack/bootstrap","webpack://[name]/external \"React\"","webpack://[name]/./node_modules/tslib/tslib.es6.js","webpack://[name]/external \"ReactDOM\"","webpack://[name]/./ts/api/GenericApi.ts","webpack://[name]/./node_modules/prop-types/index.js","webpack://[name]/./ts/PlausibleHelpers.ts","webpack://[name]/./node_modules/micromark/dist/character/markdown-line-ending.js","webpack://[name]/./ts/application/app.tsx","webpack://[name]/./node_modules/micromark/dist/tokenize/factory-space.js","webpack://[name]/./ts/generic/helpers/unreachable.ts","webpack://[name]/./ts/application/validators/validators.ts","webpack://[name]/./ts/application/sections/section.tsx","webpack://[name]/./ts/application/conditional.tsx","webpack://[name]/./ts/application/inputs/textInput.tsx","webpack://[name]/./node_modules/micromark/dist/character/markdown-space.js","webpack://[name]/./ts/application/inputs/boolInput.tsx","webpack://[name]/./node_modules/micromark/dist/util/chunked-splice.js","webpack://[name]/./node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack://[name]/./node_modules/micromark/dist/util/regex-check.js","webpack://[name]/./ts/application/inputs/genericInput.tsx","webpack://[name]/./node_modules/micromark/dist/util/shallow.js","webpack://[name]/./node_modules/react-markdown/lib/react-markdown.js","webpack://[name]/./node_modules/micromark/dist/constant/assign.js","webpack://[name]/./ts/generic/helpers/regex.ts","webpack://[name]/./node_modules/micromark/dist/constant/from-char-code.js","webpack://[name]/./node_modules/micromark/dist/tokenize/partial-blank-line.js","webpack://[name]/./node_modules/micromark/dist/util/prefix-size.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack://[name]/./node_modules/unist-util-visit/index.js","webpack://[name]/./ts/application/inputs/dateInput.tsx","webpack://[name]/./ts/generic/helpers/uuid.ts","webpack://[name]/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://[name]/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://[name]/./node_modules/xtend/immutable.js","webpack://[name]/./node_modules/micromark/dist/util/normalize-identifier.js","webpack://[name]/./node_modules/micromark/dist/util/miniflat.js","webpack://[name]/./node_modules/micromark/dist/util/chunked-push.js","webpack://[name]/./node_modules/micromark/dist/util/resolve-all.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-alpha.js","webpack://[name]/./node_modules/micromark/dist/tokenize/label-end.js","webpack://[name]/./ts/application/sections/education/reducer.ts","webpack://[name]/./ts/generic/helpers/session.ts","webpack://[name]/./ts/application/captcha.tsx","webpack://[name]/./node_modules/react-is/index.js","webpack://[name]/./node_modules/unist-util-stringify-position/index.js","webpack://[name]/./node_modules/micromark/dist/constant/has-own-property.js","webpack://[name]/./node_modules/micromark/dist/util/size-chunks.js","webpack://[name]/./node_modules/micromark/dist/util/subtokenize.js","webpack://[name]/./node_modules/micromark/dist/initialize/text.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-control.js","webpack://[name]/./node_modules/parse-entities/decode-entity.browser.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-digit.js","webpack://[name]/./node_modules/micromark/dist/tokenize/factory-destination.js","webpack://[name]/./node_modules/micromark/dist/tokenize/factory-label.js","webpack://[name]/./node_modules/micromark/dist/tokenize/factory-whitespace.js","webpack://[name]/./node_modules/micromark/dist/tokenize/factory-title.js","webpack://[name]/./node_modules/micromark/dist/tokenize/thematic-break.js","webpack://[name]/./ts/application/sections/availability/reducer.ts","webpack://[name]/./ts/application/sections/education/education.tsx","webpack://[name]/./ts/application/inputs/numInput.tsx","webpack://[name]/./ts/application/inputs/selectInput.tsx","webpack://[name]/./ts/application/sections/eligibility/reducer.ts","webpack://[name]/./ts/application/sections/emergencyContact/reducer.ts","webpack://[name]/./ts/application/sections/employmentRecord/employmentRecord.tsx","webpack://[name]/./ts/application/sections/employmentRecord/reducer.ts","webpack://[name]/./ts/application/sections/equalOpportunity/reducer.ts","webpack://[name]/./ts/application/sections/family/reducer.ts","webpack://[name]/./ts/application/sections/personalInformation/reducer.ts","webpack://[name]/./ts/application/sections/references/references.tsx","webpack://[name]/./ts/application/sections/references/reducer.ts","webpack://[name]/./ts/application/sections/resume/reducer.ts","webpack://[name]/./ts/application/sections/skills/skills.tsx","webpack://[name]/./ts/application/sections/skills/reducer.ts","webpack://[name]/./ts/application/sections/workHistory/reducer.ts","webpack://[name]/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://[name]/./ts/Application.tsx","webpack://[name]/./ts/api/ApplicationApi.ts","webpack://[name]/./node_modules/react-is/cjs/react-is.production.min.js","webpack://[name]/./ts/application/layout.tsx","webpack://[name]/./ts/application/intro.tsx","webpack://[name]/./node_modules/unified/index.js","webpack://[name]/./node_modules/bail/index.js","webpack://[name]/./node_modules/unified/node_modules/is-buffer/index.js","webpack://[name]/./node_modules/extend/index.js","webpack://[name]/./node_modules/is-plain-obj/index.js","webpack://[name]/./node_modules/trough/index.js","webpack://[name]/./node_modules/trough/wrap.js","webpack://[name]/./node_modules/vfile/index.js","webpack://[name]/./node_modules/vfile/lib/index.js","webpack://[name]/./node_modules/vfile-message/index.js","webpack://[name]/./node_modules/vfile/lib/core.js","webpack://[name]/./node_modules/vfile/lib/minpath.browser.js","webpack://[name]/./node_modules/vfile/lib/minproc.browser.js","webpack://[name]/./node_modules/vfile/node_modules/is-buffer/index.js","webpack://[name]/./node_modules/remark-parse/index.js","webpack://[name]/./node_modules/mdast-util-from-markdown/index.js","webpack://[name]/./node_modules/mdast-util-from-markdown/dist/index.js","webpack://[name]/./node_modules/mdast-util-to-string/index.js","webpack://[name]/./node_modules/micromark/dist/util/safe-from-int.js","webpack://[name]/./node_modules/micromark/dist/parse.js","webpack://[name]/./node_modules/micromark/dist/initialize/content.js","webpack://[name]/./node_modules/micromark/dist/initialize/document.js","webpack://[name]/./node_modules/micromark/dist/initialize/flow.js","webpack://[name]/./node_modules/micromark/dist/tokenize/content.js","webpack://[name]/./node_modules/micromark/dist/constant/splice.js","webpack://[name]/./node_modules/micromark/dist/util/combine-extensions.js","webpack://[name]/./node_modules/micromark/dist/util/create-tokenizer.js","webpack://[name]/./node_modules/micromark/dist/util/serialize-chunks.js","webpack://[name]/./node_modules/micromark/dist/util/slice-chunks.js","webpack://[name]/./node_modules/micromark/dist/constructs.js","webpack://[name]/./node_modules/micromark/dist/tokenize/attention.js","webpack://[name]/./node_modules/micromark/dist/util/classify-character.js","webpack://[name]/./node_modules/micromark/dist/character/unicode-punctuation.js","webpack://[name]/./node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack://[name]/./node_modules/micromark/dist/character/unicode-whitespace.js","webpack://[name]/./node_modules/micromark/dist/util/move-point.js","webpack://[name]/./node_modules/micromark/dist/tokenize/autolink.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-atext.js","webpack://[name]/./node_modules/micromark/dist/tokenize/block-quote.js","webpack://[name]/./node_modules/micromark/dist/tokenize/character-escape.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-punctuation.js","webpack://[name]/./node_modules/micromark/dist/tokenize/character-reference.js","webpack://[name]/./node_modules/micromark/dist/character/ascii-hex-digit.js","webpack://[name]/./node_modules/micromark/dist/tokenize/code-fenced.js","webpack://[name]/./node_modules/micromark/dist/tokenize/code-indented.js","webpack://[name]/./node_modules/micromark/dist/tokenize/code-text.js","webpack://[name]/./node_modules/micromark/dist/tokenize/definition.js","webpack://[name]/./node_modules/micromark/dist/tokenize/hard-break-escape.js","webpack://[name]/./node_modules/micromark/dist/tokenize/heading-atx.js","webpack://[name]/./node_modules/micromark/dist/tokenize/html-flow.js","webpack://[name]/./node_modules/micromark/dist/constant/html-block-names.js","webpack://[name]/./node_modules/micromark/dist/constant/html-raw-names.js","webpack://[name]/./node_modules/micromark/dist/tokenize/html-text.js","webpack://[name]/./node_modules/micromark/dist/tokenize/label-start-image.js","webpack://[name]/./node_modules/micromark/dist/tokenize/label-start-link.js","webpack://[name]/./node_modules/micromark/dist/tokenize/line-ending.js","webpack://[name]/./node_modules/micromark/dist/tokenize/list.js","webpack://[name]/./node_modules/micromark/dist/tokenize/setext-underline.js","webpack://[name]/./node_modules/micromark/dist/preprocess.js","webpack://[name]/./node_modules/micromark/dist/postprocess.js","webpack://[name]/./node_modules/mdast-add-list-metadata/index.js","webpack://[name]/./node_modules/unist-util-visit-parents/index.js","webpack://[name]/./node_modules/react-markdown/lib/plugins/naive-html.js","webpack://[name]/./node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js","webpack://[name]/./node_modules/unist-util-is/convert.js","webpack://[name]/./node_modules/unist-util-visit/node_modules/unist-util-visit-parents/color.browser.js","webpack://[name]/./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack://[name]/./node_modules/react-markdown/lib/ast-to-react.js","webpack://[name]/./node_modules/react-markdown/lib/wrap-table-rows.js","webpack://[name]/./node_modules/react-markdown/lib/get-definitions.js","webpack://[name]/./node_modules/react-markdown/lib/uri-transformer.js","webpack://[name]/./node_modules/react-markdown/lib/renderers.js","webpack://[name]/./node_modules/react-markdown/lib/symbols.js","webpack://[name]/./ts/application/review.tsx","webpack://[name]/./ts/application/sections/availability/availability.tsx","webpack://[name]/./ts/application/sections/legend.tsx","webpack://[name]/./ts/application/sections/education/educationRow.tsx","webpack://[name]/./ts/application/sections/eligibility/eligibility.tsx","webpack://[name]/./ts/application/sections/emergencyContact/emergencyContact.tsx","webpack://[name]/./ts/application/inputs/radioInput.tsx","webpack://[name]/./ts/application/sections/employmentRecord/employmentRecordRow.tsx","webpack://[name]/./ts/application/inputs/textAreaInput.tsx","webpack://[name]/./ts/application/sections/equalOpportunity/equalOpportunity.tsx","webpack://[name]/./ts/application/sections/family/family.tsx","webpack://[name]/./ts/application/sections/personalInformation/personalInformation.tsx","webpack://[name]/./ts/application/sections/references/referenceRow.tsx","webpack://[name]/./ts/application/sections/resume/resume.tsx","webpack://[name]/./ts/application/inputs/fileInput.tsx","webpack://[name]/./ts/application/sections/skills/skillRow.tsx","webpack://[name]/./ts/application/sections/workHistory/workHistory.tsx","webpack://[name]/./ts/application/reducer.ts","webpack://[name]/./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://[name]/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://[name]/./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://[name]/./node_modules/react-google-recaptcha/lib/esm/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","TypeError","String","__","this","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","done","context","access","addInitializer","push","result","set","init","unshift","__runInitializers","thisArg","useValue","__propKey","x","concat","__setFunctionName","prefix","description","configurable","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","body","y","g","label","sent","trys","ops","verb","iterator","v","op","pop","__createBinding","k","k2","undefined","writable","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","slice","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","default","__classPrivateFieldGet","receiver","state","has","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","Error","__disposeResources","fail","hasError","rec","ReactDOM","GenericApi","MergeDefaultGet","options","method","credentials","genericRequest","url","request","Request","response","fetch","status","json","fireAndForget","getRequest","postRequest","JSON","stringify","postFormData","eventName","eventProps","window","plausible","props","console","warn","errorLevel","code","Context","createContext","StateDefaults","applicationId","type","introText","abbreviatedText","employmentText","referencesText","eeoText","conditionsText","dispatch","defaults","Session","hasSavedState","getSavedState","useReducer","reducer","useEffect","submitting","submitted","success","ApplicationApi","submitApplication","ex","submit","Provider","markdownSpace","effects","ok","max","limit","Infinity","size","enter","consume","exit","RequiredNumber","RequiredString","NotRequiredString","RequiredDate","dateRegex","test","RequiredState","RequiredEmail","emailRegex","NotRequiredEmail","RequiredZip","zipRegex","RequiredPhone","phoneRegex","NotRequiredPhone","BoolValidator","_value","FileValidator","Additional","children","className","index","currentIndex","maxIndex","valid","submitAction","additionalActions","open","show","disabled","onClick","event","preventDefault","falseElement","blur","setBlur","useState","immediateValidate","inputClass","validator","id","onChange","update","onBlur","required","autoFocus","list","labelStyle","display","flexFlow","alignItems","justifyContent","captureFocus","Fragment","checked","tabIndex","splice","start","remove","items","parameters","end","chunkStart","fromCharCode","regex","showError","labelRef","useRef","useLayoutEffect","current","focus","ref","htmlFor","style","onKeyPress","stopPropagation","currentTarget","click","cloneElement","errorMessage","xtend","unified","parse","PropTypes","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","symbols","allTypes","keys","ReactMarkdown","src","source","allowedTypes","disallowedTypes","renderers","processor","use","plugins","tree","runSync","renderProps","definitions","transforms","filter","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","allowDangerousHtml","escapeHtml","skipHtml","hasHtmlParser","astPlugins","some","transform","identity","HtmlParser","determineAstToReactTransforms","forEach","defaultProps","transformLinkUri","propTypes","string","sourcePos","bool","rawSourcePos","func","arrayOf","oneOf","oneOfType","linkTarget","transformImageUri","array","types","markdownLineEnding","factorySpace","partialBlankLine","tokenize","nok","partial","sizeChunks","events","tail","sliceStream","asciiAlphanumeric","regexCheck","visit","visitParents","CONTINUE","SKIP","EXIT","visitor","reverse","node","parents","parent","formatDate","date","month","getMonth","toString","padStart","year","getFullYear","getDate","autofocus","min","replace","Math","random","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bigint","number","symbol","any","element","elementType","instanceOf","objectOf","shape","exact","checkPropTypes","toLowerCase","toUpperCase","chunkedSplice","constructs","called","resolveAll","asciiAlpha","markdownLineEndingOrSpace","chunkedPush","normalizeIdentifier","shallow","factoryDestination","factoryLabel","factoryTitle","factoryWhitespace","labelEnd","labelStart","defined","self","_balanced","_inactive","balanced","parser","sliceSerialize","now","afterLabelEnd","attempt","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","resolveTo","group","text","token","close","media","offset","insideSpan","null","_used","destinationAfter","between","afterLabel","validate","education","EducationLevels","EducationDefaults","uuid","uuidv4","level","nameOfSchool","yearsCompleted","graduated","major","action","newState","appType","filteredEducation","_e","removedState","row","newEducation","updateState","assertUnreachable","KEY","HAS_SESSION_STORAGE","sessionStorage","setItem","removeItem","appId","getItem","appContext","useContext","reCaptchaRef","execute","sitekey","captcha","onErrored","alert","badge","own","point","line","column","position","pos","chunks","subcontent","eventIndex","stream","previous","entered","adjust","startPosition","startPositions","tokenizer","_tokenizer","contentType","childEvents","jumps","gaps","defineSkip","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","write","add","lineIndex","otherIndex","otherEvent","subevents","more","_container","_movePreviousLineEndings","initializeFactory","resolver","createResolver","field","notText","atBreak","data","resolveAllLineSuffixes","extraResolver","chunk","bufferIndex","tabs","charCodeAt","_index","_bufferIndex","el","characters","char","entity","document","createElement","innerHTML","textContent","asciiDigit","asciiControl","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","seen","marker","atFirstTitleBreak","atTitleBreak","title","titleEscape","thematicBreak","sequence","availabilityDate","availableMorning","availableAfternoon","availableEvening","availableLateNight","availableSaturday","availableSunday","map","parseInt","values","license","stateOfIssue","qualified","relationship","phone","employmentRecord","employment","er","hasObjections","Objections","objection","laterDate","EmploymentDefaults","employer","address","city","zip","supervisor","reason","duties","filteredEmployment","newEmployment","ReferralSources","Genders","Races","referralSource","extra","gender","race","veteran","family","who","first","last","address1","county","middle","address2","email","over21","references","ReferenceDefaults","company","telephone","newReferences","coverLetter","skills","SkillDefaults","skill","training","experience","filteredSkills","_s","newSkills","pastWork","mtdStartDate","mtdEndDate","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","getElementById","reactApp","mtd","application","reactDom","fd","FormData","append","for","h","w","z","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","begun","submitError","bail","buffer","extend","plain","trough","vfile","frozen","attachers","transformers","namespace","freezeIndex","assertUnfrozen","freeze","settings","addPlugin","addList","addPreset","plugin","entry","find","doc","Parser","file","assertParser","newable","Compiler","assertCompiler","assertNode","compile","run","complete","assertDone","process","processSync","destination","transformer","cb","executor","pipeline","ctx","contents","asyncName","obj","isBuffer","hasOwn","toStr","gOPD","isArray","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copy","copyIsArray","clone","deep","wrap","fns","middleware","input","fn","params","callback","invoked","VMessage","VFile","origin","path","fatal","messages","info","VMessagePrototype","proto","parts","range","parseOrigin","ruleId","proc","order","prop","history","cwd","assertPart","part","sep","assertNonEmpty","assertPath","encoding","dirname","join","basename","extname","stem","normalize","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","fromMarkdown","extensions","mdastExtensions","config","extension","configure","canContainEols","autolink","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","codeTextData","codeFlowValue","definition","identifier","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","html","htmlFlowData","htmlText","htmlTextData","image","alt","listItem","spread","_spread","listItemValue","getData","setData","listOrdered","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","depth","onexitdata","characterEscapeValue","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","safeFromInt","decode","codeFencedFence","lang","meta","onexithardbreak","referenceType","fragment","labelText","lineEnding","resource","setextHeadingLineSequence","setextHeadingText","handler","listStart","tokenStack","listStack","prepareList","stringifyPosition","tailIndex","tailEvent","firstBlankLineIndex","atMarker","containerBalance","listSpread","and","siblings","ordered","compiler","postprocess","preprocessor","left","all","base","content","flow","combineExtensions","createTokenizer","miniflat","initializer","contentStart","contentInitial","lineStart","inspectResult","childFlow","childToken","continued","inspectConstruct","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","interruptible","containerConstruct","inspectFlowEnd","_closeFlow","lazy","lazyFlowConstruct","check","inspectLazy","flowEnd","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","continueFlow","documentAfterPeek","disable","initial","flowInitial","afterConstruct","prefixSize","subtokenize","contentEnd","continuationConstruct","contentContinue","prefixed","hook","right","existing","before","serializeChunks","sliceChunks","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","main","chunkIndex","go","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","atTab","view","startIndex","startBufferIndex","endIndex","endBufferIndex","text$1","attention","headingAtx","labelStartImage","labelStartLink","setextUnderline","42","43","45","48","49","50","51","52","53","54","55","56","57","62","91","32","35","60","61","95","96","126","38","92","33","93","classifyCharacter","movePoint","after","_open","_close","openingSequence","closingSequence","nextEvents","unicodePunctuation","unicodeWhitespace","unicodePunctuationRegex","asciiAtext","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","asciiPunctuation","decodeEntity","asciiHexDigit","_interopDefaultLegacy","decodeEntity__default","numeric","closingFenceConstruct","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","indentedContentConstruct","afterPrefix","gap","tailExitIndex","headEnterIndex","labelAfter","titleConstruct","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","tagName","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","initialSize","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","search","atCarriageReturn","match","endPosition","lastIndex","exec","ceil","visitWithParents","ast","listNode","child","one","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","tag","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","fromIndex","toIndex","indent","virtual","convert","color","is","factory","subresult","grandparents","toResult","Boolean","typeFactory","tests","checks","anyFactory","allFactory","allow","includes","ReactIs","renderer","nodeProps","getNodeProps","resolveChildren","childNode","opts","isSimpleRenderer","sourcePosition","includeNodeIndex","parentChildCount","assignDefined","nodeKey","loose","listItemLoose","listLoose","reduce","unwrapParagraphs","getListItemChildren","language","split","inline","href","columnAlignment","align","isHeader","isBlock","parsedChildren","Children","toArray","mergeNodeChildren","attrs","table","protocols","uri","trim","charAt","colon","protocol","supportsStringRender","version","SimpleRenderer","getCoreProps","break","blockquote","delete","linkReference","imageReference","tableHead","tableBody","tableRow","tableCell","textAlign","coreProps","root","checkbox","readOnly","inlineCode","dangerous","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","captchaContext","personalInfo","cc","_id","marginRight","availability","Date","isOpen","showValid","item","eligibility","emergencyContact","labelKeyPress","RadioButton","radioProps","rows","cols","columns","equalOpportunity","parentValid","canSubmit","maxSize","MB","dragElement","inputRef","cssState","setCssState","showMimeType","setShowMimeType","showSize","setShowSize","updateValid","sizeOk","mimeOk","files","dragEventHandler","dataTransfer","addEventListener","removeEventListener","bytes","toFixed","workHistory","canSubmitPreviousSections","initialValue","hasChanged","_valid","nextIndex","baseReducer","actionType","page","logAnalytics","clearSavedState","saveState","save","_extends","_assertThisInitialized","ReferenceError","_React$Component","subClass","superClass","ReCAPTCHA","_this","handleExpired","handleErrored","handleChange","handleRecaptchaRef","_proto","getValue","grecaptcha","_widgetId","getResponse","getWidgetId","_executeRequested","executeAsync","_this2","executionResolve","executionReject","reset","onExpired","explicitRender","wrapper","theme","tabindex","stoken","hl","appendChild","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","firstChild","setTimeout","removeChild","elem","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","Component","SCRIPT_MAP","idCount","getScriptURL","recaptchaOptions","useRecaptchaNet","callbackName","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","errored","script","attribute","attributes","setAttribute","callObserverFuncAndRemoveObserver","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","forwardedRef","ForwardedComponent"],"mappings":"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","file":"application.8311d665f237540c2b8e.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 134);\n","module.exports = React;","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport 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}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\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;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    function next() {\r\n        while (env.stack.length) {\r\n            var rec = env.stack.pop();\r\n            try {\r\n                var result = rec.dispose && rec.dispose.call(rec.value);\r\n                if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n","module.exports = ReactDOM;","export module GenericApi {\r\n\r\n\tconst MergeDefaultGet: (options: RequestInit) => RequestInit = (options: RequestInit) => ({\r\n\t\tmethod: 'GET',\r\n\t\tcredentials: 'same-origin',\r\n\t\t...options\r\n\t});\r\n\r\n\texport async function fireAndForget(url: string, options: RequestInit = {}): Promise<boolean> {\r\n\t\tconst init: RequestInit = MergeDefaultGet(options);\r\n\t\tconst request: Request = new Request(url, init);\r\n\t\tconst response: Response = await fetch(request);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\texport async function getRequest<T>(url: string, options: RequestInit = {}): Promise<T> {\r\n\t\tconst init: RequestInit = MergeDefaultGet(options);\r\n\r\n\t\treturn await genericRequest<T>(url, init);\r\n\t}\r\n\r\n\texport async function postRequest<TBody, TResult>(url: string, body: TBody, options: RequestInit = {}): Promise<TResult> {\r\n\t\tconst init: RequestInit = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tcredentials: 'same-origin',\r\n\t\t\tbody: JSON.stringify(body),\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\treturn await genericRequest<TResult>(url, init);\r\n\t}\r\n\r\n\texport async function postFormData<TResult>(url: string, body: FormData, options: RequestInit = {}): Promise<TResult> {\r\n\t\tconst init: RequestInit = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tcredentials: 'same-origin',\r\n\t\t\tbody,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\treturn await genericRequest<TResult>(url, init);\r\n\t}\r\n\r\n\tasync function genericRequest<T>(url: string, init: RequestInit): Promise<T> {\r\n\t\tconst request: Request = new Request(url, init);\r\n\t\tconst response: Response = await fetch(request);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn await response.json() as T;\r\n\t\t}\r\n\t\tthrow `Status ${response.status}: when fetching '${url}'`;\r\n\t}\r\n\r\n}\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\r\n * Tracks an event using Plausible Analytics.\r\n *\r\n * @param eventName - The name of the event to track.\r\n * @param eventProps - Optional properties associated with the event.\r\n */\r\nexport default function trackEvent(eventName: string, eventProps: Record<string, any> = {}): void {\r\n\tif (window.plausible) {\r\n\t\twindow.plausible(eventName, {\r\n\t\t\tprops: eventProps,\r\n\t\t});\r\n\t} else {\r\n\t\tconsole.warn('Plausible Analytics is not loaded. Failed to track event:', eventName, eventProps);\r\n\t}\r\n}\r\n\r\nexport function trackError(eventName: string, module: string, eventProps: Record<string, any> = {}, errorLevel: 'debug' | 'info' | 'warning' | 'error' = 'error'): void {\r\n\tif (window.plausible) {\r\n\t\tvar props = {\r\n\t\t\t...eventProps,\r\n\t\t\terror: true,\r\n\t\t\tmodule,\r\n\t\t\terrorLevel\r\n\t\t};\r\n\r\n\t\twindow.plausible(eventName, {\r\n\t\t\tprops\r\n\t\t});\r\n\t} else {\r\n\t\tconsole.warn('Plausible Analytics is not loaded. Failed to track event:', eventName, eventProps);\r\n\t}\r\n}\r\n","'use strict'\n\nfunction markdownLineEnding(code) {\n  return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, Dispatch, FC, useEffect } from 'react';\r\nimport * as ApplicationApi from '../api/ApplicationApi';\r\nimport * as Session from '../generic/helpers/session';\r\nimport Captcha from './captcha';\r\nimport Layout from './layout';\r\nimport { Action, AppType, reducer, State, StateDefaults } from './reducer';\r\n\r\ninterface Props {\r\n\ttype: AppType;\r\n\tapplicationId: number;\r\n\tintroText: string;\r\n\tabbreviatedText: string;\r\n\temploymentText: string;\r\n\treferencesText: string;\r\n\teeoText: string;\r\n\tconditionsText: string;\r\n}\r\n\r\nexport interface ContextType {\r\n\tstate: State;\r\n\tdispatch: Dispatch<Action>;\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tstate: { ...StateDefaults, applicationId: -1, type: 'abbreviated', introText: '', abbreviatedText: '', employmentText: '', referencesText: '', eeoText: '', conditionsText: '' },\r\n\tdispatch: () => { }\r\n});\r\n\r\nconst App: FC<Props> = (props: Props) => {\r\n\r\n\tconst defaults: State = Session.hasSavedState(props.applicationId) ? { ...Session.getSavedState(props.applicationId), ...props } : { ...StateDefaults, ...props };\r\n\r\n\tconst [state, dispatch] = React.useReducer(reducer, defaults);\r\n\r\n\tuseEffect(() => {\r\n\t\tasync function submit() {\r\n\t\t\ttry {\r\n\t\t\t\tconst success: boolean = await ApplicationApi.submitApplication(state);\r\n\t\t\t\tdispatch({ type: success ? 'submitted' : \"submit-error\" });\r\n\t\t\t} catch (ex) {\r\n\t\t\t\tconsole.error(ex);\r\n\t\t\t\tdispatch({ type: 'submit-error' });\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (state.submitting && !state.submitted) {\r\n\t\t\tsubmit();\r\n\t\t}\r\n\t}, [state.submitting, state.submitted]);\r\n\r\n\tconst context: ContextType = {\r\n\t\tstate, dispatch\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t<Captcha>\r\n\t\t\t\t<Layout />\r\n\t\t\t</Captcha>\r\n\t\t</Context.Provider>\r\n\t);\r\n};\r\nexport default App;\r\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n  var limit = max ? max - 1 : Infinity\n  var size = 0\n  return start\n\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type)\n      return prefix(code)\n    }\n\n    return ok(code)\n  }\n\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code)\n      return prefix\n    }\n\n    effects.exit(type)\n    return ok(code)\n  }\n}\n\nmodule.exports = spaceFactory\n","export function assertUnreachable(x: never): never {\r\n\tthrow new Error(\"Didn't expect to get here\");\r\n}\r\n","import { dateRegex, emailRegex, phoneRegex, zipRegex } from '../../generic/helpers/regex';\r\n\r\nexport type Validator<T> = (value: T) => boolean;\r\n\r\nexport const RequiredNumber: Validator<number> = (value: number) => {\r\n\treturn true;\r\n}\r\n\r\nexport const RequiredString: Validator<string> = (value: string) => {\r\n\treturn value && value.length > 0;\r\n};\r\n\r\nexport const NotRequiredString: Validator<string> = (value: string) => {\r\n\treturn true;\r\n};\r\n\r\nexport const RequiredDate: Validator<string> = (value: string) => {\r\n\treturn dateRegex.test(value);\r\n}\r\n\r\nexport const RequiredState: Validator<string> = (value: string) => {\r\n\treturn value && value.length >= 2;\r\n}\r\n\r\nexport const RequiredEmail: Validator<string> = (value: string) => {\r\n\treturn emailRegex.test(value);\r\n};\r\n\r\nexport const NotRequiredEmail: Validator<string> = (value: string) => {\r\n\tif (value && value.length > 0) {\r\n\t\treturn emailRegex.test(value);\r\n\t}\r\n\treturn true;\r\n};\r\n\r\nexport const RequiredZip: Validator<string> = (value: string) => {\r\n\treturn zipRegex.test(value);\r\n};\r\n\r\nexport const RequiredPhone: Validator<string> = (value: string) => {\r\n\treturn phoneRegex.test(value);\r\n}\r\n\r\nexport const NotRequiredPhone: Validator<string> = (value: string) => {\r\n\tif (value && value.length > 0) {\r\n\t\treturn phoneRegex.test(value);\r\n\t}\r\n\treturn true;\r\n};\r\n\r\nexport const BoolValidator: Validator<boolean> = (_value: boolean) => true;\r\n\r\nexport const FileValidator: Validator<File> = (_value: File) => true;\r\n","import * as React from 'react';\r\nimport { FC, MouseEvent, ReactElement } from 'react';\r\nimport Conditional from '../conditional';\r\nimport Legend from './legend';\r\n\r\ninterface Props {\r\n\tindex: number;\r\n\tcurrentIndex: number;\r\n\tmaxIndex: number;\r\n\tvalid: boolean;\r\n\tname: string;\r\n\tsubmit: () => void;\r\n\tchildren: JSX.Element | JSX.Element[];\r\n\tadditionalActions?: ReactElement | ReactElement[];\r\n}\r\n\r\nfunction Additional(props: { children?: ReactElement | ReactElement[] }): JSX.Element | null {\r\n\r\n\tif (props.children) {\r\n\t\treturn (\r\n\t\t\t<div className=\"additional-actions\">\r\n\t\t\t\t{props.children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nconst PersonalInformation: FC<Props> = ({ index, currentIndex, maxIndex, valid, name, submit: submitAction, children, additionalActions }: Props) => {\r\n\tconst open: boolean = currentIndex === index;\r\n\tfunction submit(event: MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tsubmitAction();\r\n\t}\r\n\r\n\treturn (\r\n\t\t<fieldset className=\"app-section\">\r\n\t\t\t<Legend currentIndex={currentIndex} maxIndex={maxIndex} index={index} valid={valid}>{name}</Legend>\r\n\t\t\t<Conditional show={open}>\r\n\t\t\t\t<div className=\"grid app-section-container\">\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\t<div className=\"row actions\">\r\n\t\t\t\t\t\t<div className=\"full actions-container\">\r\n\t\t\t\t\t\t\t<div className=\"next\">\r\n\t\t\t\t\t\t\t\t<button className=\"button\" disabled={!valid} onClick={submit}>Next</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<Additional>{additionalActions}</Additional>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</Conditional>\r\n\t\t</fieldset>\r\n\t);\r\n\r\n}\r\n\r\nexport default PersonalInformation;\r\n","import { FC, ReactElement } from 'react';\r\n\r\ninterface Props {\r\n\tshow: boolean;\r\n\tchildren: ReactElement;\r\n\tfalseElement?: ReactElement;\r\n}\r\n\r\nconst Conditional: FC<Props> = (props: Props) => {\r\n\tif (!props.show) {\r\n\t\tif (props.falseElement) {\r\n\t\t\treturn props.falseElement;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\treturn props.children;\r\n}\r\n\r\nexport default Conditional;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, useState } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface TextProps extends InputProps {\r\n\tvalue: string;\r\n\tupdate: (value: string, id: string) => void;\r\n\ttype?: 'text' | 'phone' | 'email';\r\n\tlist?: string;\r\n\trequired?: boolean;\r\n\tvalidator: Validator<string>;\r\n\terrorMessage: string;\r\n}\r\n\r\nconst TextInput: FC<TextProps> = (props: TextProps) => {\r\n\r\n\tconst [blur, setBlur] = useState(props.immediateValidate);\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLInputElement>): void {\r\n\t\tprops.update(event.target.value, props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass}>\r\n\t\t\t<input\r\n\t\t\t\tid={props.id}\r\n\t\t\t\tonChange={onChange}\r\n\t\t\t\tonBlur={onBlur}\r\n\t\t\t\tvalue={props.value}\r\n\t\t\t\trequired={props.required || false}\r\n\t\t\t\tautoFocus={props.autoFocus || false}\r\n\t\t\t\ttype={props.type || 'text'}\r\n\t\t\t\taria-invalid={inputClass === 'invalid'}\r\n\t\t\t\tlist={props.list || ''}\r\n\t\t\t/>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default TextInput;\r\n","'use strict'\n\nfunction markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, Fragment, useState } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface BoolProps extends InputProps {\r\n\tvalue: boolean;\r\n\tupdate: (value: boolean, id: string) => void;\r\n\tvalidator: Validator<boolean>;\r\n\r\n}\r\n\r\nconst BoolInput: FC<BoolProps> = (props: BoolProps) => {\r\n\r\n\tconst [blur, setBlur] = useState(false);\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLInputElement>): void {\r\n\t\tprops.update(event.target.checked, props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass} labelStyle={{ display: 'flex', flexFlow: 'row-reverse nowrap', alignItems: 'center', justifyContent: 'flex-end' }} captureFocus={true}>\r\n\t\t\t<Fragment>\r\n\t\t\t\t<i className=\"material-icons\">{props.value ? 'check_box' : 'check_box_outline_blank'}</i>\r\n\t\t\t\t<input\r\n\t\t\t\t\tid={props.id}\r\n\t\t\t\t\tchecked={props.value}\r\n\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\tonChange={onChange}\r\n\t\t\t\t\tonBlur={onBlur}\r\n\t\t\t\t\ttabIndex={-1}\r\n\t\t\t\t/>\r\n\t\t\t</Fragment>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default BoolInput;\r\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n  var end = list.length\n  var chunkStart = 0\n  var parameters // Make start between zero and `end` (included).\n\n  if (start < 0) {\n    start = -start > end ? 0 : end + start\n  } else {\n    start = start > end ? end : start\n  }\n\n  remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n  if (items.length < 10000) {\n    parameters = Array.from(items)\n    parameters.unshift(start, remove)\n    splice.apply(list, parameters)\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000)\n      parameters.unshift(start, 0)\n      splice.apply(list, parameters)\n      chunkStart += 10000\n      start += 10000\n    }\n  }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n  return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n  return check\n\n  function check(code) {\n    return regex.test(fromCharCode(code))\n  }\n}\n\nmodule.exports = regexCheck\n","import * as React from 'react';\r\nimport { cloneElement, CSSProperties, FC, KeyboardEvent, ReactElement, useLayoutEffect, useRef } from 'react';\r\n\r\nexport type Validity = 'default' | 'valid' | 'invalid';\r\n\r\nexport interface InputProps {\r\n\tlabel: string;\r\n\tid: string;\r\n\trequired?: boolean;\r\n\tsize: 'full' | 'half' | 'double' | 'single';\r\n\tlabelStyle?: CSSProperties;\r\n\timmediateValidate: boolean;\r\n\terrorMessage: string;\r\n\tcaptureFocus?: boolean;\r\n\tautoFocus?: boolean;\r\n}\r\n\r\ninterface ChildProps {\r\n\tchildren: ReactElement;\r\n\tvalid: Validity;\r\n}\r\n\r\ntype Props = InputProps & ChildProps;\r\n\r\nconst GenericInput: FC<Props> = (props: Props) => {\r\n\tconst captureFocus: boolean = props.captureFocus === undefined ? false : props.captureFocus;\r\n\tconst showError: boolean = props.valid === 'invalid';\r\n\r\n\tconst labelRef = useRef<HTMLLabelElement>();\r\n\tif (captureFocus && props.autoFocus) {\r\n\t\tuseLayoutEffect(() => {\r\n\t\t\tif (labelRef.current) {\r\n\t\t\t\tlabelRef.current.focus();\r\n\t\t\t}\r\n\t\t}, []);\r\n\t}\r\n\r\n\tfunction labelKeyPress(event: KeyboardEvent<HTMLLabelElement>): void {\r\n\t\tif (event.key === ' ' || event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tevent.currentTarget.click();\r\n\t\t\tevent.currentTarget.focus();\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className={`${props.size} ${props.valid}`}>\r\n\t\t\t<div className=\"form-group\">\r\n\t\t\t\t<label\r\n\t\t\t\t\tref={labelRef}\r\n\t\t\t\t\thtmlFor={props.id}\r\n\t\t\t\t\tclassName={props.required ? 'required nested' : 'not-required'}\r\n\t\t\t\t\tstyle={props.labelStyle || {}} tabIndex={captureFocus ? 0 : -1}\r\n\t\t\t\t\tonKeyPress={captureFocus ? labelKeyPress : null}\r\n\t\t\t\t>\r\n\t\t\t\t\t<span className=\"label\">{props.label}</span>\r\n\t\t\t\t\t{cloneElement(props.children, { autoFocus: props.autoFocus })}\r\n\t\t\t\t\t<p className={showError ? 'error' : 'no-error'} aria-live=\"assertive\" aria-relevant=\"all\">\r\n\t\t\t\t\t\t{showError ? props.errorMessage : ' '}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</label>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\nexport default GenericInput;\r\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n  return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n  // To do in next major: remove `source`.\n  var src = props.source || props.children || '';\n\n  if (props.allowedTypes && props.disallowedTypes) {\n    throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n  }\n\n  var renderers = xtend(defaultRenderers, props.renderers);\n  var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n  var tree = processor.runSync(processor.parse(src));\n  var renderProps = xtend(props, {\n    renderers: renderers,\n    definitions: getDefinitions(tree)\n  });\n  determineAstToReactTransforms(props).forEach(function (transform) {\n    tree = transform(tree, renderProps);\n  });\n  return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n  var transforms = [wrapTableRows, addListMetadata()];\n  var disallowedTypes = props.disallowedTypes;\n\n  if (props.allowedTypes) {\n    disallowedTypes = allTypes.filter(function (type) {\n      return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n    });\n  }\n\n  var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n  if (disallowedTypes && disallowedTypes.length > 0) {\n    transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n  }\n\n  if (props.allowNode) {\n    transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n  } // To do in next major: remove `escapeHtml`.\n\n\n  var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n  var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n    return transform.identity === symbols.HtmlParser;\n  });\n\n  if (renderHtml && !hasHtmlParser) {\n    transforms.push(naiveHtml);\n  }\n\n  if (props.astPlugins) {\n    transforms = transforms.concat(props.astPlugins);\n  } // Add the final transform to turn everything into React.\n\n\n  transforms.push(astToReact);\n  return transforms;\n}\n\nReactMarkdown.defaultProps = {\n  transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n  className: PropTypes.string,\n  source: PropTypes.string,\n  children: PropTypes.string,\n  sourcePos: PropTypes.bool,\n  rawSourcePos: PropTypes.bool,\n  escapeHtml: PropTypes.bool,\n  allowDangerousHtml: PropTypes.bool,\n  skipHtml: PropTypes.bool,\n  allowNode: PropTypes.func,\n  allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n  disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n  transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n  linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n  transformImageUri: PropTypes.func,\n  astPlugins: PropTypes.arrayOf(PropTypes.func),\n  unwrapDisallowed: PropTypes.bool,\n  renderers: PropTypes.object,\n  plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","export const emailRegex: RegExp = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\nexport const zipRegex: RegExp = /\\d{5}([ \\-]\\d{4})?/;\r\nexport const phoneRegex: RegExp = /^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$/;\r\nexport const dateRegex: RegExp = /^([0-9]{4}-[0-9]{2})|([0-9]{4}-[0-9]{2}=[0-9]{2})$/;\r\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n  tokenize: tokenizePartialBlankLine,\n  partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n  return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n  function afterWhitespace(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n  var tail = events[events.length - 1]\n  if (!tail || tail[1].type !== type) return 0\n  return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    visitor = test\n    test = null\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  function overload(node, parents) {\n    var parent = parents[parents.length - 1]\n    var index = parent ? parent.children.indexOf(node) : null\n    return visitor(node, index, parent)\n  }\n}\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, useState } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface TextProps extends InputProps {\r\n\tvalue: string;\r\n\tupdate: (value: string, id: string) => void;\r\n\ttype?: 'date' | 'month';\r\n\tmin?: Date | string;\r\n\tmax?: Date | string;\r\n\tautofocus?: boolean;\r\n\trequired?: boolean;\r\n\tvalidator: Validator<string>;\r\n\terrorMessage: string;\r\n}\r\n\r\nconst DateInput: FC<TextProps> = (props: TextProps) => {\r\n\r\n\tconst [blur, setBlur] = useState(props.immediateValidate);\r\n\r\n\tfunction formatDate(date: Date | string): string {\r\n\t\tif (typeof date === 'string') {\r\n\t\t\treturn date;\r\n\t\t}\r\n\t\tconst month: string = (date.getMonth() + 1).toString().padStart(2, '0');\r\n\t\tconst year: string = date.getFullYear().toString();\r\n\t\tswitch (props.type) {\r\n\t\t\tcase 'month':\r\n\t\t\t\treturn `${year}-${month}`;\r\n\t\t\tcase 'date':\r\n\t\t\t\tconst day: string = date.getDate().toString().padStart(2, '0');\r\n\t\t\t\treturn `${year}-${month}-${day}`;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`bad type`);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLInputElement>) {\r\n\t\tprops.update(event.target.value, props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass}>\r\n\t\t\t<input\r\n\t\t\t\tid={props.id}\r\n\t\t\t\ttype={props.type || 'date'}\r\n\t\t\t\tonChange={onChange}\r\n\t\t\t\tonBlur={onBlur}\r\n\t\t\t\tvalue={props.value}\r\n\t\t\t\trequired={props.required || false}\r\n\t\t\t\tautoFocus={props.autofocus || false}\r\n\t\t\t\tmin={(props.min ? formatDate(props.min) : null)}\r\n\t\t\t\tmax={(props.max ? formatDate(props.max) : null)}\r\n\t\t\t\taria-invalid={inputClass === 'invalid'}\r\n\t\t\t/>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default DateInput;\r\n","//https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\r\nexport function uuidv4(): string {\r\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\tvar r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n\t\treturn v.toString(16);\r\n\t});\r\n}\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n  return (\n    value // Collapse Markdown whitespace.\n      .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n      .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n      // counterpart is uppercased will result in a different uppercase\n      // character.\n      // Hence, to get that form, we perform both lower- and uppercase.\n      // Upper case makes sure keys will not interact with default prototypal\n      // methods: no object method is uppercase.\n      .toLowerCase()\n      .toUpperCase()\n  )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nfunction miniflat(value) {\n  return value === null || value === undefined\n    ? []\n    : 'length' in value\n    ? value\n    : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n  if (list.length) {\n    chunkedSplice(list, list.length, 0, items)\n    return list\n  }\n\n  return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n  var called = []\n  var index = -1\n  var resolve\n\n  while (++index < constructs.length) {\n    resolve = constructs[index].resolveAll\n\n    if (resolve && called.indexOf(resolve) < 0) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n  name: 'labelEnd',\n  tokenize: tokenizeLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n  tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n  tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n  tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n  var index = -1\n  var token\n\n  while (++index < events.length) {\n    token = events[index][1]\n\n    if (\n      !token._used &&\n      (token.type === 'labelImage' ||\n        token.type === 'labelLink' ||\n        token.type === 'labelEnd')\n    ) {\n      // Remove the marker.\n      events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n      token.type = 'data'\n      index++\n    }\n  }\n\n  return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n  var index = events.length\n  var offset = 0\n  var group\n  var label\n  var text\n  var token\n  var open\n  var close\n  var media // Find an opening.\n\n  while (index--) {\n    token = events[index][1]\n\n    if (open) {\n      // If we see another link, or inactive link label, we’ve been here before.\n      if (\n        token.type === 'link' ||\n        (token.type === 'labelLink' && token._inactive)\n      ) {\n        break\n      } // Mark other link openings as inactive, as we can’t have links in\n      // links.\n\n      if (events[index][0] === 'enter' && token.type === 'labelLink') {\n        token._inactive = true\n      }\n    } else if (close) {\n      if (\n        events[index][0] === 'enter' &&\n        (token.type === 'labelImage' || token.type === 'labelLink') &&\n        !token._balanced\n      ) {\n        open = index\n\n        if (token.type !== 'labelLink') {\n          offset = 2\n          break\n        }\n      }\n    } else if (token.type === 'labelEnd') {\n      close = index\n    }\n  }\n\n  group = {\n    type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n    start: shallow(events[open][1].start),\n    end: shallow(events[events.length - 1][1].end)\n  }\n  label = {\n    type: 'label',\n    start: shallow(events[open][1].start),\n    end: shallow(events[close][1].end)\n  }\n  text = {\n    type: 'labelText',\n    start: shallow(events[open + offset + 2][1].end),\n    end: shallow(events[close - 2][1].start)\n  }\n  media = [\n    ['enter', group, context],\n    ['enter', label, context]\n  ] // Opening marker.\n\n  media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n  media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n  media = chunkedPush(\n    media,\n    resolveAll(\n      context.parser.constructs.insideSpan.null,\n      events.slice(open + offset + 4, close - 3),\n      context\n    )\n  ) // Text close, marker close, label close.\n\n  media = chunkedPush(media, [\n    ['exit', text, context],\n    events[close - 2],\n    events[close - 1],\n    ['exit', label, context]\n  ]) // Reference, resource, or so.\n\n  media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n  media = chunkedPush(media, [['exit', group, context]])\n  chunkedSplice(events, open, events.length, media)\n  return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  var self = this\n  var index = self.events.length\n  var labelStart\n  var defined // Find an opening.\n\n  while (index--) {\n    if (\n      (self.events[index][1].type === 'labelImage' ||\n        self.events[index][1].type === 'labelLink') &&\n      !self.events[index][1]._balanced\n    ) {\n      labelStart = self.events[index][1]\n      break\n    }\n  }\n\n  return start\n\n  function start(code) {\n    if (!labelStart) {\n      return nok(code)\n    } // It’s a balanced bracket, but contains a link.\n\n    if (labelStart._inactive) return balanced(code)\n    defined =\n      self.parser.defined.indexOf(\n        normalizeIdentifier(\n          self.sliceSerialize({\n            start: labelStart.end,\n            end: self.now()\n          })\n        )\n      ) > -1\n    effects.enter('labelEnd')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelEnd')\n    return afterLabelEnd\n  }\n\n  function afterLabelEnd(code) {\n    // Resource: `[asd](fgh)`.\n    if (code === 40) {\n      return effects.attempt(\n        resourceConstruct,\n        ok,\n        defined ? ok : balanced\n      )(code)\n    } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n    if (code === 91) {\n      return effects.attempt(\n        fullReferenceConstruct,\n        ok,\n        defined\n          ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n          : balanced\n      )(code)\n    } // Shortcut reference: `[asd]`?\n\n    return defined ? ok(code) : balanced(code)\n  }\n\n  function balanced(code) {\n    labelStart._balanced = true\n    return nok(code)\n  }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    effects.enter('resource')\n    effects.enter('resourceMarker')\n    effects.consume(code)\n    effects.exit('resourceMarker')\n    return factoryWhitespace(effects, open)\n  }\n\n  function open(code) {\n    if (code === 41) {\n      return end(code)\n    }\n\n    return factoryDestination(\n      effects,\n      destinationAfter,\n      nok,\n      'resourceDestination',\n      'resourceDestinationLiteral',\n      'resourceDestinationLiteralMarker',\n      'resourceDestinationRaw',\n      'resourceDestinationString',\n      3\n    )(code)\n  }\n\n  function destinationAfter(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, between)(code)\n      : end(code)\n  }\n\n  function between(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factoryWhitespace(effects, end),\n        nok,\n        'resourceTitle',\n        'resourceTitleMarker',\n        'resourceTitleString'\n      )(code)\n    }\n\n    return end(code)\n  }\n\n  function end(code) {\n    if (code === 41) {\n      effects.enter('resourceMarker')\n      effects.consume(code)\n      effects.exit('resourceMarker')\n      effects.exit('resource')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n  var self = this\n  return start\n\n  function start(code) {\n    return factoryLabel.call(\n      self,\n      effects,\n      afterLabel,\n      nok,\n      'reference',\n      'referenceMarker',\n      'referenceString'\n    )(code)\n  }\n\n  function afterLabel(code) {\n    return self.parser.defined.indexOf(\n      normalizeIdentifier(\n        self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n      )\n    ) < 0\n      ? nok(code)\n      : ok(code)\n  }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    effects.enter('reference')\n    effects.enter('referenceMarker')\n    effects.consume(code)\n    effects.exit('referenceMarker')\n    return open\n  }\n\n  function open(code) {\n    if (code === 93) {\n      effects.enter('referenceMarker')\n      effects.consume(code)\n      effects.exit('referenceMarker')\n      effects.exit('reference')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = labelEnd\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\nimport { uuidv4 } from '../../../generic/helpers/uuid';\r\nimport { AppType } from '../../reducer';\r\n\r\nexport const EducationLevels: string[] = [\r\n\t'',\r\n\t'High School/GED',\r\n\t'College',\r\n\t'Graduate College',\r\n\t'Vocational/Technical',\r\n\t'Other'\r\n];\r\n\r\nexport type EducationLevel =\r\n\t'' |\r\n\t'High School/GED' |\r\n\t'College' |\r\n\t'Graduate College' |\r\n\t'Vocational/Technical' |\r\n\t'Other';\r\n\r\ninterface Education {\r\n\tuuid: string;\r\n\tlevel: EducationLevel;\r\n\tnameOfSchool: string;\r\n\tlocation: string;\r\n\tyearsCompleted: number;\r\n\tgraduated: boolean;\r\n\tmajor?: string | null;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport interface DefaultableState {\r\n\teducation: Education[];\r\n\tvalid: boolean;\r\n}\r\n\r\ninterface BaseState extends DefaultableState {\r\n\ttype: AppType;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\nexport type EduKeys = keyof Education;\r\n\r\ntype StateValueTypes = Education[] | AppType | boolean | number | string;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear' | 'set-app-type' | 'add-row' | 'remove-row' | 'update-row';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tappType?: AppType;\r\n\tkey?: StateKeys | EduKeys;\r\n\tvalue?: StateValueTypes;\r\n\tindex?: number;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\treturn state.education.length >= 1 &&\r\n\t\tstate.education.filter(e => e.valid).length === state.education.length;\r\n}\r\n\r\nfunction validateRow(row: Education): boolean {\r\n\tif (!row.level || row.level.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.location || row.location.length < 2) {\r\n\t\treturn false;\r\n\t}\r\n\tif (row.level !== 'High School/GED' && (!row.major || row.major.length === 0)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.nameOfSchool || row.nameOfSchool.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (row.yearsCompleted <= 0) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport const EducationDefaults: () => Education = () => ({\r\n\tuuid: uuidv4(),\r\n\tlevel: '',\r\n\tnameOfSchool: '',\r\n\tlocation: '',\r\n\tyearsCompleted: 1,\r\n\tgraduated: false,\r\n\tmajor: '',\r\n\tvalid: false\r\n});\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\teducation: [EducationDefaults()],\r\n\tvalid: false\r\n};\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'set-app-type':\r\n\t\t\treturn { ...state, appType: action.appType };\r\n\t\tcase 'add-row':\r\n\t\t\tconst education: Education[] = state.education;\r\n\t\t\teducation.push(EducationDefaults());\r\n\t\t\treturn { ...state, education, valid: false };\r\n\t\tcase 'remove-row':\r\n\t\t\tconst index: number = action.index as number;\r\n\t\t\tconst filteredEducation: Education[] = state\r\n\t\t\t\t.education\r\n\t\t\t\t.filter((_e, i) => i !== index);\r\n\t\t\tconst removedState = { ...state, education: filteredEducation };\r\n\t\t\tremovedState.valid = validate(removedState);\r\n\t\t\treturn removedState;\r\n\t\tcase 'update-row':\r\n\t\t\tconst value: Education = { ...state.education[action.index] };\r\n\t\t\tswitch (action.key) {\r\n\t\t\t\tcase 'level':\r\n\t\t\t\t\tvalue.level = action.value as EducationLevel;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'nameOfSchool':\r\n\t\t\t\t\tvalue.nameOfSchool = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'location':\r\n\t\t\t\t\tvalue.location = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'yearsCompleted':\r\n\t\t\t\t\tvalue.yearsCompleted = action.value as number;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'graduated':\r\n\t\t\t\t\tvalue.graduated = action.value as boolean;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'major':\r\n\t\t\t\t\tvalue.major = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tvalue.valid = validateRow(value);\r\n\r\n\t\t\tconst newEducation: Education[] = [...state.education];\r\n\t\t\tnewEducation[action.index] = value;\r\n\t\t\tconst updateState: State = { ...state, education: newEducation };\r\n\t\t\tupdateState.valid = validate(updateState);\r\n\t\t\treturn updateState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","\r\nconst KEY: string = 'mtd-saved-job-application';\r\nconst HAS_SESSION_STORAGE: boolean = (() => {\r\n\ttry {\r\n\t\tconst key: string = 'check-storage';\r\n\t\tsessionStorage.setItem(key, key);\r\n\t\tconst result = sessionStorage.removeItem(key);\r\n\t\tsessionStorage.removeItem(key);\r\n\t} catch {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n})();\r\nexport function saveState<T>(appId: number, state: T): Promise<void> {\r\n\treturn new Promise((resolve) => {\r\n\t\tif (HAS_SESSION_STORAGE) {\r\n\t\t\tsessionStorage.setItem(`${KEY}-${appId}`, JSON.stringify(state));\r\n\t\t\tresolve();\r\n\t\t} else {\r\n\t\t\tresolve();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport function hasSavedState(appId: number): boolean {\r\n\treturn HAS_SESSION_STORAGE && sessionStorage.getItem(`${KEY}-${appId}`) !== null;\r\n}\r\n\r\nexport function getSavedState<T>(appId: number): T {\r\n\tif (HAS_SESSION_STORAGE) {\r\n\t\treturn JSON.parse(sessionStorage.getItem(`${KEY}-${appId}`)) as T;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport function clearSavedState(appId: number): void {\r\n\tif (HAS_SESSION_STORAGE) {\r\n\t\tsessionStorage.removeItem(`${KEY}-${appId}`);\r\n\t}\r\n}\r\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, FC, ReactElement, useContext, useRef } from 'react';\r\nimport ReCaptcha from 'react-google-recaptcha';\r\nimport { Context as AppContext } from './app';\r\n\r\ninterface ContextType {\r\n\tsubmit: () => void;\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tsubmit: () => { }\r\n});\r\n\r\ninterface Props {\r\n\tchildren: ReactElement | ReactElement[];\r\n}\r\n\r\nconst Captcha: FC = (props: Props) => {\r\n\tconst appContext = useContext(AppContext);\r\n\tconst reCaptchaRef = useRef<ReCaptcha>(null);\r\n\r\n\tconst context: ContextType = {\r\n\t\tsubmit: () => {\r\n\t\t\tif (reCaptchaRef.current) {\r\n\t\t\t\treCaptchaRef.current.execute();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction captchaChange(captcha: string): void {\r\n\t\tappContext.dispatch({\r\n\t\t\ttype: 'submit',\r\n\t\t\tcaptcha\r\n\t\t});\r\n\t}\r\n\r\n\tfunction captchaError(): void {\r\n\t\talert(\"Error validating captcha. Try again.\");\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t{props.children}\r\n\t\t\t<ReCaptcha\r\n\t\t\t\tsitekey=\"6Lc-oEEUAAAAAD0OznIYg-ZUeZCCy9PeiJLgNXOl\"\r\n\t\t\t\tonChange={captchaChange}\r\n\t\t\t\tonErrored={captchaError}\r\n\t\t\t\tsize=\"invisible\"\r\n\t\t\t\tbadge=\"bottomright\"\r\n\t\t\t\tref={reCaptchaRef}\r\n\t\t\t/>\r\n\t\t</Context.Provider>\r\n\t);\r\n}\r\n\r\nexport default Captcha;\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if (own.call(value, 'position') || own.call(value, 'type')) {\n    return position(value.position)\n  }\n\n  // Position.\n  if (own.call(value, 'start') || own.call(value, 'end')) {\n    return position(value)\n  }\n\n  // Point.\n  if (own.call(value, 'line') || own.call(value, 'column')) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\nfunction point(point) {\n  if (!point || typeof point !== 'object') {\n    point = {}\n  }\n\n  return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n  if (!pos || typeof pos !== 'object') {\n    pos = {}\n  }\n\n  return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n  var index = -1\n  var size = 0\n\n  while (++index < chunks.length) {\n    size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n  }\n\n  return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n  var jumps = {}\n  var index = -1\n  var event\n  var lineIndex\n  var otherIndex\n  var otherEvent\n  var parameters\n  var subevents\n  var more\n\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index]\n    }\n\n    event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n    // is in the first content of a list item.\n\n    if (\n      index &&\n      event[1].type === 'chunkFlow' &&\n      events[index - 1][1].type === 'listItemPrefix'\n    ) {\n      subevents = event[1]._tokenizer.events\n      otherIndex = 0\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'lineEndingBlank'\n      ) {\n        otherIndex += 2\n      }\n\n      if (\n        otherIndex < subevents.length &&\n        subevents[otherIndex][1].type === 'content'\n      ) {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === 'content') {\n            break\n          }\n\n          if (subevents[otherIndex][1].type === 'chunkText') {\n            subevents[otherIndex][1].isInFirstContentOfListItem = true\n            otherIndex++\n          }\n        }\n      }\n    } // Enter.\n\n    if (event[0] === 'enter') {\n      if (event[1].contentType) {\n        assign(jumps, subcontent(events, index))\n        index = jumps[index]\n        more = true\n      }\n    } // Exit.\n    else if (event[1]._container || event[1]._movePreviousLineEndings) {\n      otherIndex = index\n      lineIndex = undefined\n\n      while (otherIndex--) {\n        otherEvent = events[otherIndex]\n\n        if (\n          otherEvent[1].type === 'lineEnding' ||\n          otherEvent[1].type === 'lineEndingBlank'\n        ) {\n          if (otherEvent[0] === 'enter') {\n            if (lineIndex) {\n              events[lineIndex][1].type = 'lineEndingBlank'\n            }\n\n            otherEvent[1].type = 'lineEnding'\n            lineIndex = otherIndex\n          }\n        } else {\n          break\n        }\n      }\n\n      if (lineIndex) {\n        // Fix position.\n        event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n        parameters = events.slice(lineIndex, index)\n        parameters.unshift(event)\n        chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n      }\n    }\n  }\n\n  return !more\n}\n\nfunction subcontent(events, eventIndex) {\n  var token = events[eventIndex][1]\n  var context = events[eventIndex][2]\n  var startPosition = eventIndex - 1\n  var startPositions = []\n  var tokenizer =\n    token._tokenizer || context.parser[token.contentType](token.start)\n  var childEvents = tokenizer.events\n  var jumps = []\n  var gaps = {}\n  var stream\n  var previous\n  var index\n  var entered\n  var end\n  var adjust // Loop forward through the linked tokens to pass them in order to the\n  // subtokenizer.\n\n  while (token) {\n    // Find the position of the event for this token.\n    while (events[++startPosition][1] !== token) {\n      // Empty.\n    }\n\n    startPositions.push(startPosition)\n\n    if (!token._tokenizer) {\n      stream = context.sliceStream(token)\n\n      if (!token.next) {\n        stream.push(null)\n      }\n\n      if (previous) {\n        tokenizer.defineSkip(token.start)\n      }\n\n      if (token.isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true\n      }\n\n      tokenizer.write(stream)\n\n      if (token.isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = undefined\n      }\n    } // Unravel the next token.\n\n    previous = token\n    token = token.next\n  } // Now, loop back through all events (and linked tokens), to figure out which\n  // parts belong where.\n\n  token = previous\n  index = childEvents.length\n\n  while (index--) {\n    // Make sure we’ve at least seen something (final eol is part of the last\n    // token).\n    if (childEvents[index][0] === 'enter') {\n      entered = true\n    } else if (\n      // Find a void token that includes a break.\n      entered &&\n      childEvents[index][1].type === childEvents[index - 1][1].type &&\n      childEvents[index][1].start.line !== childEvents[index][1].end.line\n    ) {\n      add(childEvents.slice(index + 1, end))\n      // Help GC.\n      token._tokenizer = token.next = undefined\n      token = token.previous\n      end = index + 1\n    }\n  }\n\n  // Help GC.\n  tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n  add(childEvents.slice(0, end))\n  index = -1\n  adjust = 0\n\n  while (++index < jumps.length) {\n    gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n    adjust += jumps[index][1] - jumps[index][0] - 1\n  }\n\n  return gaps\n\n  function add(slice) {\n    var start = startPositions.pop()\n    jumps.unshift([start, start + slice.length - 1])\n    chunkedSplice(events, start, 2, slice)\n  }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n  resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n  return {\n    tokenize: initializeText,\n    resolveAll: createResolver(\n      field === 'text' ? resolveAllLineSuffixes : undefined\n    )\n  }\n\n  function initializeText(effects) {\n    var self = this\n    var constructs = this.parser.constructs[field]\n    var text = effects.attempt(constructs, start, notText)\n    return start\n\n    function start(code) {\n      return atBreak(code) ? text(code) : notText(code)\n    }\n\n    function notText(code) {\n      if (code === null) {\n        effects.consume(code)\n        return\n      }\n\n      effects.enter('data')\n      effects.consume(code)\n      return data\n    }\n\n    function data(code) {\n      if (atBreak(code)) {\n        effects.exit('data')\n        return text(code)\n      } // Data.\n\n      effects.consume(code)\n      return data\n    }\n\n    function atBreak(code) {\n      var list = constructs[code]\n      var index = -1\n\n      if (code === null) {\n        return true\n      }\n\n      if (list) {\n        while (++index < list.length) {\n          if (\n            !list[index].previous ||\n            list[index].previous.call(self, self.previous)\n          ) {\n            return true\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction createResolver(extraResolver) {\n  return resolveAllText\n\n  function resolveAllText(events, context) {\n    var index = -1\n    var enter // A rather boring computation (to merge adjacent `data` events) which\n    // improves mm performance by 29%.\n\n    while (++index <= events.length) {\n      if (enter === undefined) {\n        if (events[index] && events[index][1].type === 'data') {\n          enter = index\n          index++\n        }\n      } else if (!events[index] || events[index][1].type !== 'data') {\n        // Don’t do anything if there is one data token.\n        if (index !== enter + 2) {\n          events[enter][1].end = events[index - 1][1].end\n          events.splice(enter + 2, index - enter - 2)\n          index = enter + 2\n        }\n\n        enter = undefined\n      }\n    }\n\n    return extraResolver ? extraResolver(events, context) : events\n  }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n  var eventIndex = -1\n  var chunks\n  var data\n  var chunk\n  var index\n  var bufferIndex\n  var size\n  var tabs\n  var token\n\n  while (++eventIndex <= events.length) {\n    if (\n      (eventIndex === events.length ||\n        events[eventIndex][1].type === 'lineEnding') &&\n      events[eventIndex - 1][1].type === 'data'\n    ) {\n      data = events[eventIndex - 1][1]\n      chunks = context.sliceStream(data)\n      index = chunks.length\n      bufferIndex = -1\n      size = 0\n      tabs = undefined\n\n      while (index--) {\n        chunk = chunks[index]\n\n        if (typeof chunk === 'string') {\n          bufferIndex = chunk.length\n\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size++\n            bufferIndex--\n          }\n\n          if (bufferIndex) break\n          bufferIndex = -1\n        } // Number\n        else if (chunk === -2) {\n          tabs = true\n          size++\n        } else if (chunk === -1);\n        else {\n          // Replacement character, exit.\n          index++\n          break\n        }\n      }\n\n      if (size) {\n        token = {\n          type:\n            eventIndex === events.length || tabs || size < 2\n              ? 'lineSuffix'\n              : 'hardBreakTrailing',\n          start: {\n            line: data.end.line,\n            column: data.end.column - size,\n            offset: data.end.offset - size,\n            _index: data.start._index + index,\n            _bufferIndex: index\n              ? bufferIndex\n              : data.start._bufferIndex + bufferIndex\n          },\n          end: shallow(data.end)\n        }\n        data.end = shallow(token.start)\n\n        if (data.start.offset === data.end.offset) {\n          assign(data, token)\n        } else {\n          events.splice(\n            eventIndex,\n            0,\n            ['enter', token, context],\n            ['exit', token, context]\n          )\n          eventIndex += 2\n        }\n      }\n\n      eventIndex++\n    }\n  }\n\n  return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code < 32 || code === 127\n  )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 //  ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n  var entity = '&' + characters + ';'\n  var char\n\n  el = el || document.createElement('i')\n  el.innerHTML = entity\n  char = el.textContent\n\n  // Some entities do not require the closing semicolon (`&not` - for instance),\n  // which leads to situations where parsing the assumed entity of &notit; will\n  // result in the string `¬it;`.  When we encounter a trailing semicolon after\n  // parsing and the entity to decode was not a semicolon (`&semi;`), we can\n  // assume that the matching was incomplete\n  if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the entity was not valid\n  return char === entity ? false : char\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n  effects,\n  ok,\n  nok,\n  type,\n  literalType,\n  literalMarkerType,\n  rawType,\n  stringType,\n  max\n) {\n  var limit = max || Infinity\n  var balance = 0\n  return start\n\n  function start(code) {\n    if (code === 60) {\n      effects.enter(type)\n      effects.enter(literalType)\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      return destinationEnclosedBefore\n    }\n\n    if (asciiControl(code) || code === 41) {\n      return nok(code)\n    }\n\n    effects.enter(type)\n    effects.enter(rawType)\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationRaw(code)\n  }\n\n  function destinationEnclosedBefore(code) {\n    if (code === 62) {\n      effects.enter(literalMarkerType)\n      effects.consume(code)\n      effects.exit(literalMarkerType)\n      effects.exit(literalType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return destinationEnclosed(code)\n  }\n\n  function destinationEnclosed(code) {\n    if (code === 62) {\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      return destinationEnclosedBefore(code)\n    }\n\n    if (code === null || code === 60 || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n  }\n\n  function destinationEnclosedEscape(code) {\n    if (code === 60 || code === 62 || code === 92) {\n      effects.consume(code)\n      return destinationEnclosed\n    }\n\n    return destinationEnclosed(code)\n  }\n\n  function destinationRaw(code) {\n    if (code === 40) {\n      if (++balance > limit) return nok(code)\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === 41) {\n      if (!balance--) {\n        effects.exit('chunkString')\n        effects.exit(stringType)\n        effects.exit(rawType)\n        effects.exit(type)\n        return ok(code)\n      }\n\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      if (balance) return nok(code)\n      effects.exit('chunkString')\n      effects.exit(stringType)\n      effects.exit(rawType)\n      effects.exit(type)\n      return ok(code)\n    }\n\n    if (asciiControl(code)) return nok(code)\n    effects.consume(code)\n    return code === 92 ? destinationRawEscape : destinationRaw\n  }\n\n  function destinationRawEscape(code) {\n    if (code === 40 || code === 41 || code === 92) {\n      effects.consume(code)\n      return destinationRaw\n    }\n\n    return destinationRaw(code)\n  }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n  var self = this\n  var size = 0\n  var data\n  return start\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    effects.enter(stringType)\n    return atBreak\n  }\n\n  function atBreak(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      (code === 93 && !data) ||\n      /* c8 ignore next */\n      (code === 94 &&\n        /* c8 ignore next */\n        !size &&\n        /* c8 ignore next */\n        '_hiddenFootnoteSupport' in self.parser.constructs) ||\n      size > 999\n    ) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.exit(stringType)\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return atBreak\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return label(code)\n  }\n\n  function label(code) {\n    if (\n      code === null ||\n      code === 91 ||\n      code === 93 ||\n      markdownLineEnding(code) ||\n      size++ > 999\n    ) {\n      effects.exit('chunkString')\n      return atBreak(code)\n    }\n\n    effects.consume(code)\n    data = data || !markdownSpace(code)\n    return code === 92 ? labelEscape : label\n  }\n\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return label\n    }\n\n    return label(code)\n  }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n  var seen\n  return start\n\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      seen = true\n      return start\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(\n        effects,\n        start,\n        seen ? 'linePrefix' : 'lineSuffix'\n      )(code)\n    }\n\n    return ok(code)\n  }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n  var marker\n  return start\n\n  function start(code) {\n    effects.enter(type)\n    effects.enter(markerType)\n    effects.consume(code)\n    effects.exit(markerType)\n    marker = code === 40 ? 41 : code\n    return atFirstTitleBreak\n  }\n\n  function atFirstTitleBreak(code) {\n    if (code === marker) {\n      effects.enter(markerType)\n      effects.consume(code)\n      effects.exit(markerType)\n      effects.exit(type)\n      return ok\n    }\n\n    effects.enter(stringType)\n    return atTitleBreak(code)\n  }\n\n  function atTitleBreak(code) {\n    if (code === marker) {\n      effects.exit(stringType)\n      return atFirstTitleBreak(marker)\n    }\n\n    if (code === null) {\n      return nok(code)\n    } // Note: blank lines can’t exist in content.\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, atTitleBreak, 'linePrefix')\n    }\n\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return title(code)\n  }\n\n  function title(code) {\n    if (code === marker || code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      return atTitleBreak(code)\n    }\n\n    effects.consume(code)\n    return code === 92 ? titleEscape : title\n  }\n\n  function titleEscape(code) {\n    if (code === marker || code === 92) {\n      effects.consume(code)\n      return title\n    }\n\n    return title(code)\n  }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n  name: 'thematicBreak',\n  tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  var size = 0\n  var marker\n  return start\n\n  function start(code) {\n    effects.enter('thematicBreak')\n    marker = code\n    return atBreak(code)\n  }\n\n  function atBreak(code) {\n    if (code === marker) {\n      effects.enter('thematicBreakSequence')\n      return sequence(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, atBreak, 'whitespace')(code)\n    }\n\n    if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n      return nok(code)\n    }\n\n    effects.exit('thematicBreak')\n    return ok(code)\n  }\n\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      size++\n      return sequence\n    }\n\n    effects.exit('thematicBreakSequence')\n    return atBreak(code)\n  }\n}\n\nmodule.exports = thematicBreak\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\nimport { AppType } from '../../reducer';\r\n\r\nexport interface DefaultableState {\r\n\tavailabilityDate: string;\r\n\tavailableMorning: boolean;\r\n\tavailableAfternoon: boolean;\r\n\tavailableEvening: boolean;\r\n\tavailableLateNight: boolean;\r\n\tavailableSaturday: boolean;\r\n\tavailableSunday: boolean;\r\n\tvalid: boolean;\r\n}\r\n\r\ninterface BaseState extends DefaultableState {\r\n\ttype: AppType;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear' | 'set-app-type';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tappType?: AppType;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.availabilityDate && state.availabilityDate.length !== 10) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (state.type === 'abbreviated') {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn state.availableMorning ||\r\n\t\tstate.availableAfternoon ||\r\n\t\tstate.availableEvening ||\r\n\t\tstate.availableLateNight ||\r\n\t\tstate.availableSaturday ||\r\n\t\tstate.availableSunday;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'set-app-type':\r\n\t\t\treturn { ...state, appType: action.appType };\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\tavailabilityDate: '',\r\n\tavailableMorning: false,\r\n\tavailableAfternoon: false,\r\n\tavailableEvening: false,\r\n\tavailableLateNight: false,\r\n\tavailableSaturday: false,\r\n\tavailableSunday: false,\r\n\tvalid: false\r\n};\r\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, Dispatch, FC, MouseEvent, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport Section from '../section';\r\nimport EducationRow from './educationRow';\r\nimport { Action, reducer, State, StateDefaults } from './reducer';\r\n\r\nconst INDEX = 5;\r\n\r\nexport interface ContextType {\r\n\tstate: State;\r\n\tdispatch: Dispatch<Action>;\r\n\timmediateValidate: boolean;\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tstate: { ...StateDefaults, type: 'abbreviated' },\r\n\tdispatch: () => { },\r\n\timmediateValidate: false\r\n});\r\n\r\n\r\nconst Education: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\r\n\t// don't show for abbreviated apps.\r\n\tif (appContext.state.type === 'abbreviated') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.education });\r\n\tconst context: ContextType = { state, dispatch, immediateValidate };\r\n\r\n\tfunction submit(): void {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-education',\r\n\t\t\t\tdata: context.state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addRow(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tdispatch({\r\n\t\t\ttype: 'add-row'\r\n\t\t});\r\n\t\tevent.currentTarget.blur();\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t<Section\r\n\t\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\t\tindex={INDEX}\r\n\t\t\t\tname=\"Education\"\r\n\t\t\t\tsubmit={submit}\r\n\t\t\t\tvalid={state.valid}\r\n\t\t\t\tadditionalActions={\r\n\t\t\t\t\t<button onClick={addRow} className=\"button black outline\">\r\n\t\t\t\t\t\tAdd Education\r\n\t\t\t\t\t</button>\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{state.education.map((e, i) => <EducationRow index={i} key={e.uuid} autoFocus={i === 0} />)}\r\n\t\t\t</Section>\r\n\t\t</Context.Provider>\r\n\t);\r\n};\r\n\r\nexport default Education;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, useState } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface NumberProps extends InputProps {\r\n\tvalue: number;\r\n\tupdate: (value: number, id: string) => void;\r\n\tmin?: number;\r\n\tmax?: number;\r\n\trequired?: boolean;\r\n\tvalidator: Validator<number>;\r\n\terrorMessage: string;\r\n}\r\n\r\nconst NumInput: FC<NumberProps> = (props: NumberProps) => {\r\n\r\n\tconst [blur, setBlur] = useState(props.immediateValidate);\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLInputElement>) {\r\n\t\tprops.update(parseInt(event.target.value), props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass}>\r\n\t\t\t<input\r\n\t\t\t\tid={props.id}\r\n\t\t\t\ttype=\"number\"\r\n\t\t\t\tonChange={onChange}\r\n\t\t\t\tonBlur={onBlur}\r\n\t\t\t\tvalue={props.value}\r\n\t\t\t\trequired={props.required || false}\r\n\t\t\t\tautoFocus={props.autoFocus || false}\r\n\t\t\t\tmin={(props.min || 0)}\r\n\t\t\t\tmax={(props.max ? props.max : null)}\r\n\t\t\t\taria-invalid={inputClass === 'invalid'}\r\n\t\t\t/>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default NumInput;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, useState } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface TextProps extends InputProps {\r\n\tvalue: string;\r\n\tvalues: string[];\r\n\tupdate: (value: string, id: string) => void;\r\n\trequired?: boolean;\r\n\tvalidator: Validator<string>;\r\n\terrorMessage: string;\r\n}\r\n\r\nconst SelectInput: FC<TextProps> = (props: TextProps) => {\r\n\r\n\tconst [blur, setBlur] = useState(props.immediateValidate);\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLSelectElement>): void {\r\n\t\tprops.update(event.target.value, props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass}>\r\n\t\t\t<select\r\n\t\t\t\tid={props.id}\r\n\t\t\t\trequired={props.required || false}\r\n\t\t\t\tautoFocus={props.autoFocus || false}\r\n\t\t\t\tvalue={props.value}\r\n\t\t\t\tonChange={onChange}\r\n\t\t\t\tonBlur={onBlur}\r\n\t\t\t\taria-invalid={inputClass === 'invalid'}\r\n\t\t\t>\r\n\t\t\t\t{props.values.map(v => <option value={v} key={v}>{v}</option>)}\r\n\t\t\t</select>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default SelectInput;\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\ninterface BaseState {\r\n\tlicense: boolean;\r\n\tstateOfIssue: string;\r\n\tqualified: boolean;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (state.license) {\r\n\t\tif (!state.stateOfIssue || state.stateOfIssue.length < 2) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\tlicense: false,\r\n\tqualified: false,\r\n\tstateOfIssue: '',\r\n\tvalid: true\r\n};\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\ninterface BaseState {\r\n\tname: string;\r\n\trelationship: string;\r\n\tphone: string;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.name || state.name.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.relationship || state.relationship.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.phone || state.phone.length < 7) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\tname: '',\r\n\trelationship: '',\r\n\tphone: '',\r\n\tvalid: false\r\n};\r\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, Dispatch, FC, Fragment, MouseEvent, useReducer } from 'react';\r\nimport  Markdown from 'react-markdown';\r\nimport { Context as AppContext } from '../../app';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport DateInput from '../../inputs/dateInput';\r\nimport RadioInput from '../../inputs/radioInput';\r\nimport { BoolValidator, RequiredDate } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport EmploymentRecordRow from './employmentRecordRow';\r\nimport { Action, Objections, reducer, State, StateDefaults, StateKeys } from './reducer';\r\n\r\nconst INDEX = 8;\r\n\r\nexport interface ContextType {\r\n\tstate: State;\r\n\tdispatch: Dispatch<Action>;\r\n\timmediateValidate: boolean;\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tstate: { ...StateDefaults },\r\n\tdispatch: () => { },\r\n\timmediateValidate: false\r\n});\r\n\r\n\r\nconst EmploymentRecord: FC = () => {\r\n\tconst appContext = React.useContext(AppContext);\r\n\r\n\t// don't show for abbreviated apps.\r\n\tif (appContext.state.type === 'abbreviated') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.employmentRecord });\r\n\tconst context: ContextType = { state, dispatch, immediateValidate };\r\n\r\n\tfunction submit(): void {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-employment-record',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addRow(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tdispatch({\r\n\t\t\ttype: 'add-row'\r\n\t\t});\r\n\t}\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys) {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t<Section\r\n\t\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\t\tindex={INDEX}\r\n\t\t\t\tname=\"Employment Record\"\r\n\t\t\t\tsubmit={submit}\r\n\t\t\t\tvalid={state.valid}\r\n\t\t\t\tadditionalActions={\r\n\t\t\t\t\t<button onClick={addRow} className=\"button black outline\">\r\n\t\t\t\t\t\tAdd Employment\r\n\t\t\t\t\t</button>\r\n\t\t\t\t}\r\n\t\t\t>\r\n\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<div className=\"full explainer-text\">\r\n\t\t\t\t\t\t<Markdown>{appContext.state.employmentText}</Markdown>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t\t\t{state.employment.map((er, i) => <EmploymentRecordRow index={i} key={er.uuid} autoFocus={i === 0} />)}\r\n\t\t\t\t\t\t\t<div className=\"row repeating-row\">\r\n\t\t\t\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={state.hasObjections}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Do not contact my present employer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"hasObjections\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\t\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<Conditional show={state.hasObjections}>\r\n\t\t\t\t\t\t\t\t\t\t\t<Fragment>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<RadioInput\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalues={Objections}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={state.objection}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"objection\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"no-contact-reason\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Conditional show={state.objection === 'Contact at a Later Date'}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DateInput\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={state.laterDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Date\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrorMessage=\"Please provide a date that MTD may contact your employer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"laterDate\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t\t\t\t\t\t\t</Fragment>\r\n\t\t\t\t\t\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</Section>\r\n\t\t</Context.Provider>\r\n\t);\r\n};\r\n\r\nexport default EmploymentRecord;\r\n","import { dateRegex, phoneRegex, zipRegex } from '../../../generic/helpers/regex';\r\nimport { assertUnreachable } from '../../../generic/helpers/unreachable';\r\nimport { uuidv4 } from '../../../generic/helpers/uuid';\r\nimport { AppType } from '../../reducer';\r\n\r\nexport type Objection = 'Do Not Contact' | 'Contact at a Later Date';\r\nexport const Objections = ['Do Not Contact', 'Contact at a Later Date'];\r\n\r\ninterface Employment {\r\n\tuuid: string;\r\n\temployer: string;\r\n\taddress: string;\r\n\tcity: string;\r\n\tstate: string;\r\n\tzip: string;\r\n\tphone: string;\r\n\tsupervisor: string;\r\n\ttitle: string;\r\n\tfrom: string;\r\n\tto: string;\r\n\treason: string;\r\n\tduties: string;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport interface DefaultableState {\r\n\temployment: Employment[];\r\n\thasObjections: boolean;\r\n\tobjection: Objection;\r\n\tlaterDate: string;\r\n\tvalid: boolean;\r\n}\r\n\r\n\r\nexport type StateKeys = keyof DefaultableState;\r\nexport type EmpKeys = keyof Employment;\r\n\r\ntype StateValueTypes = Employment[] | AppType | boolean | number | string;\r\n\r\n// make state indexable\r\nexport interface State extends DefaultableState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear' | 'set-app-type' | 'add-row' | 'remove-row' | 'update-row';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tappType?: AppType;\r\n\tkey?: StateKeys | EmpKeys;\r\n\tvalue?: StateValueTypes;\r\n\tindex?: number;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (state.hasObjections) {\r\n\t\tif (!state.objection || state.objection.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (state.objection === 'Contact at a Later Date' && !dateRegex.test(state.laterDate)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tif (state.employment.filter(s => s.valid).length !== state.employment.length) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nfunction validateRow(row: Employment): boolean {\r\n\tif (!row.employer || row.employer.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.address || row.address.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.city || row.city.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.state || row.state.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.zip || !zipRegex.test(row.zip)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.phone || !phoneRegex.test(row.phone)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.supervisor || row.supervisor.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.title || row.title.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.from || !dateRegex.test(row.from)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.to || !dateRegex.test(row.to)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.reason || row.reason.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.duties || row.duties.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport const EmploymentDefaults: () => Employment = () => ({\r\n\tuuid: uuidv4(),\r\n\temployer: '',\r\n\taddress: '',\r\n\tcity: '',\r\n\tstate: '',\r\n\tzip: '',\r\n\tphone: '',\r\n\tsupervisor: '',\r\n\ttitle: '',\r\n\tfrom: '',\r\n\tto: '',\r\n\treason: '',\r\n\tduties: '',\r\n\tvalid: false\r\n});\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\temployment: [EmploymentDefaults(), EmploymentDefaults(), EmploymentDefaults()],\r\n\tvalid: false,\r\n\thasObjections: false,\r\n\tobjection: 'Do Not Contact',\r\n\tlaterDate: ''\r\n};\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'set-app-type':\r\n\t\t\treturn { ...state, appType: action.appType };\r\n\t\tcase 'add-row':\r\n\t\t\tconst employment: Employment[] = state.employment;\r\n\t\t\temployment.push(EmploymentDefaults());\r\n\t\t\treturn { ...state, employment, valid: false };\r\n\t\tcase 'remove-row':\r\n\t\t\tconst index: number = action.index as number;\r\n\t\t\tconst filteredEmployment: Employment[] = state\r\n\t\t\t\t.employment\r\n\t\t\t\t.filter((_e, i) => i !== index);\r\n\t\t\tconst removedState = { ...state, employment: filteredEmployment };\r\n\t\t\tremovedState.valid = validate(removedState);\r\n\t\t\treturn removedState;\r\n\t\tcase 'update-row':\r\n\t\t\tconst value: Employment = { ...state.employment[action.index] };\r\n\t\t\tswitch (action.key) {\r\n\t\t\t\tcase 'employer':\r\n\t\t\t\t\tvalue.employer = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'address':\r\n\t\t\t\t\tvalue.address = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'city':\r\n\t\t\t\t\tvalue.city = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'state':\r\n\t\t\t\t\tvalue.state = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'zip':\r\n\t\t\t\t\tvalue.zip = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'phone':\r\n\t\t\t\t\tvalue.phone = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'supervisor':\r\n\t\t\t\t\tvalue.supervisor = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'title':\r\n\t\t\t\t\tvalue.title = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'from':\r\n\t\t\t\t\tvalue.from = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'to':\r\n\t\t\t\t\tvalue.to = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'reason':\r\n\t\t\t\t\tvalue.reason = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'duties':\r\n\t\t\t\t\tvalue.duties = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tvalue.valid = validateRow(value);\r\n\r\n\t\t\tconst newEmployment: Employment[] = [...state.employment];\r\n\t\t\tnewEmployment[action.index] = value;\r\n\t\t\tconst updateState: State = { ...state, employment: newEmployment };\r\n\t\t\tupdateState.valid = validate(updateState);\r\n\t\t\treturn updateState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\nexport type ReferralSource = 'MTD Employee' |\r\n\t'Newspaper' |\r\n\t'MTD.org' |\r\n\t'MTD Bus Sign Ads' |\r\n\t'Referral Service' |\r\n\t'Other' |\r\n\t'';\r\n\r\nexport const ReferralSources: ReferralSource[] = [\r\n\t'',\r\n\t'MTD Employee',\r\n\t'Newspaper',\r\n\t'MTD.org',\r\n\t'MTD Bus Sign Ads',\r\n\t'Referral Service',\r\n\t'Other'\r\n];\r\n\r\nexport type Gender = 'Man' |\r\n\t'Woman' |\r\n\t'Trans' |\r\n\t'Other' |\r\n\t'Prefer not to Answer' |\r\n\t'';\r\n\r\nexport const Genders: Gender[] = [\r\n\t'',\r\n\t'Man',\r\n\t'Woman',\r\n\t'Trans',\r\n\t'Other',\r\n\t'Prefer not to Answer'\r\n];\r\n\r\nexport type Race = 'Caucasian' |\r\n\t'Black or African American' |\r\n\t'Asian' |\r\n\t'American Indian or Native Alaskan' |\r\n\t'Native Hawaiian or other Pacific Islander' |\r\n\t'Hispanic' |\r\n\t'Other' |\r\n\t'Prefer not to Answer' |\r\n\t'';\r\n\r\nexport const Races: Race[] = [\r\n\t'',\r\n\t'Caucasian',\r\n\t'Black or African American',\r\n\t'Asian',\r\n\t'American Indian or Native Alaskan',\r\n\t'Native Hawaiian or other Pacific Islander',\r\n\t'Hispanic',\r\n\t'Other',\r\n\t'Prefer not to Answer'\r\n];\r\n\r\ninterface BaseState {\r\n\treferralSource: ReferralSource;\r\n\textra: string;\r\n\tgender: Gender;\r\n\trace: Race;\r\n\tveteran: boolean;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean | Race | Gender | ReferralSource;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.referralSource || state.referralSource.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (state.referralSource === 'MTD Employee' || state.referralSource === 'Other') {\r\n\t\tif (!state.extra || state.extra.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\tif (!state.gender || state.gender.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.race || state.race.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\treferralSource: '',\r\n\textra: '',\r\n\tgender: '',\r\n\trace: '',\r\n\tveteran: false,\r\n\tvalid: false\r\n};\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\ninterface BaseState {\r\n\tfamily: boolean;\r\n\twho?: string;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.family) {\r\n\t\treturn true;\r\n\t}\r\n\treturn state.who && state.who.length > 0;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\tfamily: false,\r\n\twho: '',\r\n\tvalid: true\r\n};\r\n","import { zipRegex } from '../../../generic/helpers/regex';\r\nimport { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\ninterface BaseState {\r\n\tfirst: string;\r\n\tlast: string;\r\n\tmiddle: string;\r\n\taddress1: string;\r\n\taddress2: string;\r\n\tcity: string;\r\n\tcounty: string;\r\n\tstate: string;\r\n\tzip: string;\r\n\tphone: string;\r\n\temail: string;\r\n\tover21: boolean;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.first || state.first.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.last || state.last.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.address1 || state.first.length < 3) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.city || state.city.length < 3) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.zip || !zipRegex.test(state.zip)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.county || state.county.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!state.state || state.state.length < 2) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\tfirst: '',\r\n\tlast: '',\r\n\tmiddle: '',\r\n\taddress1: '',\r\n\taddress2: '',\r\n\tcity: '',\r\n\tcounty: '',\r\n\tstate: '',\r\n\tzip: '',\r\n\tphone: '',\r\n\temail: '',\r\n\tover21: false,\r\n\tvalid: false\r\n};\r\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, Dispatch, FC, Fragment, useReducer } from 'react';\r\nimport Markdown from 'react-markdown';\r\nimport { Context as AppContext } from '../../app';\r\nimport Section from '../section';\r\nimport { Action, reducer, State, StateDefaults } from './reducer';\r\nimport ReferenceRow from './referenceRow';\r\n\r\nconst INDEX = 9;\r\n\r\nexport interface ContextType {\r\n\tstate: State;\r\n\tdispatch: Dispatch<Action>;\r\n\timmediateValidate: boolean;\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tstate: { ...StateDefaults, type: 'abbreviated' },\r\n\tdispatch: () => { },\r\n\timmediateValidate: false\r\n});\r\n\r\n\r\nconst References: FC = () => {\r\n\tconst appContext = React.useContext(AppContext);\r\n\r\n\t// don't show for abbreviated apps.\r\n\tif (appContext.state.type === 'abbreviated') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.references });\r\n\tconst context: ContextType = { state, dispatch, immediateValidate };\r\n\r\n\tfunction submit(): void {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-references',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t<Section\r\n\t\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\t\tindex={INDEX}\r\n\t\t\t\tname=\"References\"\r\n\t\t\t\tsubmit={submit}\r\n\t\t\t\tvalid={state.valid}\r\n\t\t\t>\r\n\t\t\t\t<Fragment>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<div className=\"full explainer-text\">\r\n\t\t\t\t\t\t\t<Markdown>{appContext.state.referencesText}</Markdown>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t\t\t\t{state.references.map((r, i) => <ReferenceRow index={i} key={r.uuid} autoFocus={i === 0} />)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Fragment>\r\n\t\t\t</Section>\r\n\t\t</Context.Provider>\r\n\t);\r\n};\r\n\r\nexport default References;\r\n","import { emailRegex } from '../../../generic/helpers/regex';\r\nimport { assertUnreachable } from '../../../generic/helpers/unreachable';\r\nimport { uuidv4 } from '../../../generic/helpers/uuid';\r\nimport { AppType } from '../../reducer';\r\n\r\ninterface Reference {\r\n\tuuid: string;\r\n\tname: string;\r\n\tposition: string;\r\n\tcompany: string;\r\n\ttelephone: string;\r\n\temail: string;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport interface DefaultableState {\r\n\treferences: Reference[];\r\n\tvalid: boolean;\r\n}\r\n\r\ninterface BaseState extends DefaultableState {\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\nexport type RefKeys = keyof Reference;\r\n\r\ntype StateValueTypes = Reference[] | AppType | RefKeys | boolean | string;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear' | 'update-row';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys | string | boolean;\r\n\tvalue?: StateValueTypes;\r\n\tindex?: number;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\treturn state.references.filter(r => r.valid).length === state.references.length;\r\n}\r\n\r\nfunction validateRow(row: Reference): boolean {\r\n\tif (!row.name || row.name.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.position || row.position.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.company || row.company.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.telephone || row.telephone.length < 7) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.email || !emailRegex.test(row.email)) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport const ReferenceDefaults: () => Reference = () => ({\r\n\tuuid: uuidv4(),\r\n\tname: '',\r\n\tposition: '',\r\n\tcompany: '',\r\n\ttelephone: '',\r\n\temail: '',\r\n\tvalid: false\r\n});\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\treferences: [ReferenceDefaults(), ReferenceDefaults(), ReferenceDefaults()],\r\n\tvalid: false\r\n};\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'update-row':\r\n\t\t\tconst value: Reference = { ...state.references[action.index] };\r\n\t\t\tswitch (action.key) {\r\n\t\t\t\tcase 'name':\r\n\t\t\t\t\tvalue.name = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'position':\r\n\t\t\t\t\tvalue.position = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'company':\r\n\t\t\t\t\tvalue.company = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'telephone':\r\n\t\t\t\t\tvalue.telephone = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'email':\r\n\t\t\t\t\tvalue.email = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tvalue.valid = validateRow(value);\r\n\t\t\tconst newReferences: Reference[] = [...state.references];\r\n\t\t\tnewReferences[action.index] = value;\r\n\t\t\tconst updateState: State = { ...state, references: newReferences };\r\n\t\t\tupdateState.valid = validate(updateState);\r\n\t\t\treturn updateState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\nexport interface DefaultableState {\r\n\tresume: File | null;\r\n\tcoverLetter: File | null;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof DefaultableState;\r\n\r\ntype StateValueTypes = File | null | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends DefaultableState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (state.resume === null) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\tresume: null,\r\n\tcoverLetter: null,\r\n\tvalid: false\r\n};\r\n","import * as React from 'react';\r\nimport { Context as ReactContext, createContext, Dispatch, FC, MouseEvent, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport Section from '../section';\r\nimport { Action, reducer, State, StateDefaults } from './reducer';\r\nimport SkillRow from './skillRow';\r\n\r\nconst INDEX = 6;\r\n\r\nexport interface ContextType {\r\n\tstate: State;\r\n\tdispatch: Dispatch<Action>\r\n}\r\n\r\nexport const Context: ReactContext<ContextType> = createContext<ContextType>({\r\n\tstate: { ...StateDefaults, type: 'abbreviated' },\r\n\tdispatch: () => { }\r\n});\r\n\r\n\r\nconst Skills: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\r\n\t// don't show for abbreviated apps.\r\n\tif (appContext.state.type === 'abbreviated') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.skills });\r\n\tconst context: ContextType = { state, dispatch };\r\n\r\n\tfunction submit(): void {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-skills',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addRow(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tdispatch({\r\n\t\t\ttype: 'add-row'\r\n\t\t});\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Context.Provider value={context}>\r\n\t\t\t<Section\r\n\t\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\t\tindex={INDEX}\r\n\t\t\t\tname=\"Skills\"\r\n\t\t\t\tsubmit={submit}\r\n\t\t\t\tvalid={state.valid}\r\n\t\t\t\tadditionalActions={\r\n\t\t\t\t\t<button onClick={addRow} className=\"button black outline\">\r\n\t\t\t\t\t\tAdd Skill\r\n\t\t\t\t\t</button>\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{state.skills.map((s, i) => <SkillRow index={i} key={s.uuid} immediateValidate={immediateValidate} autoFocus={i === 0} />)}\r\n\t\t\t</Section>\r\n\t\t</Context.Provider>\r\n\t);\r\n};\r\n\r\nexport default Skills;\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\nimport { uuidv4 } from '../../../generic/helpers/uuid';\r\nimport { AppType } from '../../reducer';\r\n\r\ninterface Skill {\r\n\tuuid: string;\r\n\tskill: string;\r\n\ttraining: string;\r\n\texperience: number;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport interface DefaultableState {\r\n\tskills: Skill[];\r\n\tvalid: boolean;\r\n}\r\n\r\ninterface BaseState extends DefaultableState {\r\n\ttype: AppType;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\nexport type EduKeys = keyof Skill;\r\n\r\ntype StateValueTypes = Skill[] | AppType | boolean | number | string;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear' | 'set-app-type' | 'add-row' | 'remove-row' | 'update-row';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tappType?: AppType;\r\n\tkey?: StateKeys | EduKeys;\r\n\tvalue?: StateValueTypes;\r\n\tindex?: number;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\treturn state.skills.filter(s => s.valid).length === state.skills.length;\r\n}\r\n\r\nfunction validateRow(row: Skill): boolean {\r\n\tif (!row.skill || row.skill.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!row.training || row.training.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\nexport const SkillDefaults: () => Skill = () => ({\r\n\tuuid: uuidv4(),\r\n\tskill: '',\r\n\ttraining: '',\r\n\texperience: 0,\r\n\tvalid: false\r\n});\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\tskills: [SkillDefaults()],\r\n\tvalid: false\r\n};\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'set-app-type':\r\n\t\t\treturn { ...state, appType: action.appType };\r\n\t\tcase 'add-row':\r\n\t\t\tconst skills: Skill[] = state.skills;\r\n\t\t\tskills.push(SkillDefaults());\r\n\t\t\treturn { ...state, skills, valid: false };\r\n\t\tcase 'remove-row':\r\n\t\t\tconst index: number = action.index as number;\r\n\t\t\tconst filteredSkills: Skill[] = state\r\n\t\t\t\t.skills\r\n\t\t\t\t.filter((_s, i) => i !== index);\r\n\t\t\tconst removedState = { ...state, skills: filteredSkills };\r\n\t\t\tremovedState.valid = validate(removedState);\r\n\t\t\treturn removedState;\r\n\t\tcase 'update-row':\r\n\t\t\tconst value: Skill = { ...state.skills[action.index] };\r\n\t\t\tswitch (action.key) {\r\n\t\t\t\tcase 'skill':\r\n\t\t\t\t\tvalue.skill = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'training':\r\n\t\t\t\t\tvalue.training = action.value as string;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'experience':\r\n\t\t\t\t\tvalue.experience = action.value as number;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tvalue.valid = validateRow(value);\r\n\r\n\t\t\tconst newSkills: Skill[] = [...state.skills];\r\n\t\t\tnewSkills[action.index] = value;\r\n\t\t\tconst updateState: State = { ...state, skills: newSkills };\r\n\t\t\tupdateState.valid = validate(updateState);\r\n\t\t\treturn updateState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import { assertUnreachable } from '../../../generic/helpers/unreachable';\r\n\r\ninterface BaseState {\r\n\tpastWork: boolean;\r\n\tmtdStartDate: string;\r\n\tmtdEndDate: string;\r\n\tposition: string;\r\n\tvalid: boolean;\r\n}\r\n\r\nexport type StateKeys = keyof BaseState;\r\n\r\ntype StateValueTypes = string | boolean;\r\n\r\n// make state indexable\r\nexport interface State extends BaseState {\r\n\t[key: string]: StateValueTypes;\r\n}\r\n\r\nexport type Actions = 'set-value' | 'clear';\r\n\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tkey?: StateKeys;\r\n\tvalue?: StateValueTypes;\r\n}\r\n\r\nfunction validate(state: State): boolean {\r\n\tif (!state.pastWork) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn state.mtdStartDate &&\r\n\t\tstate.mtdStartDate.length === 7 &&\r\n\t\tstate.mtdEndDate &&\r\n\t\tstate.mtdEndDate.length === 7 &&\r\n\t\tstate.position &&\r\n\t\tstate.position.length > 0;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'set-value':\r\n\t\t\tconst newState: State = { ...state };\r\n\t\t\tnewState[action.key as string] = action.value;\r\n\t\t\tnewState.valid = validate(newState);\r\n\t\t\treturn newState;\r\n\t\tcase 'clear':\r\n\t\t\treturn { ...state, ...StateDefaults };\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: BaseState = {\r\n\tpastWork: false,\r\n\tmtdStartDate: '',\r\n\tmtdEndDate: '',\r\n\tposition: '',\r\n\tvalid: true\r\n};\r\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\r\nimport * as reactDom from 'react-dom';\r\nimport Application from './application/app';\r\n\r\n(() => {\r\n\tconst element = document.getElementById('application-app');\r\n\tif (element) {\r\n\t\tconst reactApp = (\r\n\t\t\t<Application\r\n\t\t\t\ttype={window.mtd.application.type}\r\n\t\t\t\tapplicationId={window.mtd.application.applicationId}\r\n\t\t\t\tintroText={window.mtd.application.introText}\r\n\t\t\t\tabbreviatedText={window.mtd.application.abbreviatedText}\r\n\t\t\t\temploymentText={window.mtd.application.employmentText}\r\n\t\t\t\treferencesText={window.mtd.application.referencesText}\r\n\t\t\t\teeoText={window.mtd.application.eeoText}\r\n\t\t\t\tconditionsText={window.mtd.application.conditionsText}\r\n\t\t\t/>\r\n\t\t);\r\n\t\treactDom.render(reactApp, element);\r\n\t}\r\n})();\r\n","import { State } from '../application/reducer';\r\nimport { GenericApi } from './GenericApi';\r\n\r\nexport async function submitApplication(data: State): Promise<boolean> {\r\n\r\n\tconst fd: FormData = new FormData();\r\n\tfd.append('data', JSON.stringify(data));\r\n\tif (data.resume && data.resume.resume && data.resume.resume.size > 0) {\r\n\t\tfd.append('resume', data.resume.resume);\r\n\t}\r\n\tif (data.resume.coverLetter && data.resume.coverLetter && data.resume.coverLetter.size > 0) {\r\n\t\tfd.append('cover', data.resume.coverLetter);\r\n\t}\r\n\r\n\treturn await GenericApi.postFormData('/umbraco/api/application/submit/', fd);\r\n}\r\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","import * as React from 'react';\r\nimport { FC, Fragment, useContext } from 'react';\r\nimport { Context } from './app';\r\nimport Intro from './intro';\r\nimport Review from './review';\r\nimport Availability from './sections/availability/availability';\r\nimport Education from './sections/education/education';\r\nimport Eligibility from './sections/eligibility/eligibility';\r\nimport EmergencyContact from './sections/emergencyContact/emergencyContact';\r\nimport EmploymentRecord from './sections/employmentRecord/employmentRecord';\r\nimport EqualOpportunity from './sections/equalOpportunity/equalOpportunity';\r\nimport Family from './sections/family/family';\r\nimport PersonalInformation from './sections/personalInformation/personalInformation';\r\nimport References from './sections/references/references';\r\nimport Resume from './sections/resume/resume';\r\nimport Skills from './sections/skills/skills';\r\nimport WorkHistory from './sections/workHistory/workHistory';\r\n\r\nconst Layout: FC = () => {\r\n\tconst context = useContext(Context)\r\n\r\n\tfunction Content(): JSX.Element {\r\n\t\tif (!context.state.begun) {\r\n\t\t\treturn <Intro />;\r\n\t\t}\r\n\r\n\t\tif (context.state.submitting) {\r\n\t\t\treturn <div>\r\n\t\t\t\t<p>Submitting</p>\r\n\t\t\t\t<progress className=\"progress-circular\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\tif (context.state.submitted) {\r\n\t\t\treturn <p>\r\n\t\t\t\t<strong>Success!</strong> Your application has been submitted successfully.\r\n\t\t\t\tThank you for applying for a job at MTD!\r\n\t\t\t</p>;\r\n\t\t}\r\n\r\n\t\tif (context.state.submitError) {\r\n\t\t\treturn <p className=\"submit-error\">\r\n\t\t\t\tThere was an error submitting your application.\r\n\t\t\t\tWe apologize for the inconvenience.\r\n\t\t\t\tMost of your information should still be saved.\r\n\t\t\t\tPlease refresh this page and try again or print an application and apply at:<br />\r\n\t\t\t\t<br />\r\n\t\t\t\t<i>\r\n\t\t\t\t\t1101. E. University Ave.< br />\r\n\t\t\t\t\tUrbana, IL 61802<br />\r\n\t\t\t\t</i>\r\n\t\t\t</p>;\r\n\t\t}\r\n\r\n\t\tif (context.state.index === null) {\r\n\t\t\treturn <Review />;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<Fragment>\r\n\t\t\t\t<PersonalInformation />\r\n\t\t\t\t<WorkHistory />\r\n\t\t\t\t<Family />\r\n\t\t\t\t<Availability />\r\n\t\t\t\t<EmergencyContact />\r\n\t\t\t\t<Education />\r\n\t\t\t\t<Skills />\r\n\t\t\t\t<Eligibility />\r\n\t\t\t\t<EmploymentRecord />\r\n\t\t\t\t<References />\r\n\t\t\t\t<EqualOpportunity />\r\n\t\t\t\t<Resume />\r\n\t\t\t</Fragment>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<form className=\"form job-application\">\r\n\t\t\t<Content />\r\n\t\t</form>\r\n\t);\r\n};\r\n\r\nexport default Layout;\r\n","import * as React from 'react';\r\nimport { FC, MouseEvent, useContext } from 'react';\r\nimport Markdown from 'react-markdown';\r\nimport { Context } from './app';\r\n\r\nconst Intro: FC = () => {\r\n\tconst context = useContext(Context)\r\n\r\n\tfunction begin(event: MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tcontext.dispatch({ type: 'begin' });\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"grid\">\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<div className=\"full blurb\">\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<Markdown>{context.state.introText}</Markdown>\r\n\t\t\t\t\t</>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t<button className=\"button\" onClick={begin}>\r\n\t\t\t\t\t\tBegin\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Intro;\r\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n  .use(pipelineParse)\n  .use(pipelineRun)\n  .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n  ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n  p.run(ctx.tree, ctx.file, done)\n\n  function done(error, tree, file) {\n    if (error) {\n      next(error)\n    } else {\n      ctx.tree = tree\n      ctx.file = file\n      next()\n    }\n  }\n}\n\nfunction pipelineStringify(p, ctx) {\n  var result = p.stringify(ctx.tree, ctx.file)\n\n  if (result === undefined || result === null) {\n    // Empty.\n  } else if (typeof result === 'string' || buffer(result)) {\n    if ('value' in ctx.file) {\n      ctx.file.value = result\n    }\n\n    ctx.file.contents = result\n  } else {\n    ctx.file.result = result\n  }\n}\n\n// Function to create the first processor.\nfunction unified() {\n  var attachers = []\n  var transformers = trough()\n  var namespace = {}\n  var freezeIndex = -1\n  var frozen\n\n  // Data management.\n  processor.data = data\n\n  // Lock.\n  processor.freeze = freeze\n\n  // Plugins.\n  processor.attachers = attachers\n  processor.use = use\n\n  // API.\n  processor.parse = parse\n  processor.stringify = stringify\n  processor.run = run\n  processor.runSync = runSync\n  processor.process = process\n  processor.processSync = processSync\n\n  // Expose.\n  return processor\n\n  // Create a new processor based on the processor in the current scope.\n  function processor() {\n    var destination = unified()\n    var index = -1\n\n    while (++index < attachers.length) {\n      destination.use.apply(null, attachers[index])\n    }\n\n    destination.data(extend(true, {}, namespace))\n\n    return destination\n  }\n\n  // Freeze: used to signal a processor that has finished configuration.\n  //\n  // For example, take unified itself: it’s frozen.\n  // Plugins should not be added to it.\n  // Rather, it should be extended, by invoking it, before modifying it.\n  //\n  // In essence, always invoke this when exporting a processor.\n  function freeze() {\n    var values\n    var transformer\n\n    if (frozen) {\n      return processor\n    }\n\n    while (++freezeIndex < attachers.length) {\n      values = attachers[freezeIndex]\n\n      if (values[1] === false) {\n        continue\n      }\n\n      if (values[1] === true) {\n        values[1] = undefined\n      }\n\n      transformer = values[0].apply(processor, values.slice(1))\n\n      if (typeof transformer === 'function') {\n        transformers.use(transformer)\n      }\n    }\n\n    frozen = true\n    freezeIndex = Infinity\n\n    return processor\n  }\n\n  // Data management.\n  // Getter / setter for processor-specific informtion.\n  function data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', frozen)\n        namespace[key] = value\n        return processor\n      }\n\n      // Get `key`.\n      return (own.call(namespace, key) && namespace[key]) || null\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', frozen)\n      namespace = key\n      return processor\n    }\n\n    // Get space.\n    return namespace\n  }\n\n  // Plugin management.\n  //\n  // Pass it:\n  // *   an attacher and options,\n  // *   a preset,\n  // *   a list of presets, attachers, and arguments (list of attachers and\n  //     options).\n  function use(value) {\n    var settings\n\n    assertUnfrozen('use', frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin.apply(null, arguments)\n    } else if (typeof value === 'object') {\n      if ('length' in value) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new Error('Expected usable value, not `' + value + '`')\n    }\n\n    if (settings) {\n      namespace.settings = extend(namespace.settings || {}, settings)\n    }\n\n    return processor\n\n    function addPreset(result) {\n      addList(result.plugins)\n\n      if (result.settings) {\n        settings = extend(settings || {}, result.settings)\n      }\n    }\n\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value)\n      } else if (typeof value === 'object') {\n        if ('length' in value) {\n          addPlugin.apply(null, value)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new Error('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    function addList(plugins) {\n      var index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (typeof plugins === 'object' && 'length' in plugins) {\n        while (++index < plugins.length) {\n          add(plugins[index])\n        }\n      } else {\n        throw new Error('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    function addPlugin(plugin, value) {\n      var entry = find(plugin)\n\n      if (entry) {\n        if (plain(entry[1]) && plain(value)) {\n          value = extend(true, entry[1], value)\n        }\n\n        entry[1] = value\n      } else {\n        attachers.push(slice.call(arguments))\n      }\n    }\n  }\n\n  function find(plugin) {\n    var index = -1\n\n    while (++index < attachers.length) {\n      if (attachers[index][0] === plugin) {\n        return attachers[index]\n      }\n    }\n  }\n\n  // Parse a file (in string or vfile representation) into a unist node using\n  // the `Parser` on the processor.\n  function parse(doc) {\n    var file = vfile(doc)\n    var Parser\n\n    freeze()\n    Parser = processor.Parser\n    assertParser('parse', Parser)\n\n    if (newable(Parser, 'parse')) {\n      return new Parser(String(file), file).parse()\n    }\n\n    return Parser(String(file), file) // eslint-disable-line new-cap\n  }\n\n  // Run transforms on a unist node representation of a file (in string or\n  // vfile representation), async.\n  function run(node, file, cb) {\n    assertNode(node)\n    freeze()\n\n    if (!cb && typeof file === 'function') {\n      cb = file\n      file = null\n    }\n\n    if (!cb) {\n      return new Promise(executor)\n    }\n\n    executor(null, cb)\n\n    function executor(resolve, reject) {\n      transformers.run(node, vfile(file), done)\n\n      function done(error, tree, file) {\n        tree = tree || node\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(tree)\n        } else {\n          cb(null, tree, file)\n        }\n      }\n    }\n  }\n\n  // Run transforms on a unist node representation of a file (in string or\n  // vfile representation), sync.\n  function runSync(node, file) {\n    var result\n    var complete\n\n    run(node, file, done)\n\n    assertDone('runSync', 'run', complete)\n\n    return result\n\n    function done(error, tree) {\n      complete = true\n      result = tree\n      bail(error)\n    }\n  }\n\n  // Stringify a unist node representation of a file (in string or vfile\n  // representation) into a string using the `Compiler` on the processor.\n  function stringify(node, doc) {\n    var file = vfile(doc)\n    var Compiler\n\n    freeze()\n    Compiler = processor.Compiler\n    assertCompiler('stringify', Compiler)\n    assertNode(node)\n\n    if (newable(Compiler, 'compile')) {\n      return new Compiler(node, file).compile()\n    }\n\n    return Compiler(node, file) // eslint-disable-line new-cap\n  }\n\n  // Parse a file (in string or vfile representation) into a unist node using\n  // the `Parser` on the processor, then run transforms on that node, and\n  // compile the resulting node using the `Compiler` on the processor, and\n  // store that result on the vfile.\n  function process(doc, cb) {\n    freeze()\n    assertParser('process', processor.Parser)\n    assertCompiler('process', processor.Compiler)\n\n    if (!cb) {\n      return new Promise(executor)\n    }\n\n    executor(null, cb)\n\n    function executor(resolve, reject) {\n      var file = vfile(doc)\n\n      pipeline.run(processor, {file: file}, done)\n\n      function done(error) {\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          cb(null, file)\n        }\n      }\n    }\n  }\n\n  // Process the given document (in string or vfile representation), sync.\n  function processSync(doc) {\n    var file\n    var complete\n\n    freeze()\n    assertParser('processSync', processor.Parser)\n    assertCompiler('processSync', processor.Compiler)\n    file = vfile(doc)\n\n    process(file, done)\n\n    assertDone('processSync', 'process', complete)\n\n    return file\n\n    function done(error) {\n      complete = true\n      bail(error)\n    }\n  }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n  return (\n    typeof value === 'function' &&\n    value.prototype &&\n    // A function with keys in its prototype is probably a constructor.\n    // Classes’ prototype methods are not enumerable, so we check if some value\n    // exists in the prototype.\n    (keys(value.prototype) || name in value.prototype)\n  )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n  var key\n  for (key in value) {\n    return true\n  }\n\n  return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n  if (typeof Parser !== 'function') {\n    throw new Error('Cannot `' + name + '` without `Parser`')\n  }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n  if (typeof Compiler !== 'function') {\n    throw new Error('Cannot `' + name + '` without `Compiler`')\n  }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot invoke `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n  if (!node || typeof node.type !== 'string') {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n  if (err) {\n    throw err\n  }\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n  var fns = []\n  var middleware = {}\n\n  middleware.run = run\n  middleware.use = use\n\n  return middleware\n\n  // Run `fns`.  Last argument must be a completion handler.\n  function run() {\n    var index = -1\n    var input = slice.call(arguments, 0, -1)\n    var done = arguments[arguments.length - 1]\n\n    if (typeof done !== 'function') {\n      throw new Error('Expected function as last argument, not ' + done)\n    }\n\n    next.apply(null, [null].concat(input))\n\n    // Run the next `fn`, if any.\n    function next(err) {\n      var fn = fns[++index]\n      var params = slice.call(arguments, 0)\n      var values = params.slice(1)\n      var length = input.length\n      var pos = -1\n\n      if (err) {\n        done(err)\n        return\n      }\n\n      // Copy non-nully input into values.\n      while (++pos < length) {\n        if (values[pos] === null || values[pos] === undefined) {\n          values[pos] = input[pos]\n        }\n      }\n\n      input = values\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next).apply(null, input)\n      } else {\n        done.apply(null, [null].concat(input))\n      }\n    }\n  }\n\n  // Add `fn` to the list.\n  function use(fn) {\n    if (typeof fn !== 'function') {\n      throw new Error('Expected `fn` to be a function, not ' + fn)\n    }\n\n    fns.push(fn)\n\n    return middleware\n  }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n  var invoked\n\n  return wrapped\n\n  function wrapped() {\n    var params = slice.call(arguments, 0)\n    var callback = fn.length > params.length\n    var result\n\n    if (callback) {\n      params.push(done)\n    }\n\n    try {\n      result = fn.apply(null, params)\n    } catch (error) {\n      // Well, this is quite the pickle.\n      // `fn` received a callback and invoked it (thus continuing the pipeline),\n      // but later also threw an error.\n      // We’re not about to restart the pipeline again, so the only thing left\n      // to do is to throw the thing instead.\n      if (callback && invoked) {\n        throw error\n      }\n\n      return done(error)\n    }\n\n    if (!callback) {\n      if (result && typeof result.then === 'function') {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  // Invoke `next`, only once.\n  function done() {\n    if (!invoked) {\n      invoked = true\n\n      callback.apply(null, arguments)\n    }\n  }\n\n  // Invoke `done` with one value.\n  // Tracks if an error is passed, too.\n  function then(value) {\n    done(null, value)\n  }\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n  var message = new VMessage(reason, position, origin)\n\n  if (this.path) {\n    message.name = this.path + ':' + message.name\n    message.file = this.path\n  }\n\n  message.fatal = false\n\n  this.messages.push(message)\n\n  return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n  var message = this.message.apply(this, arguments)\n\n  message.fatal = true\n\n  throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n  var message = this.message.apply(this, arguments)\n\n  message.fatal = null\n\n  return message\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n  var parts\n  var range\n  var location\n\n  if (typeof position === 'string') {\n    origin = position\n    position = null\n  }\n\n  parts = parseOrigin(origin)\n  range = stringify(position) || '1:1'\n\n  location = {\n    start: {line: null, column: null},\n    end: {line: null, column: null}\n  }\n\n  // Node.\n  if (position && position.position) {\n    position = position.position\n  }\n\n  if (position) {\n    // Position.\n    if (position.start) {\n      location = position\n      position = position.start\n    } else {\n      // Point.\n      location.start = position\n    }\n  }\n\n  if (reason.stack) {\n    this.stack = reason.stack\n    reason = reason.message\n  }\n\n  this.message = reason\n  this.name = range\n  this.reason = reason\n  this.line = position ? position.line : null\n  this.column = position ? position.column : null\n  this.location = location\n  this.source = parts[0]\n  this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n  var result = [null, null]\n  var index\n\n  if (typeof origin === 'string') {\n    index = origin.indexOf(':')\n\n    if (index === -1) {\n      result[1] = origin\n    } else {\n      result[0] = origin.slice(0, index)\n      result[1] = origin.slice(index + 1)\n    }\n  }\n\n  return result\n}\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n  get: getDirname,\n  set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n  get: getBasename,\n  set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n  get: getExtname,\n  set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n  var prop\n  var index\n\n  if (!options) {\n    options = {}\n  } else if (typeof options === 'string' || buffer(options)) {\n    options = {contents: options}\n  } else if ('message' in options && 'messages' in options) {\n    return options\n  }\n\n  if (!(this instanceof VFile)) {\n    return new VFile(options)\n  }\n\n  this.data = {}\n  this.messages = []\n  this.history = []\n  this.cwd = proc.cwd()\n\n  // Set path related properties in the correct order.\n  index = -1\n\n  while (++index < order.length) {\n    prop = order[index]\n\n    if (own.call(options, prop)) {\n      this[prop] = options[prop]\n    }\n  }\n\n  // Set non-path related properties.\n  for (prop in options) {\n    if (order.indexOf(prop) < 0) {\n      this[prop] = options[prop]\n    }\n  }\n}\n\nfunction getPath() {\n  return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n  assertNonEmpty(path, 'path')\n\n  if (this.path !== path) {\n    this.history.push(path)\n  }\n}\n\nfunction getDirname() {\n  return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n  assertPath(this.path, 'dirname')\n  this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n  return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n  assertNonEmpty(basename, 'basename')\n  assertPart(basename, 'basename')\n  this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n  return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n  assertPart(extname, 'extname')\n  assertPath(this.path, 'extname')\n\n  if (extname) {\n    if (extname.charCodeAt(0) !== 46 /* `.` */) {\n      throw new Error('`extname` must start with `.`')\n    }\n\n    if (extname.indexOf('.', 1) > -1) {\n      throw new Error('`extname` cannot contain multiple dots')\n    }\n  }\n\n  this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n  return typeof this.path === 'string'\n    ? p.basename(this.path, this.extname)\n    : undefined\n}\n\nfunction setStem(stem) {\n  assertNonEmpty(stem, 'stem')\n  assertPart(stem, 'stem')\n  this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n  return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n  if (part && part.indexOf(p.sep) > -1) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n    )\n  }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n","'use strict'\n\n// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// 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, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n  var start = 0\n  var end = -1\n  var index\n  var firstNonSlashEnd\n  var seenNonSlash\n  var extIndex\n\n  if (ext !== undefined && typeof ext !== 'string') {\n    throw new TypeError('\"ext\" argument must be a string')\n  }\n\n  assertPath(path)\n  index = path.length\n\n  if (ext === undefined || !ext.length || ext.length > path.length) {\n    while (index--) {\n      if (path.charCodeAt(index) === 47 /* `/` */) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now.\n        if (seenNonSlash) {\n          start = index + 1\n          break\n        }\n      } else if (end < 0) {\n        // We saw the first non-path separator, mark this as the end of our\n        // path component.\n        seenNonSlash = true\n        end = index + 1\n      }\n    }\n\n    return end < 0 ? '' : path.slice(start, end)\n  }\n\n  if (ext === path) {\n    return ''\n  }\n\n  firstNonSlashEnd = -1\n  extIndex = ext.length - 1\n\n  while (index--) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (seenNonSlash) {\n        start = index + 1\n        break\n      }\n    } else {\n      if (firstNonSlashEnd < 0) {\n        // We saw the first non-path separator, remember this index in case\n        // we need it if the extension ends up not matching.\n        seenNonSlash = true\n        firstNonSlashEnd = index + 1\n      }\n\n      if (extIndex > -1) {\n        // Try to match the explicit extension.\n        if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n          if (extIndex < 0) {\n            // We matched the extension, so mark this as the end of our path\n            // component\n            end = index\n          }\n        } else {\n          // Extension does not match, so our result is the entire path\n          // component\n          extIndex = -1\n          end = firstNonSlashEnd\n        }\n      }\n    }\n  }\n\n  if (start === end) {\n    end = firstNonSlashEnd\n  } else if (end < 0) {\n    end = path.length\n  }\n\n  return path.slice(start, end)\n}\n\nfunction dirname(path) {\n  var end\n  var unmatchedSlash\n  var index\n\n  assertPath(path)\n\n  if (!path.length) {\n    return '.'\n  }\n\n  end = -1\n  index = path.length\n\n  // Prefix `--` is important to not run on `0`.\n  while (--index) {\n    if (path.charCodeAt(index) === 47 /* `/` */) {\n      if (unmatchedSlash) {\n        end = index\n        break\n      }\n    } else if (!unmatchedSlash) {\n      // We saw the first non-path separator\n      unmatchedSlash = true\n    }\n  }\n\n  return end < 0\n    ? path.charCodeAt(0) === 47 /* `/` */\n      ? '/'\n      : '.'\n    : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n    ? '//'\n    : path.slice(0, end)\n}\n\nfunction extname(path) {\n  var startDot = -1\n  var startPart = 0\n  var end = -1\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find.\n  var preDotState = 0\n  var unmatchedSlash\n  var code\n  var index\n\n  assertPath(path)\n\n  index = path.length\n\n  while (index--) {\n    code = path.charCodeAt(index)\n\n    if (code === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (unmatchedSlash) {\n        startPart = index + 1\n        break\n      }\n\n      continue\n    }\n\n    if (end < 0) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension.\n      unmatchedSlash = true\n      end = index + 1\n    }\n\n    if (code === 46 /* `.` */) {\n      // If this is our first dot, mark it as the start of our extension.\n      if (startDot < 0) {\n        startDot = index\n      } else if (preDotState !== 1) {\n        preDotState = 1\n      }\n    } else if (startDot > -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension.\n      preDotState = -1\n    }\n  }\n\n  if (\n    startDot < 0 ||\n    end < 0 ||\n    // We saw a non-dot character immediately before the dot.\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly `..`.\n    (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n  ) {\n    return ''\n  }\n\n  return path.slice(startDot, end)\n}\n\nfunction join() {\n  var index = -1\n  var joined\n\n  while (++index < arguments.length) {\n    assertPath(arguments[index])\n\n    if (arguments[index]) {\n      joined =\n        joined === undefined\n          ? arguments[index]\n          : joined + '/' + arguments[index]\n    }\n  }\n\n  return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n  var absolute\n  var value\n\n  assertPath(path)\n\n  absolute = path.charCodeAt(0) === 47 /* `/` */\n\n  // Normalize the path according to POSIX rules.\n  value = normalizeString(path, !absolute)\n\n  if (!value.length && !absolute) {\n    value = '.'\n  }\n\n  if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n    value += '/'\n  }\n\n  return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n  var result = ''\n  var lastSegmentLength = 0\n  var lastSlash = -1\n  var dots = 0\n  var index = -1\n  var code\n  var lastSlashIndex\n\n  while (++index <= path.length) {\n    if (index < path.length) {\n      code = path.charCodeAt(index)\n    } else if (code === 47 /* `/` */) {\n      break\n    } else {\n      code = 47 /* `/` */\n    }\n\n    if (code === 47 /* `/` */) {\n      if (lastSlash === index - 1 || dots === 1) {\n        // Empty.\n      } else if (lastSlash !== index - 1 && dots === 2) {\n        if (\n          result.length < 2 ||\n          lastSegmentLength !== 2 ||\n          result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n          result.charCodeAt(result.length - 2) !== 46 /* `.` */\n        ) {\n          if (result.length > 2) {\n            lastSlashIndex = result.lastIndexOf('/')\n\n            /* istanbul ignore else - No clue how to cover it. */\n            if (lastSlashIndex !== result.length - 1) {\n              if (lastSlashIndex < 0) {\n                result = ''\n                lastSegmentLength = 0\n              } else {\n                result = result.slice(0, lastSlashIndex)\n                lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n              }\n\n              lastSlash = index\n              dots = 0\n              continue\n            }\n          } else if (result.length) {\n            result = ''\n            lastSegmentLength = 0\n            lastSlash = index\n            dots = 0\n            continue\n          }\n        }\n\n        if (allowAboveRoot) {\n          result = result.length ? result + '/..' : '..'\n          lastSegmentLength = 2\n        }\n      } else {\n        if (result.length) {\n          result += '/' + path.slice(lastSlash + 1, index)\n        } else {\n          result = path.slice(lastSlash + 1, index)\n        }\n\n        lastSegmentLength = index - lastSlash - 1\n      }\n\n      lastSlash = index\n      dots = 0\n    } else if (code === 46 /* `.` */ && dots > -1) {\n      dots++\n    } else {\n      dots = -1\n    }\n  }\n\n  return result\n}\n\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      'Path must be a string. Received ' + JSON.stringify(path)\n    )\n  }\n}\n","'use strict'\n\n// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n  return '/'\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n  var self = this\n\n  this.Parser = parse\n\n  function parse(doc) {\n    return fromMarkdown(\n      doc,\n      Object.assign({}, self.data('settings'), options, {\n        // Note: these options are not in the readme.\n        // The goal is for them to be set by plugins on `data` instead of being\n        // passed by users.\n        extensions: self.data('micromarkExtensions') || [],\n        mdastExtensions: self.data('fromMarkdownExtensions') || []\n      })\n    )\n  }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n  if (typeof encoding !== 'string') {\n    options = encoding\n    encoding = undefined\n  }\n\n  return compiler(options)(\n    postprocess(\n      parser(options).document().write(preprocessor()(value, encoding, true))\n    )\n  )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n  var settings = options || {}\n  var config = configure(\n    {\n      transforms: [],\n      canContainEols: [\n        'emphasis',\n        'fragment',\n        'heading',\n        'paragraph',\n        'strong'\n      ],\n\n      enter: {\n        autolink: opener(link),\n        autolinkProtocol: onenterdata,\n        autolinkEmail: onenterdata,\n        atxHeading: opener(heading),\n        blockQuote: opener(blockQuote),\n        characterEscape: onenterdata,\n        characterReference: onenterdata,\n        codeFenced: opener(codeFlow),\n        codeFencedFenceInfo: buffer,\n        codeFencedFenceMeta: buffer,\n        codeIndented: opener(codeFlow, buffer),\n        codeText: opener(codeText, buffer),\n        codeTextData: onenterdata,\n        data: onenterdata,\n        codeFlowValue: onenterdata,\n        definition: opener(definition),\n        definitionDestinationString: buffer,\n        definitionLabelString: buffer,\n        definitionTitleString: buffer,\n        emphasis: opener(emphasis),\n        hardBreakEscape: opener(hardBreak),\n        hardBreakTrailing: opener(hardBreak),\n        htmlFlow: opener(html, buffer),\n        htmlFlowData: onenterdata,\n        htmlText: opener(html, buffer),\n        htmlTextData: onenterdata,\n        image: opener(image),\n        label: buffer,\n        link: opener(link),\n        listItem: opener(listItem),\n        listItemValue: onenterlistitemvalue,\n        listOrdered: opener(list, onenterlistordered),\n        listUnordered: opener(list),\n        paragraph: opener(paragraph),\n        reference: onenterreference,\n        referenceString: buffer,\n        resourceDestinationString: buffer,\n        resourceTitleString: buffer,\n        setextHeading: opener(heading),\n        strong: opener(strong),\n        thematicBreak: opener(thematicBreak)\n      },\n\n      exit: {\n        atxHeading: closer(),\n        atxHeadingSequence: onexitatxheadingsequence,\n        autolink: closer(),\n        autolinkEmail: onexitautolinkemail,\n        autolinkProtocol: onexitautolinkprotocol,\n        blockQuote: closer(),\n        characterEscapeValue: onexitdata,\n        characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n        characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n        characterReferenceValue: onexitcharacterreferencevalue,\n        codeFenced: closer(onexitcodefenced),\n        codeFencedFence: onexitcodefencedfence,\n        codeFencedFenceInfo: onexitcodefencedfenceinfo,\n        codeFencedFenceMeta: onexitcodefencedfencemeta,\n        codeFlowValue: onexitdata,\n        codeIndented: closer(onexitcodeindented),\n        codeText: closer(onexitcodetext),\n        codeTextData: onexitdata,\n        data: onexitdata,\n        definition: closer(),\n        definitionDestinationString: onexitdefinitiondestinationstring,\n        definitionLabelString: onexitdefinitionlabelstring,\n        definitionTitleString: onexitdefinitiontitlestring,\n        emphasis: closer(),\n        hardBreakEscape: closer(onexithardbreak),\n        hardBreakTrailing: closer(onexithardbreak),\n        htmlFlow: closer(onexithtmlflow),\n        htmlFlowData: onexitdata,\n        htmlText: closer(onexithtmltext),\n        htmlTextData: onexitdata,\n        image: closer(onexitimage),\n        label: onexitlabel,\n        labelText: onexitlabeltext,\n        lineEnding: onexitlineending,\n        link: closer(onexitlink),\n        listItem: closer(),\n        listOrdered: closer(),\n        listUnordered: closer(),\n        paragraph: closer(),\n        referenceString: onexitreferencestring,\n        resourceDestinationString: onexitresourcedestinationstring,\n        resourceTitleString: onexitresourcetitlestring,\n        resource: onexitresource,\n        setextHeading: closer(onexitsetextheading),\n        setextHeadingLineSequence: onexitsetextheadinglinesequence,\n        setextHeadingText: onexitsetextheadingtext,\n        strong: closer(),\n        thematicBreak: closer()\n      }\n    },\n\n    settings.mdastExtensions || []\n  )\n\n  var data = {}\n\n  return compile\n\n  function compile(events) {\n    var tree = {type: 'root', children: []}\n    var stack = [tree]\n    var tokenStack = []\n    var listStack = []\n    var index = -1\n    var handler\n    var listStart\n\n    var context = {\n      stack: stack,\n      tokenStack: tokenStack,\n      config: config,\n      enter: enter,\n      exit: exit,\n      buffer: buffer,\n      resume: resume,\n      setData: setData,\n      getData: getData\n    }\n\n    while (++index < events.length) {\n      // We preprocess lists to add `listItem` tokens, and to infer whether\n      // items the list itself are spread out.\n      if (\n        events[index][1].type === 'listOrdered' ||\n        events[index][1].type === 'listUnordered'\n      ) {\n        if (events[index][0] === 'enter') {\n          listStack.push(index)\n        } else {\n          listStart = listStack.pop(index)\n          index = prepareList(events, listStart, index)\n        }\n      }\n    }\n\n    index = -1\n\n    while (++index < events.length) {\n      handler = config[events[index][0]]\n\n      if (own.call(handler, events[index][1].type)) {\n        handler[events[index][1].type].call(\n          assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n          events[index][1]\n        )\n      }\n    }\n\n    if (tokenStack.length) {\n      throw new Error(\n        'Cannot close document, a token (`' +\n          tokenStack[tokenStack.length - 1].type +\n          '`, ' +\n          stringifyPosition({\n            start: tokenStack[tokenStack.length - 1].start,\n            end: tokenStack[tokenStack.length - 1].end\n          }) +\n          ') is still open'\n      )\n    }\n\n    // Figure out `root` position.\n    tree.position = {\n      start: point(\n        events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n      ),\n\n      end: point(\n        events.length\n          ? events[events.length - 2][1].end\n          : {line: 1, column: 1, offset: 0}\n      )\n    }\n\n    index = -1\n    while (++index < config.transforms.length) {\n      tree = config.transforms[index](tree) || tree\n    }\n\n    return tree\n  }\n\n  function prepareList(events, start, length) {\n    var index = start - 1\n    var containerBalance = -1\n    var listSpread = false\n    var listItem\n    var tailIndex\n    var lineIndex\n    var tailEvent\n    var event\n    var firstBlankLineIndex\n    var atMarker\n\n    while (++index <= length) {\n      event = events[index]\n\n      if (\n        event[1].type === 'listUnordered' ||\n        event[1].type === 'listOrdered' ||\n        event[1].type === 'blockQuote'\n      ) {\n        if (event[0] === 'enter') {\n          containerBalance++\n        } else {\n          containerBalance--\n        }\n\n        atMarker = undefined\n      } else if (event[1].type === 'lineEndingBlank') {\n        if (event[0] === 'enter') {\n          if (\n            listItem &&\n            !atMarker &&\n            !containerBalance &&\n            !firstBlankLineIndex\n          ) {\n            firstBlankLineIndex = index\n          }\n\n          atMarker = undefined\n        }\n      } else if (\n        event[1].type === 'linePrefix' ||\n        event[1].type === 'listItemValue' ||\n        event[1].type === 'listItemMarker' ||\n        event[1].type === 'listItemPrefix' ||\n        event[1].type === 'listItemPrefixWhitespace'\n      ) {\n        // Empty.\n      } else {\n        atMarker = undefined\n      }\n\n      if (\n        (!containerBalance &&\n          event[0] === 'enter' &&\n          event[1].type === 'listItemPrefix') ||\n        (containerBalance === -1 &&\n          event[0] === 'exit' &&\n          (event[1].type === 'listUnordered' ||\n            event[1].type === 'listOrdered'))\n      ) {\n        if (listItem) {\n          tailIndex = index\n          lineIndex = undefined\n\n          while (tailIndex--) {\n            tailEvent = events[tailIndex]\n\n            if (\n              tailEvent[1].type === 'lineEnding' ||\n              tailEvent[1].type === 'lineEndingBlank'\n            ) {\n              if (tailEvent[0] === 'exit') continue\n\n              if (lineIndex) {\n                events[lineIndex][1].type = 'lineEndingBlank'\n                listSpread = true\n              }\n\n              tailEvent[1].type = 'lineEnding'\n              lineIndex = tailIndex\n            } else if (\n              tailEvent[1].type === 'linePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefix' ||\n              tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n              tailEvent[1].type === 'blockQuoteMarker' ||\n              tailEvent[1].type === 'listItemIndent'\n            ) {\n              // Empty\n            } else {\n              break\n            }\n          }\n\n          if (\n            firstBlankLineIndex &&\n            (!lineIndex || firstBlankLineIndex < lineIndex)\n          ) {\n            listItem._spread = true\n          }\n\n          // Fix position.\n          listItem.end = point(\n            lineIndex ? events[lineIndex][1].start : event[1].end\n          )\n\n          events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n          index++\n          length++\n        }\n\n        // Create a new list item.\n        if (event[1].type === 'listItemPrefix') {\n          listItem = {\n            type: 'listItem',\n            _spread: false,\n            start: point(event[1].start)\n          }\n\n          events.splice(index, 0, ['enter', listItem, event[2]])\n          index++\n          length++\n          firstBlankLineIndex = undefined\n          atMarker = true\n        }\n      }\n    }\n\n    events[start][1]._spread = listSpread\n    return length\n  }\n\n  function setData(key, value) {\n    data[key] = value\n  }\n\n  function getData(key) {\n    return data[key]\n  }\n\n  function point(d) {\n    return {line: d.line, column: d.column, offset: d.offset}\n  }\n\n  function opener(create, and) {\n    return open\n\n    function open(token) {\n      enter.call(this, create(token), token)\n      if (and) and.call(this, token)\n    }\n  }\n\n  function buffer() {\n    this.stack.push({type: 'fragment', children: []})\n  }\n\n  function enter(node, token) {\n    this.stack[this.stack.length - 1].children.push(node)\n    this.stack.push(node)\n    this.tokenStack.push(token)\n    node.position = {start: point(token.start)}\n    return node\n  }\n\n  function closer(and) {\n    return close\n\n    function close(token) {\n      if (and) and.call(this, token)\n      exit.call(this, token)\n    }\n  }\n\n  function exit(token) {\n    var node = this.stack.pop()\n    var open = this.tokenStack.pop()\n\n    if (!open) {\n      throw new Error(\n        'Cannot close `' +\n          token.type +\n          '` (' +\n          stringifyPosition({start: token.start, end: token.end}) +\n          '): it’s not open'\n      )\n    } else if (open.type !== token.type) {\n      throw new Error(\n        'Cannot close `' +\n          token.type +\n          '` (' +\n          stringifyPosition({start: token.start, end: token.end}) +\n          '): a different token (`' +\n          open.type +\n          '`, ' +\n          stringifyPosition({start: open.start, end: open.end}) +\n          ') is open'\n      )\n    }\n\n    node.position.end = point(token.end)\n    return node\n  }\n\n  function resume() {\n    return toString(this.stack.pop())\n  }\n\n  //\n  // Handlers.\n  //\n\n  function onenterlistordered() {\n    setData('expectingFirstListItemValue', true)\n  }\n\n  function onenterlistitemvalue(token) {\n    if (getData('expectingFirstListItemValue')) {\n      this.stack[this.stack.length - 2].start = parseInt(\n        this.sliceSerialize(token),\n        10\n      )\n\n      setData('expectingFirstListItemValue')\n    }\n  }\n\n  function onexitcodefencedfenceinfo() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].lang = data\n  }\n\n  function onexitcodefencedfencemeta() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].meta = data\n  }\n\n  function onexitcodefencedfence() {\n    // Exit if this is the closing fence.\n    if (getData('flowCodeInside')) return\n    this.buffer()\n    setData('flowCodeInside', true)\n  }\n\n  function onexitcodefenced() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].value = data.replace(\n      /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n      ''\n    )\n\n    setData('flowCodeInside')\n  }\n\n  function onexitcodeindented() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].value = data\n  }\n\n  function onexitdefinitionlabelstring(token) {\n    // Discard label, use the source content instead.\n    var label = this.resume()\n    this.stack[this.stack.length - 1].label = label\n    this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  function onexitdefinitiontitlestring() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].title = data\n  }\n\n  function onexitdefinitiondestinationstring() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].url = data\n  }\n\n  function onexitatxheadingsequence(token) {\n    if (!this.stack[this.stack.length - 1].depth) {\n      this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n        token\n      ).length\n    }\n  }\n\n  function onexitsetextheadingtext() {\n    setData('setextHeadingSlurpLineEnding', true)\n  }\n\n  function onexitsetextheadinglinesequence(token) {\n    this.stack[this.stack.length - 1].depth =\n      this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n  }\n\n  function onexitsetextheading() {\n    setData('setextHeadingSlurpLineEnding')\n  }\n\n  function onenterdata(token) {\n    var siblings = this.stack[this.stack.length - 1].children\n    var tail = siblings[siblings.length - 1]\n\n    if (!tail || tail.type !== 'text') {\n      // Add a new text node.\n      tail = text()\n      tail.position = {start: point(token.start)}\n      this.stack[this.stack.length - 1].children.push(tail)\n    }\n\n    this.stack.push(tail)\n  }\n\n  function onexitdata(token) {\n    var tail = this.stack.pop()\n    tail.value += this.sliceSerialize(token)\n    tail.position.end = point(token.end)\n  }\n\n  function onexitlineending(token) {\n    var context = this.stack[this.stack.length - 1]\n\n    // If we’re at a hard break, include the line ending in there.\n    if (getData('atHardBreak')) {\n      context.children[context.children.length - 1].position.end = point(\n        token.end\n      )\n\n      setData('atHardBreak')\n      return\n    }\n\n    if (\n      !getData('setextHeadingSlurpLineEnding') &&\n      config.canContainEols.indexOf(context.type) > -1\n    ) {\n      onenterdata.call(this, token)\n      onexitdata.call(this, token)\n    }\n  }\n\n  function onexithardbreak() {\n    setData('atHardBreak', true)\n  }\n\n  function onexithtmlflow() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].value = data\n  }\n\n  function onexithtmltext() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].value = data\n  }\n\n  function onexitcodetext() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].value = data\n  }\n\n  function onexitlink() {\n    var context = this.stack[this.stack.length - 1]\n\n    // To do: clean.\n    if (getData('inReference')) {\n      context.type += 'Reference'\n      context.referenceType = getData('referenceType') || 'shortcut'\n      delete context.url\n      delete context.title\n    } else {\n      delete context.identifier\n      delete context.label\n      delete context.referenceType\n    }\n\n    setData('referenceType')\n  }\n\n  function onexitimage() {\n    var context = this.stack[this.stack.length - 1]\n\n    // To do: clean.\n    if (getData('inReference')) {\n      context.type += 'Reference'\n      context.referenceType = getData('referenceType') || 'shortcut'\n      delete context.url\n      delete context.title\n    } else {\n      delete context.identifier\n      delete context.label\n      delete context.referenceType\n    }\n\n    setData('referenceType')\n  }\n\n  function onexitlabeltext(token) {\n    this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n  }\n\n  function onexitlabel() {\n    var fragment = this.stack[this.stack.length - 1]\n    var value = this.resume()\n\n    this.stack[this.stack.length - 1].label = value\n\n    // Assume a reference.\n    setData('inReference', true)\n\n    if (this.stack[this.stack.length - 1].type === 'link') {\n      this.stack[this.stack.length - 1].children = fragment.children\n    } else {\n      this.stack[this.stack.length - 1].alt = value\n    }\n  }\n\n  function onexitresourcedestinationstring() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].url = data\n  }\n\n  function onexitresourcetitlestring() {\n    var data = this.resume()\n    this.stack[this.stack.length - 1].title = data\n  }\n\n  function onexitresource() {\n    setData('inReference')\n  }\n\n  function onenterreference() {\n    setData('referenceType', 'collapsed')\n  }\n\n  function onexitreferencestring(token) {\n    var label = this.resume()\n    this.stack[this.stack.length - 1].label = label\n    this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n      this.sliceSerialize(token)\n    ).toLowerCase()\n    setData('referenceType', 'full')\n  }\n\n  function onexitcharacterreferencemarker(token) {\n    setData('characterReferenceType', token.type)\n  }\n\n  function onexitcharacterreferencevalue(token) {\n    var data = this.sliceSerialize(token)\n    var type = getData('characterReferenceType')\n    var value\n    var tail\n\n    if (type) {\n      value = safeFromInt(\n        data,\n        type === 'characterReferenceMarkerNumeric' ? 10 : 16\n      )\n\n      setData('characterReferenceType')\n    } else {\n      value = decode(data)\n    }\n\n    tail = this.stack.pop()\n    tail.value += value\n    tail.position.end = point(token.end)\n  }\n\n  function onexitautolinkprotocol(token) {\n    onexitdata.call(this, token)\n    this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n  }\n\n  function onexitautolinkemail(token) {\n    onexitdata.call(this, token)\n    this.stack[this.stack.length - 1].url =\n      'mailto:' + this.sliceSerialize(token)\n  }\n\n  //\n  // Creaters.\n  //\n\n  function blockQuote() {\n    return {type: 'blockquote', children: []}\n  }\n\n  function codeFlow() {\n    return {type: 'code', lang: null, meta: null, value: ''}\n  }\n\n  function codeText() {\n    return {type: 'inlineCode', value: ''}\n  }\n\n  function definition() {\n    return {\n      type: 'definition',\n      identifier: '',\n      label: null,\n      title: null,\n      url: ''\n    }\n  }\n\n  function emphasis() {\n    return {type: 'emphasis', children: []}\n  }\n\n  function heading() {\n    return {type: 'heading', depth: undefined, children: []}\n  }\n\n  function hardBreak() {\n    return {type: 'break'}\n  }\n\n  function html() {\n    return {type: 'html', value: ''}\n  }\n\n  function image() {\n    return {type: 'image', title: null, url: '', alt: null}\n  }\n\n  function link() {\n    return {type: 'link', title: null, url: '', children: []}\n  }\n\n  function list(token) {\n    return {\n      type: 'list',\n      ordered: token.type === 'listOrdered',\n      start: null,\n      spread: token._spread,\n      children: []\n    }\n  }\n\n  function listItem(token) {\n    return {\n      type: 'listItem',\n      spread: token._spread,\n      checked: null,\n      children: []\n    }\n  }\n\n  function paragraph() {\n    return {type: 'paragraph', children: []}\n  }\n\n  function strong() {\n    return {type: 'strong', children: []}\n  }\n\n  function text() {\n    return {type: 'text', value: ''}\n  }\n\n  function thematicBreak() {\n    return {type: 'thematicBreak'}\n  }\n}\n\nfunction configure(config, extensions) {\n  var index = -1\n\n  while (++index < extensions.length) {\n    extension(config, extensions[index])\n  }\n\n  return config\n}\n\nfunction extension(config, extension) {\n  var key\n  var left\n\n  for (key in extension) {\n    left = own.call(config, key) ? config[key] : (config[key] = {})\n\n    if (key === 'canContainEols' || key === 'transforms') {\n      config[key] = [].concat(left, extension[key])\n    } else {\n      Object.assign(left, extension[key])\n    }\n  }\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n  return (\n    (node &&\n      (node.value ||\n        node.alt ||\n        node.title ||\n        ('children' in node && all(node.children)) ||\n        ('length' in node && all(node)))) ||\n    ''\n  )\n}\n\nfunction all(values) {\n  var result = []\n  var index = -1\n\n  while (++index < values.length) {\n    result[index] = toString(values[index])\n  }\n\n  return result.join('')\n}\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n  var code = parseInt(value, base)\n\n  if (\n    // C0 except for HT, LF, FF, CR, space\n    code < 9 ||\n    code === 11 ||\n    (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n    (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n    (code > 55295 && code < 57344) || // Noncharacters.\n    (code > 64975 && code < 65008) ||\n    (code & 65535) === 65535 ||\n    (code & 65535) === 65534 || // Out of range\n    code > 1114111\n  ) {\n    return '\\uFFFD'\n  }\n\n  return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n  var settings = options || {}\n  var parser = {\n    defined: [],\n    constructs: combineExtensions(\n      [constructs].concat(miniflat(settings.extensions))\n    ),\n    content: create(content),\n    document: create(document),\n    flow: create(flow),\n    string: create(text.string),\n    text: create(text.text)\n  }\n  return parser\n\n  function create(initializer) {\n    return creator\n\n    function creator(from) {\n      return createTokenizer(parser, initializer, from)\n    }\n  }\n}\n\nmodule.exports = parse\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n  var contentStart = effects.attempt(\n    this.parser.constructs.contentInitial,\n    afterContentStartConstruct,\n    paragraphInitial\n  )\n  var previous\n  return contentStart\n\n  function afterContentStartConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, contentStart, 'linePrefix')\n  }\n\n  function paragraphInitial(code) {\n    effects.enter('paragraph')\n    return lineStart(code)\n  }\n\n  function lineStart(code) {\n    var token = effects.enter('chunkText', {\n      contentType: 'text',\n      previous: previous\n    })\n\n    if (previous) {\n      previous.next = token\n    }\n\n    previous = token\n    return data(code)\n  }\n\n  function data(code) {\n    if (code === null) {\n      effects.exit('chunkText')\n      effects.exit('paragraph')\n      effects.consume(code)\n      return\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      effects.exit('chunkText')\n      return lineStart\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n  tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n  tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n  var self = this\n  var stack = []\n  var continued = 0\n  var inspectConstruct = {\n    tokenize: tokenizeInspect,\n    partial: true\n  }\n  var inspectResult\n  var childFlow\n  var childToken\n  return start\n\n  function start(code) {\n    if (continued < stack.length) {\n      self.containerState = stack[continued][1]\n      return effects.attempt(\n        stack[continued][0].continuation,\n        documentContinue,\n        documentContinued\n      )(code)\n    }\n\n    return documentContinued(code)\n  }\n\n  function documentContinue(code) {\n    continued++\n    return start(code)\n  }\n\n  function documentContinued(code) {\n    // If we’re in a concrete construct (such as when expecting another line of\n    // HTML, or we resulted in lazy content), we can immediately start flow.\n    if (inspectResult && inspectResult.flowContinue) {\n      return flowStart(code)\n    }\n\n    self.interrupt =\n      childFlow &&\n      childFlow.currentConstruct &&\n      childFlow.currentConstruct.interruptible\n    self.containerState = {}\n    return effects.attempt(\n      containerConstruct,\n      containerContinue,\n      flowStart\n    )(code)\n  }\n\n  function containerContinue(code) {\n    stack.push([self.currentConstruct, self.containerState])\n    self.containerState = undefined\n    return documentContinued(code)\n  }\n\n  function flowStart(code) {\n    if (code === null) {\n      exitContainers(0, true)\n      effects.consume(code)\n      return\n    }\n\n    childFlow = childFlow || self.parser.flow(self.now())\n    effects.enter('chunkFlow', {\n      contentType: 'flow',\n      previous: childToken,\n      _tokenizer: childFlow\n    })\n    return flowContinue(code)\n  }\n\n  function flowContinue(code) {\n    if (code === null) {\n      continueFlow(effects.exit('chunkFlow'))\n      return flowStart(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.consume(code)\n      continueFlow(effects.exit('chunkFlow'))\n      return effects.check(inspectConstruct, documentAfterPeek)\n    }\n\n    effects.consume(code)\n    return flowContinue\n  }\n\n  function documentAfterPeek(code) {\n    exitContainers(\n      inspectResult.continued,\n      inspectResult && inspectResult.flowEnd\n    )\n    continued = 0\n    return start(code)\n  }\n\n  function continueFlow(token) {\n    if (childToken) childToken.next = token\n    childToken = token\n    childFlow.lazy = inspectResult && inspectResult.lazy\n    childFlow.defineSkip(token.start)\n    childFlow.write(self.sliceStream(token))\n  }\n\n  function exitContainers(size, end) {\n    var index = stack.length // Close the flow.\n\n    if (childFlow && end) {\n      childFlow.write([null])\n      childToken = childFlow = undefined\n    } // Exit open containers.\n\n    while (index-- > size) {\n      self.containerState = stack[index][1]\n      stack[index][0].exit.call(self, effects)\n    }\n\n    stack.length = size\n  }\n\n  function tokenizeInspect(effects, ok) {\n    var subcontinued = 0\n    inspectResult = {}\n    return inspectStart\n\n    function inspectStart(code) {\n      if (subcontinued < stack.length) {\n        self.containerState = stack[subcontinued][1]\n        return effects.attempt(\n          stack[subcontinued][0].continuation,\n          inspectContinue,\n          inspectLess\n        )(code)\n      } // If we’re continued but in a concrete flow, we can’t have more\n      // containers.\n\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        inspectResult.flowContinue = true\n        return inspectDone(code)\n      }\n\n      self.interrupt =\n        childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n      self.containerState = {}\n      return effects.attempt(\n        containerConstruct,\n        inspectFlowEnd,\n        inspectDone\n      )(code)\n    }\n\n    function inspectContinue(code) {\n      subcontinued++\n      return self.containerState._closeFlow\n        ? inspectFlowEnd(code)\n        : inspectStart(code)\n    }\n\n    function inspectLess(code) {\n      if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n        // Maybe another container?\n        self.containerState = {}\n        return effects.attempt(\n          containerConstruct,\n          inspectFlowEnd, // Maybe flow, or a blank line?\n          effects.attempt(\n            lazyFlowConstruct,\n            inspectFlowEnd,\n            effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n          )\n        )(code)\n      } // Otherwise we’re interrupting.\n\n      return inspectFlowEnd(code)\n    }\n\n    function inspectLazy(code) {\n      // Act as if all containers are continued.\n      subcontinued = stack.length\n      inspectResult.lazy = true\n      inspectResult.flowContinue = true\n      return inspectDone(code)\n    } // We’re done with flow if we have more containers, or an interruption.\n\n    function inspectFlowEnd(code) {\n      inspectResult.flowEnd = true\n      return inspectDone(code)\n    }\n\n    function inspectDone(code) {\n      inspectResult.continued = subcontinued\n      self.interrupt = self.containerState = undefined\n      return ok(code)\n    }\n  }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(this.parser.constructs.document, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n      ? undefined\n      : 4\n  )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.lazy(this.parser.constructs.flow, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n      ? undefined\n      : 4\n  )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n  var self = this\n  var initial = effects.attempt(\n    // Try to parse a blank line.\n    partialBlankLine,\n    atBlankEnding, // Try to parse initial flow (essentially, only code).\n    effects.attempt(\n      this.parser.constructs.flowInitial,\n      afterConstruct,\n      factorySpace(\n        effects,\n        effects.attempt(\n          this.parser.constructs.flow,\n          afterConstruct,\n          effects.attempt(content, afterConstruct)\n        ),\n        'linePrefix'\n      )\n    )\n  )\n  return initial\n\n  function atBlankEnding(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    self.currentConstruct = undefined\n    return initial\n  }\n\n  function afterConstruct(code) {\n    if (code === null) {\n      effects.consume(code)\n      return\n    }\n\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    self.currentConstruct = undefined\n    return initial\n  }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n  tokenize: tokenizeContent,\n  resolve: resolveContent,\n  interruptible: true,\n  lazy: true\n}\nvar continuationConstruct = {\n  tokenize: tokenizeContinuation,\n  partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n  subtokenize(events)\n  return events\n}\n\nfunction tokenizeContent(effects, ok) {\n  var previous\n  return start\n\n  function start(code) {\n    effects.enter('content')\n    previous = effects.enter('chunkContent', {\n      contentType: 'content'\n    })\n    return data(code)\n  }\n\n  function data(code) {\n    if (code === null) {\n      return contentEnd(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.check(\n        continuationConstruct,\n        contentContinue,\n        contentEnd\n      )(code)\n    } // Data.\n\n    effects.consume(code)\n    return data\n  }\n\n  function contentEnd(code) {\n    effects.exit('chunkContent')\n    effects.exit('content')\n    return ok(code)\n  }\n\n  function contentContinue(code) {\n    effects.consume(code)\n    effects.exit('chunkContent')\n    previous = previous.next = effects.enter('chunkContent', {\n      contentType: 'content',\n      previous: previous\n    })\n    return data\n  }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n  var self = this\n  return startLookahead\n\n  function startLookahead(code) {\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, prefixed, 'linePrefix')\n  }\n\n  function prefixed(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    if (\n      self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n      prefixSize(self.events, 'linePrefix') < 4\n    ) {\n      return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n    }\n\n    return ok(code)\n  }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n  var all = {}\n  var index = -1\n\n  while (++index < extensions.length) {\n    extension(all, extensions[index])\n  }\n\n  return all\n}\n\nfunction extension(all, extension) {\n  var hook\n  var left\n  var right\n  var code\n\n  for (hook in extension) {\n    left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n    right = extension[hook]\n\n    for (code in right) {\n      left[code] = constructs(\n        miniflat(right[code]),\n        hasOwnProperty.call(left, code) ? left[code] : []\n      )\n    }\n  }\n}\n\nfunction constructs(list, existing) {\n  var index = -1\n  var before = []\n\n  while (++index < list.length) {\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  chunkedSplice(existing, 0, 0, before)\n  return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n  var point = from\n    ? shallow(from)\n    : {\n        line: 1,\n        column: 1,\n        offset: 0\n      }\n  var columnStart = {}\n  var resolveAllConstructs = []\n  var chunks = []\n  var stack = []\n\n  var effects = {\n    consume: consume,\n    enter: enter,\n    exit: exit,\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    }),\n    lazy: constructFactory(onsuccessfulcheck, {\n      lazy: true\n    })\n  } // State and tools for resolving and serializing.\n\n  var context = {\n    previous: null,\n    events: [],\n    parser: parser,\n    sliceStream: sliceStream,\n    sliceSerialize: sliceSerialize,\n    now: now,\n    defineSkip: skip,\n    write: write\n  } // The state function.\n\n  var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize)\n  } // Store where we are in the input stream.\n\n  point._index = 0\n  point._bufferIndex = -1\n  return context\n\n  function write(slice) {\n    chunks = chunkedPush(chunks, slice)\n    main() // Exit if we’re not done, resolve might change stuff.\n\n    if (chunks[chunks.length - 1] !== null) {\n      return []\n    }\n\n    addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n    context.events = resolveAll(resolveAllConstructs, context.events, context)\n    return context.events\n  } //\n  // Tools.\n  //\n\n  function sliceSerialize(token) {\n    return serializeChunks(sliceStream(token))\n  }\n\n  function sliceStream(token) {\n    return sliceChunks(chunks, token)\n  }\n\n  function now() {\n    return shallow(point)\n  }\n\n  function skip(value) {\n    columnStart[value.line] = value.column\n    accountForPotentialSkip()\n  } //\n  // State management.\n  //\n  // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n  // `consume`).\n  // Here is where we walk through the chunks, which either include strings of\n  // several characters, or numerical character codes.\n  // The reason to do this in a loop instead of a call is so the stack can\n  // drain.\n\n  function main() {\n    var chunkIndex\n    var chunk\n\n    while (point._index < chunks.length) {\n      chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n      if (typeof chunk === 'string') {\n        chunkIndex = point._index\n\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0\n        }\n\n        while (\n          point._index === chunkIndex &&\n          point._bufferIndex < chunk.length\n        ) {\n          go(chunk.charCodeAt(point._bufferIndex))\n        }\n      } else {\n        go(chunk)\n      }\n    }\n  } // Deal with one code.\n\n  function go(code) {\n    state = state(code)\n  } // Move a character forward.\n\n  function consume(code) {\n    if (markdownLineEnding(code)) {\n      point.line++\n      point.column = 1\n      point.offset += code === -3 ? 2 : 1\n      accountForPotentialSkip()\n    } else if (code !== -1) {\n      point.column++\n      point.offset++\n    } // Not in a string chunk.\n\n    if (point._bufferIndex < 0) {\n      point._index++\n    } else {\n      point._bufferIndex++ // At end of string chunk.\n\n      if (point._bufferIndex === chunks[point._index].length) {\n        point._bufferIndex = -1\n        point._index++\n      }\n    } // Expose the previous character.\n\n    context.previous = code // Mark as consumed.\n  } // Start a token.\n\n  function enter(type, fields) {\n    var token = fields || {}\n    token.type = type\n    token.start = now()\n    context.events.push(['enter', token, context])\n    stack.push(token)\n    return token\n  } // Stop a token.\n\n  function exit(type) {\n    var token = stack.pop()\n    token.end = now()\n    context.events.push(['exit', token, context])\n    return token\n  } // Use results.\n\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from)\n  } // Discard results.\n\n  function onsuccessfulcheck(construct, info) {\n    info.restore()\n  } // Factory to attempt/check/interrupt.\n\n  function constructFactory(onreturn, fields) {\n    return hook // Handle either an object mapping codes to constructs, a list of\n    // constructs, or a single construct.\n\n    function hook(constructs, returnState, bogusState) {\n      var listOfConstructs\n      var constructIndex\n      var currentConstruct\n      var info\n      return constructs.tokenize || 'length' in constructs\n        ? handleListOfConstructs(miniflat(constructs))\n        : handleMapOfConstructs\n\n      function handleMapOfConstructs(code) {\n        if (code in constructs || null in constructs) {\n          return handleListOfConstructs(\n            constructs.null\n              ? /* c8 ignore next */\n                miniflat(constructs[code]).concat(miniflat(constructs.null))\n              : constructs[code]\n          )(code)\n        }\n\n        return bogusState(code)\n      }\n\n      function handleListOfConstructs(list) {\n        listOfConstructs = list\n        constructIndex = 0\n        return handleConstruct(list[constructIndex])\n      }\n\n      function handleConstruct(construct) {\n        return start\n\n        function start(code) {\n          // To do: not nede to store if there is no bogus state, probably?\n          // Currently doesn’t work because `inspect` in document does a check\n          // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n          // by not storing.\n          info = store()\n          currentConstruct = construct\n\n          if (!construct.partial) {\n            context.currentConstruct = construct\n          }\n\n          if (\n            construct.name &&\n            context.parser.constructs.disable.null.indexOf(construct.name) > -1\n          ) {\n            return nok()\n          }\n\n          return construct.tokenize.call(\n            fields ? assign({}, context, fields) : context,\n            effects,\n            ok,\n            nok\n          )(code)\n        }\n      }\n\n      function ok(code) {\n        onreturn(currentConstruct, info)\n        return returnState\n      }\n\n      function nok(code) {\n        info.restore()\n\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex])\n        }\n\n        return bogusState\n      }\n    }\n  }\n\n  function addResult(construct, from) {\n    if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n      resolveAllConstructs.push(construct)\n    }\n\n    if (construct.resolve) {\n      chunkedSplice(\n        context.events,\n        from,\n        context.events.length - from,\n        construct.resolve(context.events.slice(from), context)\n      )\n    }\n\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context)\n    }\n  }\n\n  function store() {\n    var startPoint = now()\n    var startPrevious = context.previous\n    var startCurrentConstruct = context.currentConstruct\n    var startEventsIndex = context.events.length\n    var startStack = Array.from(stack)\n    return {\n      restore: restore,\n      from: startEventsIndex\n    }\n\n    function restore() {\n      point = startPoint\n      context.previous = startPrevious\n      context.currentConstruct = startCurrentConstruct\n      context.events.length = startEventsIndex\n      stack = startStack\n      accountForPotentialSkip()\n    }\n  }\n\n  function accountForPotentialSkip() {\n    if (point.line in columnStart && point.column < 2) {\n      point.column = columnStart[point.line]\n      point.offset += columnStart[point.line] - 1\n    }\n  }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n  var index = -1\n  var result = []\n  var chunk\n  var value\n  var atTab\n\n  while (++index < chunks.length) {\n    chunk = chunks[index]\n\n    if (typeof chunk === 'string') {\n      value = chunk\n    } else if (chunk === -5) {\n      value = '\\r'\n    } else if (chunk === -4) {\n      value = '\\n'\n    } else if (chunk === -3) {\n      value = '\\r' + '\\n'\n    } else if (chunk === -2) {\n      value = '\\t'\n    } else if (chunk === -1) {\n      if (atTab) continue\n      value = ' '\n    } else {\n      // Currently only replacement character.\n      value = fromCharCode(chunk)\n    }\n\n    atTab = chunk === -2\n    result.push(value)\n  }\n\n  return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n  var startIndex = token.start._index\n  var startBufferIndex = token.start._bufferIndex\n  var endIndex = token.end._index\n  var endBufferIndex = token.end._bufferIndex\n  var view\n\n  if (startIndex === endIndex) {\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n  } else {\n    view = chunks.slice(startIndex, endIndex)\n\n    if (startBufferIndex > -1) {\n      view[0] = view[0].slice(startBufferIndex)\n    }\n\n    if (endBufferIndex > 0) {\n      view.push(chunks[endIndex].slice(0, endBufferIndex))\n    }\n  }\n\n  return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n  42: list,\n  // Asterisk\n  43: list,\n  // Plus sign\n  45: list,\n  // Dash\n  48: list,\n  // 0\n  49: list,\n  // 1\n  50: list,\n  // 2\n  51: list,\n  // 3\n  52: list,\n  // 4\n  53: list,\n  // 5\n  54: list,\n  // 6\n  55: list,\n  // 7\n  56: list,\n  // 8\n  57: list,\n  // 9\n  62: blockQuote // Greater than\n}\nvar contentInitial = {\n  91: definition // Left square bracket\n}\nvar flowInitial = {\n  '-2': codeIndented,\n  // Horizontal tab\n  '-1': codeIndented,\n  // Virtual space\n  32: codeIndented // Space\n}\nvar flow = {\n  35: headingAtx,\n  // Number sign\n  42: thematicBreak,\n  // Asterisk\n  45: [setextUnderline, thematicBreak],\n  // Dash\n  60: htmlFlow,\n  // Less than\n  61: setextUnderline,\n  // Equals to\n  95: thematicBreak,\n  // Underscore\n  96: codeFenced,\n  // Grave accent\n  126: codeFenced // Tilde\n}\nvar string = {\n  38: characterReference,\n  // Ampersand\n  92: characterEscape // Backslash\n}\nvar text = {\n  '-5': lineEnding,\n  // Carriage return\n  '-4': lineEnding,\n  // Line feed\n  '-3': lineEnding,\n  // Carriage return + line feed\n  33: labelStartImage,\n  // Exclamation mark\n  38: characterReference,\n  // Ampersand\n  42: attention,\n  // Asterisk\n  60: [autolink, htmlText],\n  // Less than\n  91: labelStartLink,\n  // Left square bracket\n  92: [hardBreakEscape, characterEscape],\n  // Backslash\n  93: labelEnd,\n  // Right square bracket\n  95: attention,\n  // Underscore\n  96: codeText // Grave accent\n}\nvar insideSpan = {\n  null: [attention, text$1.resolver]\n}\nvar disable = {\n  null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n  name: 'attention',\n  tokenize: tokenizeAttention,\n  resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n  var index = -1\n  var open\n  var group\n  var text\n  var openingSequence\n  var closingSequence\n  var use\n  var nextEvents\n  var offset // Walk through all events.\n  //\n  // Note: performance of this is fine on an mb of normal markdown, but it’s\n  // a bottleneck for malicious stuff.\n\n  while (++index < events.length) {\n    // Find a token that can close.\n    if (\n      events[index][0] === 'enter' &&\n      events[index][1].type === 'attentionSequence' &&\n      events[index][1]._close\n    ) {\n      open = index // Now walk back to find an opener.\n\n      while (open--) {\n        // Find a token that can open the closer.\n        if (\n          events[open][0] === 'exit' &&\n          events[open][1].type === 'attentionSequence' &&\n          events[open][1]._open && // If the markers are the same:\n          context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n            context.sliceSerialize(events[index][1]).charCodeAt(0)\n        ) {\n          // If the opening can close or the closing can open,\n          // and the close size *is not* a multiple of three,\n          // but the sum of the opening and closing size *is* multiple of three,\n          // then don’t match.\n          if (\n            (events[open][1]._close || events[index][1]._open) &&\n            (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n            !(\n              (events[open][1].end.offset -\n                events[open][1].start.offset +\n                events[index][1].end.offset -\n                events[index][1].start.offset) %\n              3\n            )\n          ) {\n            continue\n          } // Number of markers to use from the sequence.\n\n          use =\n            events[open][1].end.offset - events[open][1].start.offset > 1 &&\n            events[index][1].end.offset - events[index][1].start.offset > 1\n              ? 2\n              : 1\n          openingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start: movePoint(shallow(events[open][1].end), -use),\n            end: shallow(events[open][1].end)\n          }\n          closingSequence = {\n            type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n            start: shallow(events[index][1].start),\n            end: movePoint(shallow(events[index][1].start), use)\n          }\n          text = {\n            type: use > 1 ? 'strongText' : 'emphasisText',\n            start: shallow(events[open][1].end),\n            end: shallow(events[index][1].start)\n          }\n          group = {\n            type: use > 1 ? 'strong' : 'emphasis',\n            start: shallow(openingSequence.start),\n            end: shallow(closingSequence.end)\n          }\n          events[open][1].end = shallow(openingSequence.start)\n          events[index][1].start = shallow(closingSequence.end)\n          nextEvents = [] // If there are more markers in the opening, add them before.\n\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = chunkedPush(nextEvents, [\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context]\n            ])\n          } // Opening.\n\n          nextEvents = chunkedPush(nextEvents, [\n            ['enter', group, context],\n            ['enter', openingSequence, context],\n            ['exit', openingSequence, context],\n            ['enter', text, context]\n          ]) // Between.\n\n          nextEvents = chunkedPush(\n            nextEvents,\n            resolveAll(\n              context.parser.constructs.insideSpan.null,\n              events.slice(open + 1, index),\n              context\n            )\n          ) // Closing.\n\n          nextEvents = chunkedPush(nextEvents, [\n            ['exit', text, context],\n            ['enter', closingSequence, context],\n            ['exit', closingSequence, context],\n            ['exit', group, context]\n          ]) // If there are more markers in the closing, add them after.\n\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2\n            nextEvents = chunkedPush(nextEvents, [\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context]\n            ])\n          } else {\n            offset = 0\n          }\n\n          chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n          index = open + nextEvents.length - offset - 2\n          break\n        }\n      }\n    }\n  } // Remove remaining sequences.\n\n  index = -1\n\n  while (++index < events.length) {\n    if (events[index][1].type === 'attentionSequence') {\n      events[index][1].type = 'data'\n    }\n  }\n\n  return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n  var before = classifyCharacter(this.previous)\n  var marker\n  return start\n\n  function start(code) {\n    effects.enter('attentionSequence')\n    marker = code\n    return sequence(code)\n  }\n\n  function sequence(code) {\n    var token\n    var after\n    var open\n    var close\n\n    if (code === marker) {\n      effects.consume(code)\n      return sequence\n    }\n\n    token = effects.exit('attentionSequence')\n    after = classifyCharacter(code)\n    open = !after || (after === 2 && before)\n    close = !before || (before === 2 && after)\n    token._open = marker === 42 ? open : open && (before || !close)\n    token._close = marker === 42 ? close : close && (after || !open)\n    return ok(code)\n  }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n  if (\n    code === null ||\n    markdownLineEndingOrSpace(code) ||\n    unicodeWhitespace(code)\n  ) {\n    return 1\n  }\n\n  if (unicodePunctuation(code)) {\n    return 2\n  }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n  point.column += offset\n  point.offset += offset\n  point._bufferIndex += offset\n  return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n  name: 'autolink',\n  tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n  var size = 1\n  return start\n\n  function start(code) {\n    effects.enter('autolink')\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.enter('autolinkProtocol')\n    return open\n  }\n\n  function open(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return schemeOrEmailAtext\n    }\n\n    return asciiAtext(code) ? emailAtext(code) : nok(code)\n  }\n\n  function schemeOrEmailAtext(code) {\n    return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n      ? schemeInsideOrEmailAtext(code)\n      : emailAtext(code)\n  }\n\n  function schemeInsideOrEmailAtext(code) {\n    if (code === 58) {\n      effects.consume(code)\n      return urlInside\n    }\n\n    if (\n      (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n      size++ < 32\n    ) {\n      effects.consume(code)\n      return schemeInsideOrEmailAtext\n    }\n\n    return emailAtext(code)\n  }\n\n  function urlInside(code) {\n    if (code === 62) {\n      effects.exit('autolinkProtocol')\n      return end(code)\n    }\n\n    if (code === 32 || code === 60 || asciiControl(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return urlInside\n  }\n\n  function emailAtext(code) {\n    if (code === 64) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (asciiAtext(code)) {\n      effects.consume(code)\n      return emailAtext\n    }\n\n    return nok(code)\n  }\n\n  function emailAtSignOrDot(code) {\n    return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n  }\n\n  function emailLabel(code) {\n    if (code === 46) {\n      effects.consume(code)\n      size = 0\n      return emailAtSignOrDot\n    }\n\n    if (code === 62) {\n      // Exit, then change the type.\n      effects.exit('autolinkProtocol').type = 'autolinkEmail'\n      return end(code)\n    }\n\n    return emailValue(code)\n  }\n\n  function emailValue(code) {\n    if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n      effects.consume(code)\n      return code === 45 ? emailValue : emailLabel\n    }\n\n    return nok(code)\n  }\n\n  function end(code) {\n    effects.enter('autolinkMarker')\n    effects.consume(code)\n    effects.exit('autolinkMarker')\n    effects.exit('autolink')\n    return ok\n  }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n  name: 'blockQuote',\n  tokenize: tokenizeBlockQuoteStart,\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  var self = this\n  return start\n\n  function start(code) {\n    if (code === 62) {\n      if (!self.containerState.open) {\n        effects.enter('blockQuote', {\n          _container: true\n        })\n        self.containerState.open = true\n      }\n\n      effects.enter('blockQuotePrefix')\n      effects.enter('blockQuoteMarker')\n      effects.consume(code)\n      effects.exit('blockQuoteMarker')\n      return after\n    }\n\n    return nok(code)\n  }\n\n  function after(code) {\n    if (markdownSpace(code)) {\n      effects.enter('blockQuotePrefixWhitespace')\n      effects.consume(code)\n      effects.exit('blockQuotePrefixWhitespace')\n      effects.exit('blockQuotePrefix')\n      return ok\n    }\n\n    effects.exit('blockQuotePrefix')\n    return ok(code)\n  }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  return factorySpace(\n    effects,\n    effects.attempt(blockQuote, ok, nok),\n    'linePrefix',\n    this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n      ? undefined\n      : 4\n  )\n}\n\nfunction exit(effects) {\n  effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n  name: 'characterEscape',\n  tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    effects.enter('characterEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    effects.exit('escapeMarker')\n    return open\n  }\n\n  function open(code) {\n    if (asciiPunctuation(code)) {\n      effects.enter('characterEscapeValue')\n      effects.consume(code)\n      effects.exit('characterEscapeValue')\n      effects.exit('characterEscape')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n  return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n  name: 'characterReference',\n  tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  var self = this\n  var size = 0\n  var max\n  var test\n  return start\n\n  function start(code) {\n    effects.enter('characterReference')\n    effects.enter('characterReferenceMarker')\n    effects.consume(code)\n    effects.exit('characterReferenceMarker')\n    return open\n  }\n\n  function open(code) {\n    if (code === 35) {\n      effects.enter('characterReferenceMarkerNumeric')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerNumeric')\n      return numeric\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 31\n    test = asciiAlphanumeric\n    return value(code)\n  }\n\n  function numeric(code) {\n    if (code === 88 || code === 120) {\n      effects.enter('characterReferenceMarkerHexadecimal')\n      effects.consume(code)\n      effects.exit('characterReferenceMarkerHexadecimal')\n      effects.enter('characterReferenceValue')\n      max = 6\n      test = asciiHexDigit\n      return value\n    }\n\n    effects.enter('characterReferenceValue')\n    max = 7\n    test = asciiDigit\n    return value(code)\n  }\n\n  function value(code) {\n    var token\n\n    if (code === 59 && size) {\n      token = effects.exit('characterReferenceValue')\n\n      if (\n        test === asciiAlphanumeric &&\n        !decodeEntity__default['default'](self.sliceSerialize(token))\n      ) {\n        return nok(code)\n      }\n\n      effects.enter('characterReferenceMarker')\n      effects.consume(code)\n      effects.exit('characterReferenceMarker')\n      effects.exit('characterReference')\n      return ok\n    }\n\n    if (test(code) && size++ < max) {\n      effects.consume(code)\n      return value\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n  name: 'codeFenced',\n  tokenize: tokenizeCodeFenced,\n  concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  var self = this\n  var closingFenceConstruct = {\n    tokenize: tokenizeClosingFence,\n    partial: true\n  }\n  var initialPrefix = prefixSize(this.events, 'linePrefix')\n  var sizeOpen = 0\n  var marker\n  return start\n\n  function start(code) {\n    effects.enter('codeFenced')\n    effects.enter('codeFencedFence')\n    effects.enter('codeFencedFenceSequence')\n    marker = code\n    return sequenceOpen(code)\n  }\n\n  function sequenceOpen(code) {\n    if (code === marker) {\n      effects.consume(code)\n      sizeOpen++\n      return sequenceOpen\n    }\n\n    effects.exit('codeFencedFenceSequence')\n    return sizeOpen < 3\n      ? nok(code)\n      : factorySpace(effects, infoOpen, 'whitespace')(code)\n  }\n\n  function infoOpen(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceInfo')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return info(code)\n  }\n\n  function info(code) {\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceInfo')\n      return factorySpace(effects, infoAfter, 'whitespace')(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return info\n  }\n\n  function infoAfter(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return openAfter(code)\n    }\n\n    effects.enter('codeFencedFenceMeta')\n    effects.enter('chunkString', {\n      contentType: 'string'\n    })\n    return meta(code)\n  }\n\n  function meta(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('chunkString')\n      effects.exit('codeFencedFenceMeta')\n      return openAfter(code)\n    }\n\n    if (code === 96 && code === marker) return nok(code)\n    effects.consume(code)\n    return meta\n  }\n\n  function openAfter(code) {\n    effects.exit('codeFencedFence')\n    return self.interrupt ? ok(code) : content(code)\n  }\n\n  function content(code) {\n    if (code === null) {\n      return after(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return effects.attempt(\n        closingFenceConstruct,\n        after,\n        initialPrefix\n          ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n          : content\n      )\n    }\n\n    effects.enter('codeFlowValue')\n    return contentContinue(code)\n  }\n\n  function contentContinue(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return content(code)\n    }\n\n    effects.consume(code)\n    return contentContinue\n  }\n\n  function after(code) {\n    effects.exit('codeFenced')\n    return ok(code)\n  }\n\n  function tokenizeClosingFence(effects, ok, nok) {\n    var size = 0\n    return factorySpace(\n      effects,\n      closingSequenceStart,\n      'linePrefix',\n      this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n        ? undefined\n        : 4\n    )\n\n    function closingSequenceStart(code) {\n      effects.enter('codeFencedFence')\n      effects.enter('codeFencedFenceSequence')\n      return closingSequence(code)\n    }\n\n    function closingSequence(code) {\n      if (code === marker) {\n        effects.consume(code)\n        size++\n        return closingSequence\n      }\n\n      if (size < sizeOpen) return nok(code)\n      effects.exit('codeFencedFenceSequence')\n      return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n    }\n\n    function closingSequenceEnd(code) {\n      if (code === null || markdownLineEnding(code)) {\n        effects.exit('codeFencedFence')\n        return ok(code)\n      }\n\n      return nok(code)\n    }\n  }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n  name: 'codeIndented',\n  tokenize: tokenizeCodeIndented,\n  resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n  tokenize: tokenizeIndentedContent,\n  partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n  var code = {\n    type: 'codeIndented',\n    start: events[0][1].start,\n    end: events[events.length - 1][1].end\n  }\n  chunkedSplice(events, 0, 0, [['enter', code, context]])\n  chunkedSplice(events, events.length, 0, [['exit', code, context]])\n  return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n  function afterPrefix(code) {\n    if (code === null) {\n      return ok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n    }\n\n    effects.enter('codeFlowValue')\n    return content(code)\n  }\n\n  function content(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('codeFlowValue')\n      return afterPrefix(code)\n    }\n\n    effects.consume(code)\n    return content\n  }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n  var self = this\n  return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n  function afterPrefix(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n    }\n\n    return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n  }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n  name: 'codeText',\n  tokenize: tokenizeCodeText,\n  resolve: resolveCodeText,\n  previous: previous\n}\n\nfunction resolveCodeText(events) {\n  var tailExitIndex = events.length - 4\n  var headEnterIndex = 3\n  var index\n  var enter // If we start and end with an EOL or a space.\n\n  if (\n    (events[headEnterIndex][1].type === 'lineEnding' ||\n      events[headEnterIndex][1].type === 'space') &&\n    (events[tailExitIndex][1].type === 'lineEnding' ||\n      events[tailExitIndex][1].type === 'space')\n  ) {\n    index = headEnterIndex // And we have data.\n\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === 'codeTextData') {\n        // Then we have padding.\n        events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n          'codeTextPadding'\n        headEnterIndex += 2\n        tailExitIndex -= 2\n        break\n      }\n    }\n  } // Merge adjacent spaces and data.\n\n  index = headEnterIndex - 1\n  tailExitIndex++\n\n  while (++index <= tailExitIndex) {\n    if (enter === undefined) {\n      if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n        enter = index\n      }\n    } else if (\n      index === tailExitIndex ||\n      events[index][1].type === 'lineEnding'\n    ) {\n      events[enter][1].type = 'codeTextData'\n\n      if (index !== enter + 2) {\n        events[enter][1].end = events[index - 1][1].end\n        events.splice(enter + 2, index - enter - 2)\n        tailExitIndex -= index - enter - 2\n        index = enter + 2\n      }\n\n      enter = undefined\n    }\n  }\n\n  return events\n}\n\nfunction previous(code) {\n  // If there is a previous code, there will always be a tail.\n  return (\n    code !== 96 ||\n    this.events[this.events.length - 1][1].type === 'characterEscape'\n  )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n  var sizeOpen = 0\n  var size\n  var token\n  return start\n\n  function start(code) {\n    effects.enter('codeText')\n    effects.enter('codeTextSequence')\n    return openingSequence(code)\n  }\n\n  function openingSequence(code) {\n    if (code === 96) {\n      effects.consume(code)\n      sizeOpen++\n      return openingSequence\n    }\n\n    effects.exit('codeTextSequence')\n    return gap(code)\n  }\n\n  function gap(code) {\n    // EOF.\n    if (code === null) {\n      return nok(code)\n    } // Closing fence?\n    // Could also be data.\n\n    if (code === 96) {\n      token = effects.enter('codeTextSequence')\n      size = 0\n      return closingSequence(code)\n    } // Tabs don’t work, and virtual spaces don’t make sense.\n\n    if (code === 32) {\n      effects.enter('space')\n      effects.consume(code)\n      effects.exit('space')\n      return gap\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return gap\n    } // Data.\n\n    effects.enter('codeTextData')\n    return data(code)\n  } // In code.\n\n  function data(code) {\n    if (\n      code === null ||\n      code === 32 ||\n      code === 96 ||\n      markdownLineEnding(code)\n    ) {\n      effects.exit('codeTextData')\n      return gap(code)\n    }\n\n    effects.consume(code)\n    return data\n  } // Closing fence.\n\n  function closingSequence(code) {\n    // More.\n    if (code === 96) {\n      effects.consume(code)\n      size++\n      return closingSequence\n    } // Done!\n\n    if (size === sizeOpen) {\n      effects.exit('codeTextSequence')\n      effects.exit('codeText')\n      return ok(code)\n    } // More or less accents: mark as data.\n\n    token.type = 'codeTextData'\n    return data(code)\n  }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n  name: 'definition',\n  tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n  tokenize: tokenizeTitle,\n  partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n  var self = this\n  var identifier\n  return start\n\n  function start(code) {\n    effects.enter('definition')\n    return factoryLabel.call(\n      self,\n      effects,\n      labelAfter,\n      nok,\n      'definitionLabel',\n      'definitionLabelMarker',\n      'definitionLabelString'\n    )(code)\n  }\n\n  function labelAfter(code) {\n    identifier = normalizeIdentifier(\n      self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n    )\n\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n      return factoryWhitespace(\n        effects,\n        factoryDestination(\n          effects,\n          effects.attempt(\n            titleConstruct,\n            factorySpace(effects, after, 'whitespace'),\n            factorySpace(effects, after, 'whitespace')\n          ),\n          nok,\n          'definitionDestination',\n          'definitionDestinationLiteral',\n          'definitionDestinationLiteralMarker',\n          'definitionDestinationRaw',\n          'definitionDestinationString'\n        )\n      )\n    }\n\n    return nok(code)\n  }\n\n  function after(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('definition')\n\n      if (self.parser.defined.indexOf(identifier) < 0) {\n        self.parser.defined.push(identifier)\n      }\n\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    return markdownLineEndingOrSpace(code)\n      ? factoryWhitespace(effects, before)(code)\n      : nok(code)\n  }\n\n  function before(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(\n        effects,\n        factorySpace(effects, after, 'whitespace'),\n        nok,\n        'definitionTitle',\n        'definitionTitleMarker',\n        'definitionTitleString'\n      )(code)\n    }\n\n    return nok(code)\n  }\n\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n  name: 'hardBreakEscape',\n  tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    effects.enter('hardBreakEscape')\n    effects.enter('escapeMarker')\n    effects.consume(code)\n    return open\n  }\n\n  function open(code) {\n    if (markdownLineEnding(code)) {\n      effects.exit('escapeMarker')\n      effects.exit('hardBreakEscape')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n  name: 'headingAtx',\n  tokenize: tokenizeHeadingAtx,\n  resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n  var contentEnd = events.length - 2\n  var contentStart = 3\n  var content\n  var text // Prefix whitespace, part of the opening.\n\n  if (events[contentStart][1].type === 'whitespace') {\n    contentStart += 2\n  } // Suffix whitespace, part of the closing.\n\n  if (\n    contentEnd - 2 > contentStart &&\n    events[contentEnd][1].type === 'whitespace'\n  ) {\n    contentEnd -= 2\n  }\n\n  if (\n    events[contentEnd][1].type === 'atxHeadingSequence' &&\n    (contentStart === contentEnd - 1 ||\n      (contentEnd - 4 > contentStart &&\n        events[contentEnd - 2][1].type === 'whitespace'))\n  ) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n  }\n\n  if (contentEnd > contentStart) {\n    content = {\n      type: 'atxHeadingText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    }\n    text = {\n      type: 'chunkText',\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      contentType: 'text'\n    }\n    chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n      ['enter', content, context],\n      ['enter', text, context],\n      ['exit', text, context],\n      ['exit', content, context]\n    ])\n  }\n\n  return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  var self = this\n  var size = 0\n  return start\n\n  function start(code) {\n    effects.enter('atxHeading')\n    effects.enter('atxHeadingSequence')\n    return fenceOpenInside(code)\n  }\n\n  function fenceOpenInside(code) {\n    if (code === 35 && size++ < 6) {\n      effects.consume(code)\n      return fenceOpenInside\n    }\n\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingSequence')\n      return self.interrupt ? ok(code) : headingBreak(code)\n    }\n\n    return nok(code)\n  }\n\n  function headingBreak(code) {\n    if (code === 35) {\n      effects.enter('atxHeadingSequence')\n      return sequence(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('atxHeading')\n      return ok(code)\n    }\n\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headingBreak, 'whitespace')(code)\n    }\n\n    effects.enter('atxHeadingText')\n    return data(code)\n  }\n\n  function sequence(code) {\n    if (code === 35) {\n      effects.consume(code)\n      return sequence\n    }\n\n    effects.exit('atxHeadingSequence')\n    return headingBreak(code)\n  }\n\n  function data(code) {\n    if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n      effects.exit('atxHeadingText')\n      return headingBreak(code)\n    }\n\n    effects.consume(code)\n    return data\n  }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n  name: 'htmlFlow',\n  tokenize: tokenizeHtmlFlow,\n  resolveTo: resolveToHtmlFlow,\n  concrete: true\n}\nvar nextBlankConstruct = {\n  tokenize: tokenizeNextBlank,\n  partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n  var index = events.length\n\n  while (index--) {\n    if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n      break\n    }\n  }\n\n  if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n    // Add the prefix start to the HTML token.\n    events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n    events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n    events.splice(index - 2, 2)\n  }\n\n  return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  var self = this\n  var kind\n  var startTag\n  var buffer\n  var index\n  var marker\n  return start\n\n  function start(code) {\n    effects.enter('htmlFlow')\n    effects.enter('htmlFlowData')\n    effects.consume(code)\n    return open\n  }\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationStart\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n      // right now, so we do need to search for `>`, similar to declarations.\n\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = fromCharCode(code)\n      startTag = true\n      return tagName\n    }\n\n    return nok(code)\n  }\n\n  function declarationStart(code) {\n    if (code === 45) {\n      effects.consume(code)\n      kind = 2\n      return commentOpenInside\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      kind = 5\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpenInside\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      kind = 4\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuationDeclarationInside\n    }\n\n    return nok(code)\n  }\n\n  function cdataOpenInside(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length\n        ? self.interrupt\n          ? ok\n          : continuation\n        : cdataOpenInside\n    }\n\n    return nok(code)\n  }\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      buffer = fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n\n  function tagName(code) {\n    if (\n      code === null ||\n      code === 47 ||\n      code === 62 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      if (\n        code !== 47 &&\n        startTag &&\n        htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n      ) {\n        kind = 1\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n        kind = 6\n\n        if (code === 47) {\n          effects.consume(code)\n          return basicSelfClosing\n        }\n\n        return self.interrupt ? ok(code) : continuation(code)\n      }\n\n      kind = 7 // Do not support complete HTML when interrupting.\n\n      return self.interrupt\n        ? nok(code)\n        : startTag\n        ? completeAttributeNameBefore(code)\n        : completeClosingTagAfter(code)\n    }\n\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      buffer += fromCharCode(code)\n      return tagName\n    }\n\n    return nok(code)\n  }\n\n  function basicSelfClosing(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return self.interrupt ? ok : continuation\n    }\n\n    return nok(code)\n  }\n\n  function completeClosingTagAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeClosingTagAfter\n    }\n\n    return completeEnd(code)\n  }\n\n  function completeAttributeNameBefore(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return completeEnd\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameBefore\n    }\n\n    return completeEnd(code)\n  }\n\n  function completeAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return completeAttributeName\n    }\n\n    return completeAttributeNameAfter(code)\n  }\n\n  function completeAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeNameAfter\n    }\n\n    return completeAttributeNameBefore(code)\n  }\n\n  function completeAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return completeAttributeValueQuoted\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAttributeValueBefore\n    }\n\n    marker = undefined\n    return completeAttributeValueUnquoted(code)\n  }\n\n  function completeAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return completeAttributeValueQuotedAfter\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code)\n    }\n\n    effects.consume(code)\n    return completeAttributeValueQuoted\n  }\n\n  function completeAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      return completeAttributeNameAfter(code)\n    }\n\n    effects.consume(code)\n    return completeAttributeValueUnquoted\n  }\n\n  function completeAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownSpace(code)) {\n      return completeAttributeNameBefore(code)\n    }\n\n    return nok(code)\n  }\n\n  function completeEnd(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return nok(code)\n  }\n\n  function completeAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return completeAfter\n    }\n\n    return code === null || markdownLineEnding(code)\n      ? continuation(code)\n      : nok(code)\n  }\n\n  function continuation(code) {\n    if (code === 45 && kind === 2) {\n      effects.consume(code)\n      return continuationCommentInside\n    }\n\n    if (code === 60 && kind === 1) {\n      effects.consume(code)\n      return continuationRawTagOpen\n    }\n\n    if (code === 62 && kind === 4) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (code === 63 && kind === 3) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    if (code === 93 && kind === 5) {\n      effects.consume(code)\n      return continuationCharacterDataInside\n    }\n\n    if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n      return effects.check(\n        nextBlankConstruct,\n        continuationClose,\n        continuationAtLineEnding\n      )(code)\n    }\n\n    if (code === null || markdownLineEnding(code)) {\n      return continuationAtLineEnding(code)\n    }\n\n    effects.consume(code)\n    return continuation\n  }\n\n  function continuationAtLineEnding(code) {\n    effects.exit('htmlFlowData')\n    return htmlContinueStart(code)\n  }\n\n  function htmlContinueStart(code) {\n    if (code === null) {\n      return done(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      effects.enter('lineEnding')\n      effects.consume(code)\n      effects.exit('lineEnding')\n      return htmlContinueStart\n    }\n\n    effects.enter('htmlFlowData')\n    return continuation(code)\n  }\n\n  function continuationCommentInside(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code)\n      buffer = ''\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n\n  function continuationRawEndTag(code) {\n    if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    if (asciiAlpha(code) && buffer.length < 8) {\n      effects.consume(code)\n      buffer += fromCharCode(code)\n      return continuationRawEndTag\n    }\n\n    return continuation(code)\n  }\n\n  function continuationCharacterDataInside(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return continuationDeclarationInside\n    }\n\n    return continuation(code)\n  }\n\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code)\n      return continuationClose\n    }\n\n    return continuation(code)\n  }\n\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('htmlFlowData')\n      return done(code)\n    }\n\n    effects.consume(code)\n    return continuationClose\n  }\n\n  function done(code) {\n    effects.exit('htmlFlow')\n    return ok(code)\n  }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n  return start\n\n  function start(code) {\n    effects.exit('htmlFlowData')\n    effects.enter('lineEndingBlank')\n    effects.consume(code)\n    effects.exit('lineEndingBlank')\n    return effects.attempt(partialBlankLine, ok, nok)\n  }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar basics = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'section',\n  'source',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n  name: 'htmlText',\n  tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n  var self = this\n  var marker\n  var buffer\n  var index\n  var returnState\n  return start\n\n  function start(code) {\n    effects.enter('htmlText')\n    effects.enter('htmlTextData')\n    effects.consume(code)\n    return open\n  }\n\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code)\n      return declarationOpen\n    }\n\n    if (code === 47) {\n      effects.consume(code)\n      return tagCloseStart\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instruction\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    return nok(code)\n  }\n\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentOpen\n    }\n\n    if (code === 91) {\n      effects.consume(code)\n      buffer = 'CDATA['\n      index = 0\n      return cdataOpen\n    }\n\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return declaration\n    }\n\n    return nok(code)\n  }\n\n  function commentOpen(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return commentStart\n    }\n\n    return nok(code)\n  }\n\n  function commentStart(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentStartDash\n    }\n\n    return comment(code)\n  }\n\n  function commentStartDash(code) {\n    if (code === null || code === 62) {\n      return nok(code)\n    }\n\n    return comment(code)\n  }\n\n  function comment(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 45) {\n      effects.consume(code)\n      return commentClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = comment\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return comment\n  }\n\n  function commentClose(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return end\n    }\n\n    return comment(code)\n  }\n\n  function cdataOpen(code) {\n    if (code === buffer.charCodeAt(index++)) {\n      effects.consume(code)\n      return index === buffer.length ? cdata : cdataOpen\n    }\n\n    return nok(code)\n  }\n\n  function cdata(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = cdata\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return cdata\n  }\n\n  function cdataClose(code) {\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n\n  function cdataEnd(code) {\n    if (code === 62) {\n      return end(code)\n    }\n\n    if (code === 93) {\n      effects.consume(code)\n      return cdataEnd\n    }\n\n    return cdata(code)\n  }\n\n  function declaration(code) {\n    if (code === null || code === 62) {\n      return end(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = declaration\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return declaration\n  }\n\n  function instruction(code) {\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (code === 63) {\n      effects.consume(code)\n      return instructionClose\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = instruction\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return instruction\n  }\n\n  function instructionClose(code) {\n    return code === 62 ? end(code) : instruction(code)\n  }\n\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return nok(code)\n  }\n\n  function tagClose(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagClose\n    }\n\n    return tagCloseBetween(code)\n  }\n\n  function tagCloseBetween(code) {\n    if (markdownLineEnding(code)) {\n      returnState = tagCloseBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagCloseBetween\n    }\n\n    return end(code)\n  }\n\n  function tagOpen(code) {\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code)\n      return tagOpen\n    }\n\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n\n  function tagOpenBetween(code) {\n    if (code === 47) {\n      effects.consume(code)\n      return end\n    }\n\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenBetween\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenBetween\n    }\n\n    return end(code)\n  }\n\n  function tagOpenAttributeName(code) {\n    if (\n      code === 45 ||\n      code === 46 ||\n      code === 58 ||\n      code === 95 ||\n      asciiAlphanumeric(code)\n    ) {\n      effects.consume(code)\n      return tagOpenAttributeName\n    }\n\n    return tagOpenAttributeNameAfter(code)\n  }\n\n  function tagOpenAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeNameAfter\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeNameAfter\n    }\n\n    return tagOpenBetween(code)\n  }\n\n  function tagOpenAttributeValueBefore(code) {\n    if (\n      code === null ||\n      code === 60 ||\n      code === 61 ||\n      code === 62 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 34 || code === 39) {\n      effects.consume(code)\n      marker = code\n      return tagOpenAttributeValueQuoted\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueBefore\n      return atLineEnding(code)\n    }\n\n    if (markdownSpace(code)) {\n      effects.consume(code)\n      return tagOpenAttributeValueBefore\n    }\n\n    effects.consume(code)\n    marker = undefined\n    return tagOpenAttributeValueUnquoted\n  }\n\n  function tagOpenAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return tagOpenAttributeValueQuotedAfter\n    }\n\n    if (code === null) {\n      return nok(code)\n    }\n\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueQuoted\n      return atLineEnding(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueQuoted\n  }\n\n  function tagOpenAttributeValueQuotedAfter(code) {\n    if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    return nok(code)\n  }\n\n  function tagOpenAttributeValueUnquoted(code) {\n    if (\n      code === null ||\n      code === 34 ||\n      code === 39 ||\n      code === 60 ||\n      code === 61 ||\n      code === 96\n    ) {\n      return nok(code)\n    }\n\n    if (code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code)\n    }\n\n    effects.consume(code)\n    return tagOpenAttributeValueUnquoted\n  } // We can’t have blank lines in content, so no need to worry about empty\n  // tokens.\n\n  function atLineEnding(code) {\n    effects.exit('htmlTextData')\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(\n      effects,\n      afterPrefix,\n      'linePrefix',\n      self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n        ? undefined\n        : 4\n    )\n  }\n\n  function afterPrefix(code) {\n    effects.enter('htmlTextData')\n    return returnState(code)\n  }\n\n  function end(code) {\n    if (code === 62) {\n      effects.consume(code)\n      effects.exit('htmlTextData')\n      effects.exit('htmlText')\n      return ok\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n  name: 'labelStartImage',\n  tokenize: tokenizeLabelStartImage,\n  resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  var self = this\n  return start\n\n  function start(code) {\n    effects.enter('labelImage')\n    effects.enter('labelImageMarker')\n    effects.consume(code)\n    effects.exit('labelImageMarker')\n    return open\n  }\n\n  function open(code) {\n    if (code === 91) {\n      effects.enter('labelMarker')\n      effects.consume(code)\n      effects.exit('labelMarker')\n      effects.exit('labelImage')\n      return after\n    }\n\n    return nok(code)\n  }\n\n  function after(code) {\n    /* c8 ignore next */\n    return code === 94 &&\n      /* c8 ignore next */\n      '_hiddenFootnoteSupport' in self.parser.constructs\n      ? /* c8 ignore next */\n        nok(code)\n      : ok(code)\n  }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n  name: 'labelStartLink',\n  tokenize: tokenizeLabelStartLink,\n  resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  var self = this\n  return start\n\n  function start(code) {\n    effects.enter('labelLink')\n    effects.enter('labelMarker')\n    effects.consume(code)\n    effects.exit('labelMarker')\n    effects.exit('labelLink')\n    return after\n  }\n\n  function after(code) {\n    /* c8 ignore next */\n    return code === 94 &&\n      /* c8 ignore next */\n      '_hiddenFootnoteSupport' in self.parser.constructs\n      ? /* c8 ignore next */\n        nok(code)\n      : ok(code)\n  }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n  name: 'lineEnding',\n  tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n  return start\n\n  function start(code) {\n    effects.enter('lineEnding')\n    effects.consume(code)\n    effects.exit('lineEnding')\n    return factorySpace(effects, ok, 'linePrefix')\n  }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n  name: 'list',\n  tokenize: tokenizeListStart,\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n  tokenize: tokenizeListItemPrefixWhitespace,\n  partial: true\n}\nvar indentConstruct = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n  var self = this\n  var initialSize = prefixSize(self.events, 'linePrefix')\n  var size = 0\n  return start\n\n  function start(code) {\n    var kind =\n      self.containerState.type ||\n      (code === 42 || code === 43 || code === 45\n        ? 'listUnordered'\n        : 'listOrdered')\n\n    if (\n      kind === 'listUnordered'\n        ? !self.containerState.marker || code === self.containerState.marker\n        : asciiDigit(code)\n    ) {\n      if (!self.containerState.type) {\n        self.containerState.type = kind\n        effects.enter(kind, {\n          _container: true\n        })\n      }\n\n      if (kind === 'listUnordered') {\n        effects.enter('listItemPrefix')\n        return code === 42 || code === 45\n          ? effects.check(thematicBreak, nok, atMarker)(code)\n          : atMarker(code)\n      }\n\n      if (!self.interrupt || code === 49) {\n        effects.enter('listItemPrefix')\n        effects.enter('listItemValue')\n        return inside(code)\n      }\n    }\n\n    return nok(code)\n  }\n\n  function inside(code) {\n    if (asciiDigit(code) && ++size < 10) {\n      effects.consume(code)\n      return inside\n    }\n\n    if (\n      (!self.interrupt || size < 2) &&\n      (self.containerState.marker\n        ? code === self.containerState.marker\n        : code === 41 || code === 46)\n    ) {\n      effects.exit('listItemValue')\n      return atMarker(code)\n    }\n\n    return nok(code)\n  }\n\n  function atMarker(code) {\n    effects.enter('listItemMarker')\n    effects.consume(code)\n    effects.exit('listItemMarker')\n    self.containerState.marker = self.containerState.marker || code\n    return effects.check(\n      partialBlankLine, // Can’t be empty when interrupting.\n      self.interrupt ? nok : onBlank,\n      effects.attempt(\n        listItemPrefixWhitespaceConstruct,\n        endOfPrefix,\n        otherPrefix\n      )\n    )\n  }\n\n  function onBlank(code) {\n    self.containerState.initialBlankLine = true\n    initialSize++\n    return endOfPrefix(code)\n  }\n\n  function otherPrefix(code) {\n    if (markdownSpace(code)) {\n      effects.enter('listItemPrefixWhitespace')\n      effects.consume(code)\n      effects.exit('listItemPrefixWhitespace')\n      return endOfPrefix\n    }\n\n    return nok(code)\n  }\n\n  function endOfPrefix(code) {\n    self.containerState.size =\n      initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n    return ok(code)\n  }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n  var self = this\n  self.containerState._closeFlow = undefined\n  return effects.check(partialBlankLine, onBlank, notBlank)\n\n  function onBlank(code) {\n    self.containerState.furtherBlankLines =\n      self.containerState.furtherBlankLines ||\n      self.containerState.initialBlankLine // We have a blank line.\n    // Still, try to consume at most the items size.\n\n    return factorySpace(\n      effects,\n      ok,\n      'listItemIndent',\n      self.containerState.size + 1\n    )(code)\n  }\n\n  function notBlank(code) {\n    if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n      self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n      return notInCurrentItem(code)\n    }\n\n    self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n  }\n\n  function notInCurrentItem(code) {\n    // While we do continue, we signal that the flow should be closed.\n    self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n    self.interrupt = undefined\n    return factorySpace(\n      effects,\n      effects.attempt(list, ok, nok),\n      'linePrefix',\n      self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n        ? undefined\n        : 4\n    )(code)\n  }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n  var self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemIndent',\n    self.containerState.size + 1\n  )\n\n  function afterPrefix(code) {\n    return prefixSize(self.events, 'listItemIndent') ===\n      self.containerState.size\n      ? ok(code)\n      : nok(code)\n  }\n}\n\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  var self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'listItemPrefixWhitespace',\n    self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n      ? undefined\n      : 4 + 1\n  )\n\n  function afterPrefix(code) {\n    return markdownSpace(code) ||\n      !prefixSize(self.events, 'listItemPrefixWhitespace')\n      ? nok(code)\n      : ok(code)\n  }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n  name: 'setextUnderline',\n  tokenize: tokenizeSetextUnderline,\n  resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n  var index = events.length\n  var content\n  var text\n  var definition\n  var heading // Find the opening of the content.\n  // It’ll always exist: we don’t tokenize if it isn’t there.\n\n  while (index--) {\n    if (events[index][0] === 'enter') {\n      if (events[index][1].type === 'content') {\n        content = index\n        break\n      }\n\n      if (events[index][1].type === 'paragraph') {\n        text = index\n      }\n    } // Exit\n    else {\n      if (events[index][1].type === 'content') {\n        // Remove the content end (if needed we’ll add it later)\n        events.splice(index, 1)\n      }\n\n      if (!definition && events[index][1].type === 'definition') {\n        definition = index\n      }\n    }\n  }\n\n  heading = {\n    type: 'setextHeading',\n    start: shallow(events[text][1].start),\n    end: shallow(events[events.length - 1][1].end)\n  } // Change the paragraph to setext heading text.\n\n  events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n  // but we need move it.\n\n  if (definition) {\n    events.splice(text, 0, ['enter', heading, context])\n    events.splice(definition + 1, 0, ['exit', events[content][1], context])\n    events[content][1].end = shallow(events[definition][1].end)\n  } else {\n    events[content][1] = heading\n  } // Add the heading exit at the end.\n\n  events.push(['exit', heading, context])\n  return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  var self = this\n  var index = self.events.length\n  var marker\n  var paragraph // Find an opening.\n\n  while (index--) {\n    // Skip enter/exit of line ending, line prefix, and content.\n    // We can now either have a definition or a paragraph.\n    if (\n      self.events[index][1].type !== 'lineEnding' &&\n      self.events[index][1].type !== 'linePrefix' &&\n      self.events[index][1].type !== 'content'\n    ) {\n      paragraph = self.events[index][1].type === 'paragraph'\n      break\n    }\n  }\n\n  return start\n\n  function start(code) {\n    if (!self.lazy && (self.interrupt || paragraph)) {\n      effects.enter('setextHeadingLine')\n      effects.enter('setextHeadingLineSequence')\n      marker = code\n      return closingSequence(code)\n    }\n\n    return nok(code)\n  }\n\n  function closingSequence(code) {\n    if (code === marker) {\n      effects.consume(code)\n      return closingSequence\n    }\n\n    effects.exit('setextHeadingLineSequence')\n    return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n  }\n\n  function closingSequenceEnd(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('setextHeadingLine')\n      return ok(code)\n    }\n\n    return nok(code)\n  }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n  var start = true\n  var column = 1\n  var buffer = ''\n  var atCarriageReturn\n  return preprocessor\n\n  function preprocessor(value, encoding, end) {\n    var chunks = []\n    var match\n    var next\n    var startPosition\n    var endPosition\n    var code\n    value = buffer + value.toString(encoding)\n    startPosition = 0\n    buffer = ''\n\n    if (start) {\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++\n      }\n\n      start = undefined\n    }\n\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition\n      match = search.exec(value)\n      endPosition = match ? match.index : value.length\n      code = value.charCodeAt(endPosition)\n\n      if (!match) {\n        buffer = value.slice(startPosition)\n        break\n      }\n\n      if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3)\n        atCarriageReturn = undefined\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5)\n          atCarriageReturn = undefined\n        }\n\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition))\n          column += endPosition - startPosition\n        }\n\n        if (code === 0) {\n          chunks.push(65533)\n          column++\n        } else if (code === 9) {\n          next = Math.ceil(column / 4) * 4\n          chunks.push(-2)\n\n          while (column++ < next) chunks.push(-1)\n        } else if (code === 10) {\n          chunks.push(-4)\n          column = 1\n        } // Must be carriage return.\n        else {\n          atCarriageReturn = true\n          column = 1\n        }\n      }\n\n      startPosition = endPosition + 1\n    }\n\n    if (end) {\n      if (atCarriageReturn) chunks.push(-5)\n      if (buffer) chunks.push(buffer)\n      chunks.push(null)\n    }\n\n    return chunks\n  }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n  while (!subtokenize(events)) {\n    // Empty\n  }\n\n  return events\n}\n\nmodule.exports = postprocess\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n  return function (ast) {\n    visitWithParents(ast, 'list', function (listNode, parents) {\n      var depth = 0, i, n;\n      for (i = 0, n = parents.length; i < n; i++) {\n        if (parents[i].type === 'list') depth += 1;\n      }\n      for (i = 0, n = listNode.children.length; i < n; i++) {\n        var child = listNode.children[i];\n        child.index = i;\n        child.ordered = listNode.ordered;\n      }\n      listNode.depth = depth;\n    });\n    return ast;\n  };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n  var stack = []\n\n  if (typeof type === 'function') {\n    visitor = type\n    type = null\n  }\n\n  one(tree)\n\n  /* Visit a single node. */\n  function one(node) {\n    var result\n\n    if (!type || node.type === type) {\n      result = visitor(node, stack.concat())\n    }\n\n    if (node.children && result !== false) {\n      return all(node.children, node)\n    }\n\n    return result\n  }\n\n  /* Visit children in `parent`. */\n  function all(children, parent) {\n    var length = children.length\n    var index = -1\n    var child\n\n    stack.push(parent)\n\n    while (++index < length) {\n      child = children[index]\n\n      if (child && one(child) === false) {\n        return false\n      }\n    }\n\n    stack.pop()\n\n    return true\n  }\n}\n","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say <strong>foo</strong>, but not <strong class=\"very\">foo</strong>\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n  var open;\n  var currentParent;\n  visit(tree, 'html', function (node, index, parent) {\n    if (currentParent !== parent) {\n      open = [];\n      currentParent = parent;\n    }\n\n    var selfClosing = getSelfClosing(node);\n\n    if (selfClosing) {\n      parent.children.splice(index, 1, {\n        type: type,\n        tag: selfClosing,\n        position: node.position\n      });\n      return true;\n    }\n\n    var current = getSimpleTag(node, parent);\n\n    if (!current) {\n      return true;\n    }\n\n    var matching = findAndPull(open, current.tag);\n\n    if (matching) {\n      parent.children.splice(index, 0, virtual(current, matching, parent));\n    } else if (!current.opening) {\n      open.push(current);\n    }\n\n    return true;\n  }, true // Iterate in reverse\n  );\n  return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n  var i = open.length;\n\n  while (i--) {\n    if (open[i].tag === matchingTag) {\n      return open.splice(i, 1)[0];\n    }\n  }\n\n  return false;\n}\n\nfunction getSimpleTag(node, parent) {\n  var match = node.value.match(simpleTagRe);\n  return match ? {\n    tag: match[2],\n    opening: !match[1],\n    node: node\n  } : false;\n}\n\nfunction getSelfClosing(node) {\n  var match = node.value.match(selfClosingRe);\n  return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n  var fromIndex = parent.children.indexOf(fromNode.node);\n  var toIndex = parent.children.indexOf(toNode.node);\n  var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n  var children = extracted.slice(1, -1);\n  return {\n    type: type,\n    children: children,\n    tag: fromNode.tag,\n    position: {\n      start: fromNode.node.position.start,\n      end: toNode.node.position.end,\n      indent: []\n    }\n  };\n}","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n  var step\n  var is\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    visitor = test\n    test = null\n  }\n\n  is = convert(test)\n  step = reverse ? -1 : 1\n\n  factory(tree, null, [])()\n\n  function factory(node, index, parents) {\n    var value = typeof node === 'object' && node !== null ? node : {}\n    var name\n\n    if (typeof value.type === 'string') {\n      name =\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      visit.displayName =\n        'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n    }\n\n    return visit\n\n    function visit() {\n      var grandparents = parents.concat(node)\n      var result = []\n      var subresult\n      var offset\n\n      if (!test || is(node, index, parents[parents.length - 1] || null)) {\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if (node.children && result[0] !== SKIP) {\n        offset = (reverse ? node.children.length : -1) + step\n\n        while (offset > -1 && offset < node.children.length) {\n          subresult = factory(node.children[offset], offset, grandparents)()\n\n          if (subresult[0] === EXIT) {\n            return subresult\n          }\n\n          offset =\n            typeof subresult[1] === 'number' ? subresult[1] : offset + step\n        }\n      }\n\n      return result\n    }\n  }\n}\n\nfunction toResult(value) {\n  if (value !== null && typeof value === 'object' && 'length' in value) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return [value]\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n  if (test == null) {\n    return ok\n  }\n\n  if (typeof test === 'string') {\n    return typeFactory(test)\n  }\n\n  if (typeof test === 'object') {\n    return 'length' in test ? anyFactory(test) : allFactory(test)\n  }\n\n  if (typeof test === 'function') {\n    return test\n  }\n\n  throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n  return all\n\n  function all(node) {\n    var key\n\n    for (key in test) {\n      if (node[key] !== test[key]) return false\n    }\n\n    return true\n  }\n}\n\nfunction anyFactory(tests) {\n  var checks = []\n  var index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return any\n\n  function any() {\n    var index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, arguments)) {\n        return true\n      }\n    }\n\n    return false\n  }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n  return type\n\n  function type(node) {\n    return Boolean(node && node.type === test)\n  }\n}\n\n// Utility to return true.\nfunction ok() {\n  return true\n}\n","module.exports = identity\nfunction identity(d) {\n  return d\n}\n","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n  return ifNotMatch(allow, mode);\n\n  function allow(node, index, parent) {\n    return !types.includes(node.type);\n  }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n  return transform;\n\n  function transform(tree) {\n    visit(tree, filter);\n    return tree;\n  } // eslint-disable-next-line consistent-return\n\n\n  function filter(node, index, parent) {\n    if (parent && !allow(node, index, parent)) {\n      var parameters = [index, 1];\n\n      if (mode === 'unwrap' && node.children) {\n        parameters = parameters.concat(node.children);\n      }\n\n      splice.apply(parent.children, parameters);\n      return index;\n    }\n  }\n}","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n  var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n  // an object that matches the positon interface.\n\n  if (!node.position) {\n    node.position = {\n      start: {\n        line: null,\n        column: null,\n        offset: null\n      },\n      end: {\n        line: null,\n        column: null,\n        offset: null\n      }\n    };\n  }\n\n  var pos = node.position.start;\n  var key = [node.type, pos.line, pos.column, index].join('-');\n\n  if (!ReactIs.isValidElementType(renderer)) {\n    throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n  }\n\n  var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n  return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n  function resolveChildren() {\n    return node.children && node.children.map(function (childNode, i) {\n      return astToReact(childNode, options, {\n        node: node,\n        props: nodeProps\n      }, i);\n    });\n  }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n  var props = {\n    key: key\n  };\n  var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n  if (opts.sourcePos && node.position) {\n    props['data-sourcepos'] = flattenPosition(node.position);\n  }\n\n  if (opts.rawSourcePos && !isSimpleRenderer) {\n    props.sourcePosition = node.position;\n  } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n  if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n    props.index = parent.node.children.indexOf(node);\n    props.parentChildCount = parent.node.children.length;\n  }\n\n  var ref = node.identifier !== null && node.identifier !== undefined ?\n  /* istanbul ignore next - plugins could inject an undefined reference. */\n  opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n  switch (node.type) {\n    case 'root':\n      assignDefined(props, {\n        className: opts.className\n      });\n      break;\n\n    case 'text':\n      props.nodeKey = key;\n      props.children = node.value;\n      break;\n\n    case 'heading':\n      props.level = node.depth;\n      break;\n\n    case 'list':\n      props.start = node.start;\n      props.ordered = node.ordered;\n      props.spread = node.spread;\n      props.depth = node.depth;\n      break;\n\n    case 'listItem':\n      props.checked = node.checked;\n      props.spread = node.spread;\n      props.ordered = node.ordered;\n      props.index = node.index;\n      props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n        return astToReact(childNode, opts, {\n          node: node,\n          props: props\n        }, i);\n      });\n      break;\n\n    case 'definition':\n      assignDefined(props, {\n        identifier: node.identifier,\n        title: node.title,\n        url: node.url\n      });\n      break;\n\n    case 'code':\n      assignDefined(props, {\n        language: node.lang && node.lang.split(/\\s/, 1)[0]\n      });\n      break;\n\n    case 'inlineCode':\n      props.children = node.value;\n      props.inline = true;\n      break;\n\n    case 'link':\n      assignDefined(props, {\n        title: node.title || undefined,\n        target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n        href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n      });\n      break;\n\n    case 'image':\n      assignDefined(props, {\n        src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n        alt: node.alt || '',\n        title: node.title || undefined\n      });\n      break;\n\n    case 'linkReference':\n      assignDefined(props, xtend(ref, {\n        href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n      }));\n      break;\n\n    case 'imageReference':\n      assignDefined(props, {\n        src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n        alt: node.alt || '',\n        title: ref.title || undefined\n      });\n      break;\n\n    case 'table':\n    case 'tableHead':\n    case 'tableBody':\n      props.columnAlignment = node.align;\n      break;\n\n    case 'tableRow':\n      props.isHeader = parent.node.type === 'tableHead';\n      props.columnAlignment = parent.props.columnAlignment;\n      break;\n\n    case 'tableCell':\n      assignDefined(props, {\n        isHeader: parent.props.isHeader,\n        align: parent.props.columnAlignment[index]\n      });\n      break;\n\n    case 'virtualHtml':\n      props.tag = node.tag;\n      break;\n\n    case 'html':\n      // @todo find a better way than this\n      props.isBlock = node.position.start.line !== node.position.end.line;\n      props.allowDangerousHtml = opts.allowDangerousHtml;\n      props.escapeHtml = opts.escapeHtml;\n      props.skipHtml = opts.skipHtml;\n      break;\n\n    case 'parsedHtml':\n      {\n        var parsedChildren;\n\n        if (node.children) {\n          parsedChildren = node.children.map(function (child, i) {\n            return astToReact(child, opts, {\n              node: node,\n              props: props\n            }, i);\n          });\n        }\n\n        props.allowDangerousHtml = opts.allowDangerousHtml;\n        props.escapeHtml = opts.escapeHtml;\n        props.skipHtml = opts.skipHtml;\n        props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n        break;\n      }\n\n    default:\n      assignDefined(props, xtend(node, {\n        type: undefined,\n        position: undefined,\n        children: undefined\n      }));\n  }\n\n  if (!isSimpleRenderer && node.value) {\n    props.value = node.value;\n  }\n\n  if (!isSimpleRenderer) {\n    props.node = node;\n  }\n\n  return props;\n}\n\nfunction assignDefined(target, attrs) {\n  for (var key in attrs) {\n    if (typeof attrs[key] !== 'undefined') {\n      target[key] = attrs[key];\n    }\n  }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n  var el = node.element;\n\n  if (Array.isArray(el)) {\n    /* istanbul ignore next - `div` fallback for old React. */\n    var Fragment = React.Fragment || 'div';\n    return React.createElement(Fragment, null, el);\n  }\n\n  if (el.props.children || parsedChildren) {\n    var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n    return React.cloneElement(el, null, children);\n  }\n\n  return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n  return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n  /* istanbul ignore next - list items are always in a list, but best to be sure. */\n  var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n  return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n  return node.children.reduce(function (array, child) {\n    return array.concat(child.type === 'paragraph' ? child.children : [child]);\n  }, []);\n}\n\nfunction listLoose(node) {\n  var children = node.children;\n  var loose = node.spread;\n  var index = -1;\n\n  while (!loose && ++index < children.length) {\n    loose = listItemLoose(children[index]);\n  }\n\n  return loose;\n}\n\nfunction listItemLoose(node) {\n  var spread = node.spread;\n  /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n  return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n  visit(node, 'table', wrap);\n  return node;\n};\n\nfunction wrap(table) {\n  var children = table.children;\n  table.children = [{\n    type: 'tableHead',\n    align: table.align,\n    children: [children[0]],\n    position: children[0].position\n  }];\n\n  if (children.length > 1) {\n    table.children.push({\n      type: 'tableBody',\n      align: table.align,\n      children: children.slice(1),\n      position: {\n        start: children[1].position.start,\n        end: children[children.length - 1].position.end\n      }\n    });\n  }\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n  var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  visit(tree, 'definition', function (node) {\n    var identifier = node.identifier.toUpperCase();\n    if (identifier in definitions) return;\n    definitions[identifier] = {\n      href: node.url,\n      title: node.title\n    };\n  });\n  return definitions;\n};","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n  var url = (uri || '').trim();\n  var first = url.charAt(0);\n\n  if (first === '#' || first === '/') {\n    return url;\n  }\n\n  var colon = url.indexOf(':');\n\n  if (colon === -1) {\n    return url;\n  }\n\n  var length = protocols.length;\n  var index = -1;\n\n  while (++index < length) {\n    var protocol = protocols[index];\n\n    if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n      return url;\n    }\n  }\n\n  index = url.indexOf('?');\n\n  if (index !== -1 && colon > index) {\n    return url;\n  }\n\n  index = url.indexOf('#');\n\n  if (index !== -1 && colon > index) {\n    return url;\n  } // eslint-disable-next-line no-script-url\n\n\n  return 'javascript:void(0)';\n};","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n  break: 'br',\n  paragraph: 'p',\n  emphasis: 'em',\n  strong: 'strong',\n  thematicBreak: 'hr',\n  blockquote: 'blockquote',\n  delete: 'del',\n  link: 'a',\n  image: 'img',\n  linkReference: 'a',\n  imageReference: 'img',\n  table: SimpleRenderer.bind(null, 'table'),\n  tableHead: SimpleRenderer.bind(null, 'thead'),\n  tableBody: SimpleRenderer.bind(null, 'tbody'),\n  tableRow: SimpleRenderer.bind(null, 'tr'),\n  tableCell: TableCell,\n  root: Root,\n  text: TextRenderer,\n  list: List,\n  listItem: ListItem,\n  definition: NullRenderer,\n  heading: Heading,\n  inlineCode: InlineCode,\n  code: CodeBlock,\n  html: Html,\n  virtualHtml: VirtualHtml,\n  parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n  /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n  var children = props.children || '';\n  /* istanbul ignore next - `span` is a fallback for old React. */\n\n  return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n  var className = props.className;\n  var root = !className && React.Fragment || 'div';\n  return createElement(root, className ? {\n    className: className\n  } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n  return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n  var style = props.align ? {\n    textAlign: props.align\n  } : undefined;\n  var coreProps = getCoreProps(props);\n  return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n    style: style\n  }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n  return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n  var attrs = getCoreProps(props);\n\n  if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n    attrs.start = props.start.toString();\n  }\n\n  return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n  var checkbox = null;\n\n  if (props.checked !== null && props.checked !== undefined) {\n    var checked = props.checked;\n    checkbox = createElement('input', {\n      type: 'checkbox',\n      checked: checked,\n      readOnly: true\n    });\n  }\n\n  return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n  var className = props.language && \"language-\".concat(props.language);\n  var code = createElement('code', className ? {\n    className: className\n  } : null, props.value);\n  return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n  return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n  if (props.skipHtml) {\n    return null;\n  }\n\n  var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n  var tag = props.isBlock ? 'div' : 'span';\n\n  if (!dangerous) {\n    /* istanbul ignore next - `tag` is a fallback for old React. */\n    return createElement(React.Fragment || tag, null, props.value);\n  }\n\n  var nodeProps = {\n    dangerouslySetInnerHTML: {\n      __html: props.value\n    }\n  };\n  return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n  /* To do: `React.cloneElement` is slow, is it really needed? */\n  return props['data-sourcepos'] ? React.cloneElement(props.element, {\n    'data-sourcepos': props['data-sourcepos']\n  }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n  return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n  return null;\n}\n\nfunction getCoreProps(props) {\n  var source = props['data-sourcepos'];\n  /* istanbul ignore next - nodes from plugins w/o position */\n\n  return source ? {\n    'data-sourcepos': source\n  } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport Markdown from 'react-markdown';\r\nimport { emailRegex } from '../generic/helpers/regex';\r\nimport { Context } from './app';\r\nimport { Context as CaptchaContext } from './captcha';\r\nimport Conditional from './conditional';\r\nimport BoolInput from './inputs/boolInput';\r\nimport { BoolValidator } from './validators/validators';\r\n\r\nconst Review: FC = () => {\r\n\tconst context = useContext(Context);\r\n\tconst captchaContext = useContext(CaptchaContext);\r\n\r\n\tfunction edit(event: React.MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tcontext.dispatch({ type: 'update-index', index: 10 })\r\n\t}\r\n\r\n\tfunction submit(event: React.MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tcaptchaContext.submit();\r\n\t}\r\n\r\n\tfunction updateEmail(cc: boolean, _id: string) {\r\n\t\tcontext.dispatch({\r\n\t\t\ttype: 'update-cc',\r\n\t\t\tcc\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"grid\">\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t<Markdown>{context.state.conditionsText}</Markdown>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<Conditional show={emailRegex.test(context.state.personalInfo.email)}>\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tlabel={`I would like to receive a copy of this application at ${context.state.personalInfo.email}`}\r\n\t\t\t\t\t\tupdate={updateEmail}\r\n\t\t\t\t\t\tid=\"cc-email\"\r\n\t\t\t\t\t\tvalue={context.state.cc}\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={false}\r\n\t\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</Conditional>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<div className=\"full actions\">\r\n\t\t\t\t\t<button className=\"button black\" onClick={edit} style={{ marginRight: '1rem' }}>\r\n\t\t\t\t\t\tEdit\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button className=\"button default\" onClick={submit}>\r\n\t\t\t\t\t\tSubmit\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Review;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport DateInput from '../../inputs/dateInput';\r\nimport { BoolValidator, RequiredDate } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 3;\r\n\r\nconst Availability: FC = () => {\r\n\r\n\tconst appContext = React.useContext(AppContext)\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.availability, appType: appContext.state.type });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t});\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-availability',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Availability\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<DateInput\r\n\t\t\t\t\tvalue={state.availabilityDate}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tlabel=\"Date Available for Work\"\r\n\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\tid=\"availabilityDate\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tmin={new Date()}\r\n\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please indicate future date that you are available to work.\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<Conditional show={appContext.state.type === 'full'}>\r\n\t\t\t\t<div className=\"row min\">\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableMorning}\r\n\t\t\t\t\t\tlabel=\"Morning Availability\"\r\n\t\t\t\t\t\tid=\"availableMorning\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableAfternoon}\r\n\t\t\t\t\t\tlabel=\"Afternoon Availability\"\r\n\t\t\t\t\t\tid=\"availableAfternoon\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableEvening}\r\n\t\t\t\t\t\tlabel=\"Evening Availability\"\r\n\t\t\t\t\t\tid=\"availableEvening\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableLateNight}\r\n\t\t\t\t\t\tlabel=\"Late Night Availability\"\r\n\t\t\t\t\t\tid=\"availableLateNight\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableSaturday}\r\n\t\t\t\t\t\tlabel=\"Saturday Availability\"\r\n\t\t\t\t\t\tid=\"availableSaturday\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalue={state.availableSunday}\r\n\t\t\t\t\t\tlabel=\"Sunday Availability\"\r\n\t\t\t\t\t\tid=\"availableSunday\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</Conditional>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default Availability;\r\n","import * as React from 'react';\r\nimport { FC, MouseEvent } from 'react';\r\nimport { Context } from '../app';\r\nimport Conditional from '../conditional';\r\n\r\ninterface Props {\r\n\tchildren: string;\r\n\tmaxIndex: number;\r\n\tcurrentIndex: number;\r\n\tindex: number;\r\n\tvalid: boolean;\r\n}\r\n\r\nconst Legend: FC<Props> = (props: Props) => {\r\n\tconst context = React.useContext(Context);\r\n\tfunction open(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tcontext.dispatch({ type: 'update-index', index: props.index });\r\n\t}\r\n\r\n\tconst isOpen: boolean = props.currentIndex === props.index;\r\n\tconst showValid: boolean = props.valid && props.maxIndex > props.index;\r\n\r\n\tfunction Label(): JSX.Element {\r\n\t\tif (isOpen) {\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"section-label-wrap\">\r\n\t\t\t\t\t<i className=\"material-icons chevron-down\" aria-label=\"chevron down\">chevron_right</i>\r\n\t\t\t\t\t<span className=\"section-label\">{props.children}</span>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t//// can't jump ahead\r\n\t\t//if (props.maxIndex < props.index) {\r\n\t\t//\treturn (\r\n\t\t//\t\t<div className=\"section-label-wrap\">\r\n\t\t//\t\t\t<i className=\"material-icons\">chevron_right</i>\r\n\t\t//\t\t\t<span className=\"section-label\">{props.children}</span>\r\n\t\t//\t\t</div>\r\n\t\t//\t);\r\n\t\t//}\r\n\r\n\t\t// user has reached this section at least once.\r\n\t\treturn <button onClick={open} className=\"section-label-button\">\r\n\t\t\t<Conditional show={showValid && !isOpen}><i className=\"material-icons valid\">check</i></Conditional>\r\n\t\t\t<span className=\"section-label\">{props.children}</span>\r\n\t\t</button>;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<legend className={`${showValid ? 'valid' : 'no-show-valid'} ${isOpen ? 'open' : 'closed'}`}>\r\n\t\t\t<Label />\r\n\t\t</legend>\r\n\t);\r\n};\r\n\r\nexport default Legend;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport NumInput from '../../inputs/numInput';\r\nimport SelectInput from '../../inputs/selectInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, RequiredNumber, RequiredString } from '../../validators/validators';\r\nimport { Context } from './education';\r\nimport { EducationLevels, EduKeys } from './reducer';\r\n\r\ninterface Props {\r\n\tindex: number;\r\n\tautoFocus: boolean;\r\n}\r\n\r\nconst EducationRow: FC<Props> = (props: Props) => {\r\n\tconst context = useContext(Context);\r\n\tconst item = context.state.education[props.index];\r\n\r\n\tfunction update(value: string | number | boolean, id: string): void {\r\n\t\tconst key: EduKeys = id.split('-')[0] as EduKeys;\r\n\t\tcontext.dispatch({\r\n\t\t\ttype: 'update-row',\r\n\t\t\tindex: props.index,\r\n\t\t\tvalue,\r\n\t\t\tkey\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tfunction removeRow() {\r\n\t\tcontext.dispatch({ type: 'remove-row', index: props.index });\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"row repeating-row\">\r\n\t\t\t<div className=\"full\">\r\n\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t<Conditional show={props.index > 0}>\r\n\t\t\t\t\t\t<div className=\"row remove\">\r\n\t\t\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t\t\t<button aria-label=\"remove\" className=\"remove-button button black outline\" onClick={removeRow}>Remove</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<SelectInput\r\n\t\t\t\t\t\t\tlabel=\"Level\"\r\n\t\t\t\t\t\t\tvalue={item.level}\r\n\t\t\t\t\t\t\tid={`level-${item.uuid}`}\r\n\t\t\t\t\t\t\tvalues={EducationLevels}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the level of education that you acquired\"\r\n\t\t\t\t\t\t\tautoFocus={props.autoFocus}\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Name of School\"\r\n\t\t\t\t\t\t\tvalue={item.nameOfSchool}\r\n\t\t\t\t\t\t\tid={`nameOfSchool-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the name of the school that you attended\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Location (City/State)\"\r\n\t\t\t\t\t\t\tvalue={item.location}\r\n\t\t\t\t\t\t\tid={`location-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the location of the school that you attended\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<NumInput\r\n\t\t\t\t\t\t\tlabel=\"Years Completed\"\r\n\t\t\t\t\t\t\tvalue={item.yearsCompleted}\r\n\t\t\t\t\t\t\tid={`yearsCompleted-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredNumber}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the number of years of study that you completed\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<Conditional show={item.level && item.level.length > 0 && item.level !== 'High School/GED'}>\r\n\t\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\t\tlabel=\"Major Study\"\r\n\t\t\t\t\t\t\t\tvalue={item.major}\r\n\t\t\t\t\t\t\t\tid={`major-${item.uuid}`}\r\n\t\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\t\terrorMessage=\"Please indicate your major of study\"\r\n\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<BoolInput\r\n\t\t\t\t\t\t\tlabel=\"Graduated\"\r\n\t\t\t\t\t\t\tvalue={item.graduated}\r\n\t\t\t\t\t\t\tid={`graduated-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default EducationRow;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, RequiredString } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 7;\r\n\r\nconst Eligibility: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.eligibility });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-eligibility',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Eligibility\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tvalue={state.license}\r\n\t\t\t\t\tlabel=\"I have a valid driver's license\"\r\n\t\t\t\t\tid=\"license\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<Conditional show={state.license}>\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\tvalue={state.stateOfIssue}\r\n\t\t\t\t\t\tlabel=\"State of Issue\"\r\n\t\t\t\t\t\tid=\"stateOfIssue\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tlist=\"states-list\"\r\n\t\t\t\t\t\trequired\r\n\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"Please indicate the state where the license was issued\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</Conditional>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tvalue={state.qualified}\r\n\t\t\t\t\tlabel=\"I am legally qualified to work in the United States\"\r\n\t\t\t\t\tid=\"qualified\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"full\" validator={BoolValidator}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default Eligibility;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { RequiredPhone, RequiredString } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 4;\r\n\r\nconst EmergencyContact: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\r\n\t// don't show for abbreviated apps.\r\n\tif (appContext.state.type === 'abbreviated') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.emergencyContact });\r\n\r\n\tfunction update(value: string, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-emergency-contact',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Emergency Contact\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tlabel=\"Name\"\r\n\t\t\t\t\tvalue={state.name}\r\n\t\t\t\t\tid=\"name\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide the name of your emergency contact\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tlabel=\"Relationship\"\r\n\t\t\t\t\tvalue={state.relationship}\r\n\t\t\t\t\tid=\"relationship\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please indicate the emergency contact's relationship to you\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tlabel=\"Phone\"\r\n\t\t\t\t\tvalue={state.phone}\r\n\t\t\t\t\tid=\"phone\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tvalidator={RequiredPhone}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\ttype=\"phone\"\r\n\t\t\t\t\terrorMessage=\"Please provide a phone number (including area code) for your emergency contact\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default EmergencyContact;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, Fragment, KeyboardEvent } from 'react';\r\n\r\n\r\ninterface TextProps {\r\n\tvalue: string;\r\n\tvalues: string[];\r\n\tsize: 'full' | 'half' | 'double' | 'single';\r\n\tid: string;\r\n\tupdate: (value: string, id: string) => void;\r\n\tname: string;\r\n}\r\n\r\n\r\nconst RadioInput: FC<TextProps> = (props: TextProps) => {\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLInputElement>): void {\r\n\t\tprops.update(event.target.value, props.id);\r\n\t}\r\n\r\n\tfunction labelKeyPress(event: KeyboardEvent<HTMLLabelElement>): void {\r\n\t\tif (event.key === ' ' || event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tevent.currentTarget.click();\r\n\t\t\tevent.currentTarget.focus();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction RadioButton(radioProps: { name: string, label: string, value: string, size: string }): JSX.Element {\r\n\t\tconst id: string = `${radioProps.name}-${radioProps.value}`;\r\n\t\treturn (\r\n\t\t\t<div className={`radio ${radioProps.size}`}>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"radio\"\r\n\t\t\t\t\tname={radioProps.name}\r\n\t\t\t\t\tid={id}\r\n\t\t\t\t\tonChange={onChange}\r\n\t\t\t\t\tvalue={radioProps.value}\r\n\t\t\t\t\tchecked={radioProps.value === props.value}\r\n\t\t\t\t\ttabIndex={-1}\r\n\t\t\t\t/>\r\n\t\t\t\t<label htmlFor={id} tabIndex={0} onKeyPress={labelKeyPress}>\r\n\t\t\t\t\t<i className=\"material-icons\" />\r\n\t\t\t\t\t{radioProps.label}\r\n\t\t\t\t</label>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Fragment>\r\n\t\t\t{props.values.map(v => <RadioButton\r\n\t\t\t\tkey={v}\r\n\t\t\t\tvalue={v}\r\n\t\t\t\tname={props.name}\r\n\t\t\t\tlabel={v}\r\n\t\t\t\tsize={props.size}\r\n\t\t\t/>)}\r\n\t\t</Fragment>\r\n\t);\r\n};\r\n\r\nexport default RadioInput;\r\n","import * as React from 'react';\r\nimport { FC, MouseEvent, useContext } from 'react';\r\nimport Conditional from '../../conditional';\r\nimport DateInput from '../../inputs/dateInput';\r\nimport TextAreaInput from '../../inputs/textAreaInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { RequiredDate, RequiredPhone, RequiredState, RequiredString, RequiredZip } from '../../validators/validators';\r\nimport { Context } from './employmentRecord';\r\nimport { EmpKeys } from './reducer';\r\n\r\ninterface Props {\r\n\tindex: number;\r\n\tautoFocus: boolean;\r\n}\r\n\r\nconst employmentRecordRow: FC<Props> = (props: Props) => {\r\n\tconst context = useContext(Context);\r\n\tconst item = context.state.employment[props.index];\r\n\r\n\tfunction update(value: string | number | boolean, id: string): void {\r\n\t\tconst key: EmpKeys = id.split('-')[0] as EmpKeys;\r\n\t\tcontext.dispatch({\r\n\t\t\ttype: 'update-row',\r\n\t\t\tindex: props.index,\r\n\t\t\tvalue,\r\n\t\t\tkey\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tfunction removeRow(event: MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tcontext.dispatch({ type: 'remove-row', index: props.index });\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"row repeating-row\">\r\n\t\t\t<div className=\"full\">\r\n\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t<Conditional show={props.index > 0}>\r\n\t\t\t\t\t\t<div className=\"row remove\">\r\n\t\t\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t\t\t<button className=\"remove-button button black outline\" onClick={removeRow}>Remove Employment</button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Name of Employer\"\r\n\t\t\t\t\t\t\tvalue={item.employer}\r\n\t\t\t\t\t\t\tid={`employer-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the name of the employer\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\tautoFocus={props.autoFocus}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Phone\"\r\n\t\t\t\t\t\t\tvalue={item.phone}\r\n\t\t\t\t\t\t\tid={`phone-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredPhone}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide a phone number (including area code) for the employer\"\r\n\t\t\t\t\t\t\trequired type=\"phone\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Address\"\r\n\t\t\t\t\t\t\tvalue={item.address}\r\n\t\t\t\t\t\t\tid={`address-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update} size=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the employer's address\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"City\"\r\n\t\t\t\t\t\t\tvalue={item.city}\r\n\t\t\t\t\t\t\tid={`city-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the city where the employer is located\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"State\"\r\n\t\t\t\t\t\t\tvalue={item.state}\r\n\t\t\t\t\t\t\tid={`state-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredState}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the state where the employer is located\"\r\n\t\t\t\t\t\t\trequired />\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Zip\"\r\n\t\t\t\t\t\t\tvalue={item.zip}\r\n\t\t\t\t\t\t\tid={`zip-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredZip}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the zip code where the employer is located\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Name of Last Supervisor\"\r\n\t\t\t\t\t\t\tvalue={item.supervisor}\r\n\t\t\t\t\t\t\tid={`supervisor-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the name of your last supervisor\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Last Position Title\"\r\n\t\t\t\t\t\t\tvalue={item.title}\r\n\t\t\t\t\t\t\tid={`title-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the last position title that you held\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<DateInput\r\n\t\t\t\t\t\t\tlabel=\"From\"\r\n\t\t\t\t\t\t\ttype=\"date\"\r\n\t\t\t\t\t\t\tvalue={item.from}\r\n\t\t\t\t\t\t\tid={`from-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tmax={item.to.length > 0 ? item.to : null}\r\n\t\t\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the date you started at this employer\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<DateInput\r\n\t\t\t\t\t\t\tlabel=\"To\"\r\n\t\t\t\t\t\t\ttype=\"month\"\r\n\t\t\t\t\t\t\tvalue={item.to}\r\n\t\t\t\t\t\t\tid={`to-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tmin={item.from.length > 0 ? item.from : null}\r\n\t\t\t\t\t\t\tmax={new Date()}\r\n\t\t\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the date you left this employer. If still employed, indicate the current month.\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextAreaInput\r\n\t\t\t\t\t\t\tlabel=\"Reason for Leaving (be specific)\"\r\n\t\t\t\t\t\t\tvalue={item.reason}\r\n\t\t\t\t\t\t\tid={`reason-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide your reason for leaving this employer. If still employed, indicate so.\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextAreaInput\r\n\t\t\t\t\t\t\tlabel=\"List the jobs you held, duties performed, skills used or learned, advancements or promotions while you worked at this company.\"\r\n\t\t\t\t\t\t\tvalue={item.duties}\r\n\t\t\t\t\t\t\tid={`duties-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the requested information\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default employmentRecordRow;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC } from 'react';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps, Validity } from './genericInput';\r\n\r\n\r\ninterface TextProps extends InputProps {\r\n\tvalue: string;\r\n\tupdate: (value: string, id: string) => void;\r\n\ttype?: 'text' | 'phone';\r\n\trequired?: boolean;\r\n\trows?: number;\r\n\tcolumns?: number;\r\n\tvalidator: Validator<string>;\r\n\terrorMessage: string;\r\n}\r\n\r\nconst TextAreaInput: FC<TextProps> = (props: TextProps) => {\r\n\tconst [blur, setBlur] = React.useState(props.immediateValidate);\r\n\r\n\tfunction onChange(event: ChangeEvent<HTMLTextAreaElement>): void {\r\n\t\tprops.update(event.target.value, props.id);\r\n\t}\r\n\r\n\tfunction onBlur(): void {\r\n\t\tsetBlur(true);\r\n\t}\r\n\r\n\tlet inputClass: Validity = 'default';\r\n\tif (blur) {\r\n\t\tinputClass = props.validator(props.value) ? 'valid' : 'invalid';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Input {...props} valid={inputClass}>\r\n\t\t\t<textarea\r\n\t\t\t\tid={props.id}\r\n\t\t\t\tonChange={onChange}\r\n\t\t\t\tonBlur={onBlur}\r\n\t\t\t\tvalue={props.value}\r\n\t\t\t\trequired={props.required || false}\r\n\t\t\t\tautoFocus={props.autoFocus || false}\r\n\t\t\t\trows={props.rows | 3}\r\n\t\t\t\tcols={props.columns}\r\n\t\t\t\taria-invalid={inputClass === 'invalid'}\r\n\t\t\t/>\r\n\t\t</Input>\r\n\t);\r\n};\r\n\r\nexport default TextAreaInput;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport Markdown from 'react-markdown';\r\nimport { Context as AppContext } from '../../app';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport SelectInput from '../../inputs/selectInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, RequiredString } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { Genders, Races, reducer, ReferralSources, StateKeys } from './reducer';\r\nimport { AppType } from '../../reducer';\r\nconst INDEX = 10;\r\n\r\nconst EqualOpportunity: FC = () => {\r\n\tconst appContext = React.useContext(AppContext);\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.equalOpportunity });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\r\n\t// iff this is the last section\r\n\t// don't let them submit if there are other invalid sections.\r\n\tconst parentValid = appContext.state.type === 'abbreviated' ? true : appContext.state.canSubmit;\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid && parentValid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-equal-opportunity',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Equal Employment Opportunity\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid && parentValid}\r\n\t\t>\r\n\t\t\t<div className=\"row min\">\r\n\t\t\t\t<div className=\"full explainer-text\">\r\n\t\t\t\t\t<Markdown>{appContext.state.eeoText}</Markdown>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row min\">\r\n\t\t\t\t<SelectInput\r\n\t\t\t\t\tlabel=\"How did you hear about the job?\"\r\n\t\t\t\t\tid=\"referralSource\"\r\n\t\t\t\t\tvalue={state.referralSource}\r\n\t\t\t\t\tvalues={ReferralSources}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please indicate how you heard about the job\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t\t<Conditional show={state.referralSource === 'MTD Employee' || state.referralSource === 'Other'}>\r\n\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\tlabel={state.referralSource === 'MTD Employee' ? 'MTD Employee Name' : 'Please Specify Referral Source'}\r\n\t\t\t\t\t\tid=\"extra\"\r\n\t\t\t\t\t\tvalue={state.extra}\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"Please specify your referral source.\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Conditional>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row min\">\r\n\t\t\t\t<SelectInput\r\n\t\t\t\t\tlabel=\"Gender\"\r\n\t\t\t\t\tid=\"gender\"\r\n\t\t\t\t\tvalue={state.gender}\r\n\t\t\t\t\tvalues={Genders}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please indicate your gender\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row min\">\r\n\t\t\t\t<SelectInput\r\n\t\t\t\t\tlabel=\"Race\"\r\n\t\t\t\t\tid=\"race\"\r\n\t\t\t\t\tvalue={state.race}\r\n\t\t\t\t\tvalues={Races}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\terrorMessage=\"Please indicate your race\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row min\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tlabel=\"I am a military veteran\"\r\n\t\t\t\t\tid=\"veteran\"\r\n\t\t\t\t\tvalue={state.veteran}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default EqualOpportunity;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, RequiredString } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 2;\r\n\r\nconst Family: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.family });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-family',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Family\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tvalue={state.family}\r\n\t\t\t\t\tlabel=\"A member of my immediate family is employed by MTD\"\r\n\t\t\t\t\tid=\"family\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<div className=\"full explainer-text\">\r\n\t\t\t\t\t<p>For the purpose of this question, <em>immediate family</em> includes: the applicant's spouse, sibling, parent, child, step-child, mother-in-law, father-in-law, sister-in-law, brother-in-law, daughter-in-law, son-in-law, or any other member of the applicant's household.</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t{state.family ?\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\tvalue={state.who}\r\n\t\t\t\t\t\tlabel=\"Family Member Name\"\r\n\t\t\t\t\t\tid=\"who\" size=\"single\"\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\terrorMessage=\"Please provide the name of any family members working at MTD\"\r\n\t\t\t\t\t\trequired\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div> :\r\n\t\t\t\tnull\r\n\t\t\t}\r\n\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default Family;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, NotRequiredString, RequiredEmail, RequiredPhone, RequiredState, RequiredString, RequiredZip } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 0;\r\n\r\nconst PersonalInformation: FC = () => {\r\n\tconst appContext = React.useContext(AppContext);\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.personalInfo });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t});\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-personal-info',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={0}\r\n\t\t\tname=\"Personal Information\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.first}\r\n\t\t\t\t\tlabel=\"First Name\"\r\n\t\t\t\t\tid=\"first\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide your first name\"\r\n\t\t\t\t\tautoFocus\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.last}\r\n\t\t\t\t\tlabel=\"Last Name\"\r\n\t\t\t\t\tid=\"last\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide your last name\"\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.middle}\r\n\t\t\t\t\tlabel=\"Middle Name\"\r\n\t\t\t\t\tid=\"middle\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={NotRequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.address1}\r\n\t\t\t\t\tlabel=\"Address Line 1\"\r\n\t\t\t\t\tid=\"address1\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide your address\"\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.address2}\r\n\t\t\t\t\tlabel=\"Address Line 2\"\r\n\t\t\t\t\tid=\"address2\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={NotRequiredString}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.city}\r\n\t\t\t\t\tlabel=\"City\"\r\n\t\t\t\t\tid=\"city\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide city where you live\"\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.county}\r\n\t\t\t\t\tlabel=\"County\"\r\n\t\t\t\t\tid=\"county\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide the county where you live\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.state}\r\n\t\t\t\t\tlabel=\"State\"\r\n\t\t\t\t\tid=\"state\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredState}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide the state where you live\"\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.zip}\r\n\t\t\t\t\tlabel=\"Zip\"\r\n\t\t\t\t\tid=\"zip\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredZip}\r\n\t\t\t\t\trequired\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide a valid zip code\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.phone}\r\n\t\t\t\t\tlabel=\"Phone\"\r\n\t\t\t\t\tid=\"phone\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredPhone}\r\n\t\t\t\t\ttype=\"phone\"\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide a valid phone number\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t\t<TextInput\r\n\t\t\t\t\tvalue={state.email}\r\n\t\t\t\t\tlabel=\"Email\"\r\n\t\t\t\t\tid=\"email\"\r\n\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalidator={RequiredEmail}\r\n\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"Please provide a valid email address\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tvalue={state.over21}\r\n\t\t\t\t\tlabel=\"I am over 21 years of age\"\r\n\t\t\t\t\tid=\"over21\"\r\n\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default PersonalInformation;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { RequiredEmail, RequiredPhone, RequiredString } from '../../validators/validators';\r\nimport { RefKeys } from './reducer';\r\nimport { Context } from './references';\r\n\r\n\r\ninterface Props {\r\n\tindex: number;\r\n\tautoFocus: boolean;\r\n}\r\n\r\nconst ReferenceRow: FC<Props> = (props: Props) => {\r\n\tconst context = useContext(Context);\r\n\tconst item = context.state.references[props.index];\r\n\r\n\tfunction update(value: string | boolean, id: string): void {\r\n\t\tconst key: RefKeys = id.split('-')[0] as RefKeys;\r\n\t\tcontext.dispatch({\r\n\t\t\ttype: 'update-row',\r\n\t\t\tindex: props.index,\r\n\t\t\tvalue,\r\n\t\t\tkey\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"row repeating-row\">\r\n\t\t\t<div className=\"full\">\r\n\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Name\"\r\n\t\t\t\t\t\t\tvalue={item.name}\r\n\t\t\t\t\t\t\tid={`name-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the name of a reference\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\tautoFocus={props.autoFocus}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Company\"\r\n\t\t\t\t\t\t\tvalue={item.company}\r\n\t\t\t\t\t\t\tid={`company-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the name of the employer where this reference works\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Position\"\r\n\t\t\t\t\t\t\tvalue={item.position}\r\n\t\t\t\t\t\t\tid={`position-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the position that this reference holds\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Email\"\r\n\t\t\t\t\t\t\tvalue={item.email}\r\n\t\t\t\t\t\t\tid={`email-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update} size=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredEmail}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide a valid email address for this reference\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Phone\"\r\n\t\t\t\t\t\t\tvalue={item.telephone}\r\n\t\t\t\t\t\t\tid={`telephone-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredPhone}\r\n\t\t\t\t\t\t\timmediateValidate={context.immediateValidate}\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\ttype=\"phone\"\r\n\t\t\t\t\t\t\terrorMessage=\"please provide a phone number (including area code) for this reference\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default ReferenceRow;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport FileInput from '../../inputs/fileInput';\r\nimport { FileValidator } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\n\r\nconst INDEX = 11;\r\n\r\nconst Resume: FC = () => {\r\n\r\n\tconst appContext = React.useContext(AppContext);\r\n\r\n\t// don't show for full apps.\r\n\tif (appContext.state.type === 'full') {\r\n\t\treturn null;\r\n\t}\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.resume });\r\n\r\n\t// iff this is the last section\r\n\t// don't let them submit if there are other invalid sections.\r\n\tconst parentValid = appContext.state.canSubmit;\r\n\r\n\tfunction update(value: File | null, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t});\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid && parentValid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-resume',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"Resume/Cover Letter\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid && parentValid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<FileInput\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tlabel=\"Resume\"\r\n\t\t\t\t\tid=\"resume\"\r\n\t\t\t\t\tsize=\"half\"\r\n\t\t\t\t\tvalue={state.resume}\r\n\t\t\t\t\tmaxSize={8}\r\n\t\t\t\t\tvalidator={FileValidator}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\trequired\r\n\t\t\t\t/>\r\n\t\t\t\t<FileInput\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tlabel=\"Cover Letter\"\r\n\t\t\t\t\tid=\"coverLetter\"\r\n\t\t\t\t\tmaxSize={8}\r\n\t\t\t\t\tsize=\"half\"\r\n\t\t\t\t\tvalidator={FileValidator}\r\n\t\t\t\t\tvalue={state.coverLetter}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default Resume;\r\n","import * as React from 'react';\r\nimport { ChangeEvent, FC, Fragment, MouseEvent, ReactElement, useLayoutEffect, useRef, useState } from 'react';\r\nimport Conditional from '../conditional';\r\nimport { Validator } from '../validators/validators';\r\nimport Input, { InputProps } from './genericInput';\r\n\r\nconst MB = 1048576;\r\nconst KB = 1024;\r\n\r\ntype CssState = 'on' | 'good' | 'bad' | 'neutral';\r\n\r\nfunction formatBytes(bytes: number): string {\r\n\tif (bytes > MB) {// 1 MB\r\n\t\treturn `${(bytes / MB).toFixed(1)}MB`;\r\n\t}\r\n\treturn `${(bytes / KB).toFixed(1)}KB`;\r\n}\r\n\r\ninterface FileProps extends Omit<InputProps, \"errorMessage\"> {\r\n\tvalue: File | null;\r\n\tupdate: (value: File | null, id: string) => void;\r\n\trequired?: boolean;\r\n\tautofocus?: boolean;\r\n\tmaxSize: number;\r\n\tvalidator: Validator<File>;\r\n\r\n}\r\n\r\nconst FileInput: FC<FileProps> = (props: FileProps): JSX.Element => {\r\n\r\n\tconst dragElement = useRef<HTMLDivElement>(null);\r\n\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\tconst [cssState, setCssState] = useState<CssState>('neutral');\r\n\tconst [showMimeType, setShowMimeType] = useState(false);\r\n\tconst [showSize, setShowSize] = useState(false);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (dragElement && dragElement.current) {\r\n\t\t\tdragElement.current.addEventListener('dragenter', dragEventHandler, false);\r\n\t\t\tdragElement.current.addEventListener('dragleave', dragEventHandler, false);\r\n\t\t\tdragElement.current.addEventListener('dragover', dragEventHandler, false);\r\n\t\t\tdragElement.current.addEventListener('drop', dragEventHandler, false);\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\tif (dragElement && dragElement.current) {\r\n\t\t\t\tdragElement.current.removeEventListener('dragenter', dragEventHandler);\r\n\t\t\t\tdragElement.current.removeEventListener('dragleave', dragEventHandler);\r\n\t\t\t\tdragElement.current.removeEventListener('dragover', dragEventHandler);\r\n\t\t\t\tdragElement.current.removeEventListener('drop', dragEventHandler);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [dragEventHandler]);\r\n\r\n\tfunction MetaData(): ReactElement {\r\n\t\tif (props.value) {\r\n\t\t\treturn <p className=\"meta\">\r\n\t\t\t\t{props.value.name} ({formatBytes(props.value.size)})\r\n\t\t\t</p>\r\n\t\t}\r\n\t\tif (showMimeType) {\r\n\t\t\treturn <p className=\"meta meta-warning\">File must be a PDF</p>;\r\n\t\t}\r\n\t\tif (showSize) {\r\n\t\t\treturn <p className=\"meta meta-warning\">File must be less than 8 MB</p>\r\n\t\t}\r\n\t\treturn <p className=\"meta\">Please upload a PDF</p>\r\n\t}\r\n\r\n\tfunction updateValid(file: File): boolean | null {\r\n\t\tif (file) {\r\n\t\t\t// validate file\r\n\t\t\tconst sizeOk = file.size <= (MB * props.maxSize);\r\n\t\t\tconst mimeOk = file.type === 'application/pdf';\r\n\t\t\tconst ok = sizeOk && mimeOk;\r\n\r\n\t\t\t// set properties\r\n\t\t\tsetCssState(ok ? 'good' : 'bad');\r\n\t\t\tsetShowSize(!sizeOk);\r\n\t\t\tsetShowMimeType(!mimeOk);\r\n\r\n\t\t\treturn ok;\r\n\t\t} else {\r\n\t\t\tsetShowMimeType(false);\r\n\t\t\tsetShowSize(false);\r\n\t\t\tsetCssState('neutral');\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction update(files: FileList | undefined | null) {\r\n\t\tif (files && files.length > 0) {\r\n\t\t\tconst file: File = files[0];\r\n\t\t\tconst ok = updateValid(file);\r\n\t\t\tprops.update(ok ? file : null, props.id);\r\n\t\t} else {\r\n\t\t\tupdateValid(null);\r\n\t\t\tprops.update(null, props.id);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction change(event: ChangeEvent<HTMLInputElement>): void {\r\n\t\tupdate(event.target.files);\r\n\t}\r\n\r\n\tfunction selectFile(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tif (inputRef.current) {\r\n\t\t\tinputRef.current.click();\r\n\t\t}\r\n\t\tevent.currentTarget.blur();\r\n\t}\r\n\r\n\tfunction clearFile(event: MouseEvent<HTMLButtonElement>): void {\r\n\t\tevent.preventDefault();\r\n\t\tprops.update(null, props.id);\r\n\t\tsetCssState('neutral');\r\n\t\tsetShowSize(false);\r\n\t\tsetShowSize(false);\r\n\t\tevent.currentTarget.blur();\r\n\t}\r\n\r\n\tfunction dragEventHandler(event: DragEvent): void {\r\n\t\tevent.preventDefault();\r\n\t\tswitch (event.type) {\r\n\t\t\tcase 'dragenter':\r\n\t\t\t\tsetCssState('on');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dragleave':\r\n\t\t\t\tsetCssState('neutral');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dragover':\r\n\t\t\t\tsetCssState('on');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'drop':\r\n\t\t\t\tupdate(event.dataTransfer.files);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn('this should never be reached', event);\r\n\t\t}\r\n\t}\r\n\r\n\tif (props.immediateValidate) {\r\n\t\tupdateValid(props.value);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className={`file-input ${props.size}`} ref={dragElement}>\r\n\t\t\t<Input {...props} valid='default' errorMessage=\"\">\r\n\t\t\t\t<Fragment>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tid={props.id}\r\n\t\t\t\t\t\tonChange={change}\r\n\t\t\t\t\t\trequired={props.required || false}\r\n\t\t\t\t\t\tautoFocus={props.autofocus || false}\r\n\t\t\t\t\t\ttype=\"file\"\r\n\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\taria-invalid={cssState === 'bad'}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<div className={`drag-area ${cssState}`}>\r\n\t\t\t\t\t\t<p className=\"instructions\">\r\n\t\t\t\t\t\t\tDrag and drop a file\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<Conditional\r\n\t\t\t\t\t\t\tshow={!props.value}\r\n\t\t\t\t\t\t\tfalseElement={\r\n\t\t\t\t\t\t\t\t<button className=\"button black outline\" onClick={clearFile}>Clear</button>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<button className=\"button\" onClick={selectFile}>Select File</button>\r\n\t\t\t\t\t\t</Conditional>\r\n\t\t\t\t\t\t<div aria-live=\"assertive\" aria-relevant=\"all\">\r\n\t\t\t\t\t\t\t<MetaData />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Fragment>\r\n\t\t\t</Input>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default FileInput;\r\n","import * as React from 'react';\r\nimport { FC, MouseEvent, useContext } from 'react';\r\nimport NumInput from '../../inputs/numInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { RequiredNumber, RequiredString } from '../../validators/validators';\r\nimport { EduKeys } from './reducer';\r\nimport { Context } from './skills';\r\n\r\ninterface Props {\r\n\tindex: number;\r\n\timmediateValidate: boolean;\r\n\tautoFocus: boolean;\r\n}\r\n\r\nconst SkillRow: FC<Props> = (props: Props) => {\r\n\tconst context = useContext(Context);\r\n\tconst item = context.state.skills[props.index];\r\n\r\n\tfunction update(value: string | number | boolean, id: string): void {\r\n\t\tconst key: EduKeys = id.split('-')[0] as EduKeys;\r\n\t\tcontext.dispatch({\r\n\t\t\ttype: 'update-row',\r\n\t\t\tindex: props.index,\r\n\t\t\tvalue,\r\n\t\t\tkey\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tfunction removeRow(event: MouseEvent<HTMLButtonElement>) {\r\n\t\tevent.preventDefault();\r\n\t\tcontext.dispatch({ type: 'remove-row', index: props.index });\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className=\"row repeating-row\">\r\n\t\t\t<div className=\"full\">\r\n\t\t\t\t<div className=\"grid\">\r\n\t\t\t\t\t<div className=\"row remove\">\r\n\t\t\t\t\t\t<div className=\"full\">\r\n\t\t\t\t\t\t\t<button className=\"remove-button button black outline\" onClick={removeRow}>\r\n\t\t\t\t\t\t\t\tRemove Skill\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Skill\"\r\n\t\t\t\t\t\t\tvalue={item.skill}\r\n\t\t\t\t\t\t\tid={`skill-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={props.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please provide the name of the skill\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\tautoFocus={props.autoFocus}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\tlabel=\"Length and Kind of Training\"\r\n\t\t\t\t\t\t\tvalue={item.training}\r\n\t\t\t\t\t\t\tid={`training-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\t\timmediateValidate={props.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the length and kind of training that you have received\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<NumInput\r\n\t\t\t\t\t\t\tlabel=\"Years of Experience\"\r\n\t\t\t\t\t\t\tvalue={item.experience}\r\n\t\t\t\t\t\t\tid={`experience-${item.uuid}`}\r\n\t\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\t\tmin={0}\r\n\t\t\t\t\t\t\tvalidator={RequiredNumber}\r\n\t\t\t\t\t\t\timmediateValidate={props.immediateValidate}\r\n\t\t\t\t\t\t\terrorMessage=\"Please indicate the number of years experience you have at this skill\"\r\n\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default SkillRow;\r\n","import * as React from 'react';\r\nimport { FC, useReducer } from 'react';\r\nimport { Context as AppContext } from '../../app';\r\nimport Conditional from '../../conditional';\r\nimport BoolInput from '../../inputs/boolInput';\r\nimport DateInput from '../../inputs/dateInput';\r\nimport TextInput from '../../inputs/textInput';\r\nimport { BoolValidator, RequiredDate, RequiredString } from '../../validators/validators';\r\nimport Section from '../section';\r\nimport { reducer, StateKeys } from './reducer';\r\n\r\nconst INDEX = 1;\r\n\r\nconst WorkHistory: FC = () => {\r\n\tconst appContext = React.useContext(AppContext)\r\n\tconst [state, dispatch] = useReducer(reducer, { ...appContext.state.workHistory });\r\n\r\n\tfunction update(value: string | boolean, key: StateKeys): void {\r\n\t\tdispatch({\r\n\t\t\ttype: 'set-value',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t});\r\n\t}\r\n\r\n\tfunction submit() {\r\n\t\tif (state.valid) {\r\n\t\t\tappContext.dispatch({\r\n\t\t\t\ttype: 'update-work-history',\r\n\t\t\t\tdata: state\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst immediateValidate = appContext.state.maxIndex > INDEX;\r\n\r\n\treturn (\r\n\t\t<Section\r\n\t\t\tcurrentIndex={appContext.state.index}\r\n\t\t\tmaxIndex={appContext.state.maxIndex}\r\n\t\t\tindex={INDEX}\r\n\t\t\tname=\"MTD Work History\"\r\n\t\t\tsubmit={submit}\r\n\t\t\tvalid={state.valid}\r\n\t\t>\r\n\t\t\t<div className=\"row\">\r\n\t\t\t\t<BoolInput\r\n\t\t\t\t\tlabel=\"I have worked at MTD in the Past\"\r\n\t\t\t\t\tid=\"pastWork\"\r\n\t\t\t\t\tsize=\"full\"\r\n\t\t\t\t\tupdate={update}\r\n\t\t\t\t\tvalue={state.pastWork}\r\n\t\t\t\t\tvalidator={BoolValidator}\r\n\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\terrorMessage=\"\"\r\n\t\t\t\t\tautoFocus={true}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<Conditional show={state.pastWork}>\r\n\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t<DateInput\r\n\t\t\t\t\t\tid=\"mtdStartDate\"\r\n\t\t\t\t\t\tlabel=\"Start Date of Employment\"\r\n\t\t\t\t\t\ttype=\"month\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tmax={state.mtdEndDate.length > 0 ? state.mtdEndDate : null}\r\n\t\t\t\t\t\tvalue={state.mtdStartDate}\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"Please indicate the date that you started at MTD\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<DateInput\r\n\t\t\t\t\t\tid=\"mtdEndDate\"\r\n\t\t\t\t\t\tlabel=\"End Date of Employment\"\r\n\t\t\t\t\t\ttype=\"month\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tmin={state.mtdStartDate.length > 0 ? state.mtdStartDate : null}\r\n\t\t\t\t\t\tmax={new Date()}\r\n\t\t\t\t\t\tvalue={state.mtdEndDate}\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalidator={RequiredDate}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"Please provide the date that you left MTD. If still employed, indicate the current month.\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\tid=\"position\"\r\n\t\t\t\t\t\tlabel=\"Position\"\r\n\t\t\t\t\t\tsize=\"single\"\r\n\t\t\t\t\t\tvalue={state.position}\r\n\t\t\t\t\t\tupdate={update}\r\n\t\t\t\t\t\tvalidator={RequiredString}\r\n\t\t\t\t\t\timmediateValidate={immediateValidate}\r\n\t\t\t\t\t\terrorMessage=\"Please provide the last position you held.\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</Conditional>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default WorkHistory;\r\n","import * as Session from '../generic/helpers/session';\r\nimport { assertUnreachable } from '../generic/helpers/unreachable';\r\nimport { State as Availability, StateDefaults as AvailabilityDefaults } from './sections/availability/reducer';\r\nimport { State as Education, StateDefaults as EducationDefaults } from './sections/education/reducer';\r\nimport { State as Eligibility, StateDefaults as EligibilityDefaults } from './sections/eligibility/reducer';\r\nimport { State as EmergencyContact, StateDefaults as EmergencyContactDefaults } from './sections/emergencyContact/reducer';\r\nimport { State as EmploymentRecord, StateDefaults as EmploymentRecordDefaults } from './sections/employmentRecord/reducer';\r\nimport { State as EqualOpportunity, StateDefaults as EqualOpportunityDefaults } from './sections/equalOpportunity/reducer';\r\nimport { State as Family, StateDefaults as FamilyDefaults } from './sections/family/reducer';\r\nimport { State as PersonalInfo, StateDefaults as PersonalInfoDefaults } from './sections/personalInformation/reducer';\r\nimport { State as References, StateDefaults as ReferencesDefaults } from './sections/references/reducer';\r\nimport { State as Resume, StateDefaults as ResumeDefaults } from './sections/resume/reducer';\r\nimport { State as Skills, StateDefaults as SkillDefaults } from './sections/skills/reducer';\r\nimport { State as WorkHistory, StateDefaults as WorkHistoryDefaults } from './sections/workHistory/reducer';\r\nimport { Validator } from './validators/validators';\r\nimport trackEvent from '../PlausibleHelpers';\r\n\r\nexport type AppType = 'abbreviated' | 'full';\r\n\r\nexport class InputValue<T> {\r\n\r\n\tprivate _value: T;\r\n\tpublic get value(): T {\r\n\t\treturn this._value;\r\n\t}\r\n\tpublic set value(v: T) {\r\n\t\tthis.hasChanged = true;\r\n\t\tthis.value = v;\r\n\t\tthis._valid = this.validate(this.value);\r\n\t}\r\n\r\n\tprivate _valid: boolean;\r\n\tpublic get valid(): boolean {\r\n\t\treturn this._valid;\r\n\t}\r\n\r\n\tpublic hasChanged: boolean;\r\n\tprivate validate: Validator<T>;\r\n\tpublic error: string;\r\n\r\n\tconstructor(initialValue: T, validator: Validator<T>, error: string) {\r\n\t\tthis.value = initialValue;\r\n\t\tthis._valid = true;\r\n\t\tthis.hasChanged = false;\r\n\t\tthis.validate = validator;\r\n\t\tthis.error = error;\r\n\t}\r\n\r\n\tpublic blur: () => void = () => this.hasChanged = true;\r\n}\r\n\r\ninterface DefaultableState {\r\n\tbegun: boolean;\r\n\tindex: number | null;\r\n\tmaxIndex: number;\r\n\tpersonalInfo: PersonalInfo;\r\n\tworkHistory: WorkHistory;\r\n\tfamily: Family;\r\n\tavailability: Availability;\r\n\temergencyContact: EmergencyContact;\r\n\teducation: Education;\r\n\tskills: Skills;\r\n\teligibility: Eligibility;\r\n\temploymentRecord: EmploymentRecord;\r\n\treferences: References;\r\n\tequalOpportunity: EqualOpportunity;\r\n\tresume: Resume;\r\n\tsubmitting: boolean;\r\n\tsubmitted: boolean;\r\n\tsubmitError: boolean;\r\n\tcc: boolean;\r\n\tcaptcha: string;\r\n\tcanSubmit: boolean;\r\n}\r\n\r\ninterface PropState {\r\n\tapplicationId: number;\r\n\ttype: AppType;\r\n\tintroText: string;\r\n\tabbreviatedText: string;\r\n\temploymentText: string;\r\n\treferencesText: string;\r\n\teeoText: string;\r\n\tconditionsText: string;\r\n}\r\n\r\nexport type State = Readonly<PropState & DefaultableState>;\r\n\r\nexport type Actions = 'begin' |\r\n\t'update-personal-info' |\r\n\t'update-work-history' |\r\n\t'update-family' |\r\n\t'update-availability' |\r\n\t'update-emergency-contact' |\r\n\t'update-education' |\r\n\t'update-skills' |\r\n\t'update-index' |\r\n\t'update-eligibility' |\r\n\t'update-employment-record' |\r\n\t'update-references' |\r\n\t'update-equal-opportunity' |\r\n\t'update-resume' |\r\n\t'submit' |\r\n\t'submitted' |\r\n\t'submit-error' |\r\n\t'update-cc';\r\nexport interface Action {\r\n\ttype: Actions;\r\n\tdata?: PersonalInfo | WorkHistory | Family | Availability | EmergencyContact | Education | Skills | Eligibility | EmploymentRecord | References | EqualOpportunity | Resume;\r\n\tindex?: number | null;\r\n\tcc?: boolean;\r\n\tcaptcha?: string;\r\n}\r\n\r\nexport function reducer(state: State, action: Action): State {\r\n\tconst newState = baseReducer(state, action);\r\n\tlogAnalytics(newState, action);\r\n\tsave(newState, action);\r\n\treturn newState;\r\n}\r\n\r\nfunction logAnalytics(state: State, action: Action): void {\r\n\ttrackEvent('JobApplicationUpdate', {\r\n\t\tactionType: action.type,\r\n\t\tpage: 'application',\r\n\t\tapplicationId: state.applicationId,\r\n\t});\r\n}\r\n\r\nfunction save(state: State, action: Action): void {\r\n\tswitch (action.type) {\r\n\t\tcase 'submitted':\r\n\t\t\tSession.clearSavedState(state.applicationId);\r\n\t\tcase 'submit':\r\n\t\tcase 'submit-error':\r\n\t\tcase 'update-resume':\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tSession.saveState(state.applicationId, state);\r\n\t}\r\n}\r\n\r\nfunction canSubmitPreviousSections(state: State): boolean {\r\n\tif (state.type === 'abbreviated') {\r\n\t\treturn state.personalInfo.valid &&\r\n\t\t\tstate.workHistory.valid &&\r\n\t\t\tstate.family.valid &&\r\n\t\t\tstate.availability.valid &&\r\n\t\t\tstate.eligibility.valid &&\r\n\t\t\tstate.equalOpportunity.valid;\r\n\t}\r\n\telse {\r\n\t\treturn state.personalInfo.valid &&\r\n\t\t\tstate.workHistory.valid &&\r\n\t\t\tstate.family.valid &&\r\n\t\t\tstate.availability.valid &&\r\n\t\t\tstate.emergencyContact.valid &&\r\n\t\t\tstate.education.valid &&\r\n\t\t\tstate.skills.valid &&\r\n\t\t\tstate.eligibility.valid &&\r\n\t\t\tstate.employmentRecord.valid &&\r\n\t\t\tstate.references.valid;\r\n\t}\r\n}\r\n\r\nfunction baseReducer(state: State, action: Action): State {\r\n\tswitch (action.type) {\r\n\t\tcase 'begin':\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tbegun: true,\r\n\t\t\t\tcanSubmit: canSubmitPreviousSections(state)\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-personal-info':\r\n\t\t\tconst personalInfo: PersonalInfo = action.data as PersonalInfo;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tpersonalInfo,\r\n\t\t\t\tindex: 1,\r\n\t\t\t\tmaxIndex: 1\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-work-history':\r\n\t\t\tconst workHistory: WorkHistory = action.data as WorkHistory;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tworkHistory,\r\n\t\t\t\tindex: 2,\r\n\t\t\t\tmaxIndex: 2\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-family':\r\n\t\t\tconst family: Family = action.data as Family;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tfamily,\r\n\t\t\t\tindex: 3,\r\n\t\t\t\tmaxIndex: 3\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-availability':\r\n\t\t\tconst availability: Availability = action.data as Availability;\r\n\t\t\tvar nextIndex: number = state.type === 'abbreviated' ? 7 : 4;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tavailability,\r\n\t\t\t\tindex: nextIndex,\r\n\t\t\t\tmaxIndex: nextIndex\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-emergency-contact':\r\n\t\t\tconst emergencyContact: EmergencyContact = action.data as EmergencyContact;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\temergencyContact,\r\n\t\t\t\tindex: 5,\r\n\t\t\t\tmaxIndex: 5\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-education':\r\n\t\t\tconst education: Education = action.data as Education;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\teducation,\r\n\t\t\t\tindex: 6,\r\n\t\t\t\tmaxIndex: 6\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-skills':\r\n\t\t\tconst skills: Skills = action.data as Skills;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tskills,\r\n\t\t\t\tindex: 7,\r\n\t\t\t\tmaxIndex: 7\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-eligibility':\r\n\t\t\tconst eligibility: Eligibility = action.data as Eligibility;\r\n\t\t\tvar nextIndex: number = state.type === 'abbreviated' ? 10 : 8;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\teligibility,\r\n\t\t\t\tindex: nextIndex,\r\n\t\t\t\tmaxIndex: nextIndex,\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-employment-record':\r\n\t\t\tconst employmentRecord: EmploymentRecord = action.data as EmploymentRecord;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\temploymentRecord,\r\n\t\t\t\tindex: 9,\r\n\t\t\t\tmaxIndex: 9,\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-references':\r\n\t\t\tconst references: References = action.data as References;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\treferences,\r\n\t\t\t\tindex: 10,\r\n\t\t\t\tmaxIndex: 10\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-equal-opportunity':\r\n\t\t\tconst equalOpportunity: EqualOpportunity = action.data as EqualOpportunity;\r\n\t\t\tvar nextIndex: number = state.type === 'abbreviated' ? 11 : null;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tequalOpportunity,\r\n\t\t\t\tindex: nextIndex,\r\n\t\t\t\tmaxIndex: 11,\r\n\t\t\t\tcanSubmit: canSubmitPreviousSections(state)\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-resume':\r\n\t\t\tconst resume: Resume = action.data as Resume;\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tresume,\r\n\t\t\t\tindex: null,\r\n\t\t\t\tmaxIndex: state.index + 1,\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'update-index':\r\n\t\t\tvar newState: State = {\r\n\t\t\t\t...state,\r\n\t\t\t\tindex: action.index,\r\n\t\t\t\tmaxIndex: Math.max(action.index, state.maxIndex),\r\n\t\t\t};\r\n\t\t\treturn { ...newState, canSubmit: canSubmitPreviousSections(newState) };\r\n\t\tcase 'submit':\r\n\t\t\tconst captcha: string = action.captcha as string;\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcaptcha: captcha,\r\n\t\t\t\tsubmitted: false,\r\n\t\t\t\tsubmitting: true,\r\n\t\t\t\tsubmitError: false\r\n\t\t\t};\r\n\t\tcase 'submitted':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tsubmitted: true,\r\n\t\t\t\tsubmitting: false,\r\n\t\t\t\tsubmitError: false\r\n\t\t\t};\r\n\t\tcase 'submit-error':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tsubmitted: false,\r\n\t\t\t\tsubmitting: false,\r\n\t\t\t\tsubmitError: true\r\n\t\t\t}\r\n\t\tcase 'update-cc':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcc: action.cc as boolean\r\n\t\t\t};\r\n\t\tdefault:\r\n\t\t\tassertUnreachable(action.type);\r\n\t}\r\n}\r\n\r\nexport const StateDefaults: DefaultableState = {\r\n\tbegun: false,\r\n\tindex: 0,\r\n\tmaxIndex: 0,\r\n\tpersonalInfo: { ...PersonalInfoDefaults },\r\n\tworkHistory: { ...WorkHistoryDefaults },\r\n\tfamily: { ...FamilyDefaults },\r\n\tavailability: { ...AvailabilityDefaults, type: 'abbreviated' },\r\n\temergencyContact: { ...EmergencyContactDefaults },\r\n\teducation: { ...EducationDefaults, type: 'abbreviated' },\r\n\tskills: { ...SkillDefaults, type: 'abbreviated' },\r\n\teligibility: { ...EligibilityDefaults },\r\n\temploymentRecord: { ...EmploymentRecordDefaults },\r\n\treferences: { ...ReferencesDefaults },\r\n\tequalOpportunity: { ...EqualOpportunityDefaults },\r\n\tresume: { ...ResumeDefaults },\r\n\tsubmitting: false,\r\n\tsubmitted: false,\r\n\tsubmitError: false,\r\n\tcc: false,\r\n\tcaptcha: '',\r\n\tcanSubmit: false\r\n};\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(ReCAPTCHA, _React$Component);\n\n  function ReCAPTCHA() {\n    var _this;\n\n    _this = _React$Component.call(this) || this;\n    _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n    _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n    _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n    _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  var _proto = ReCAPTCHA.prototype;\n\n  _proto.getValue = function getValue() {\n    if (this.props.grecaptcha && this._widgetId !== undefined) {\n      return this.props.grecaptcha.getResponse(this._widgetId);\n    }\n\n    return null;\n  };\n\n  _proto.getWidgetId = function getWidgetId() {\n    if (this.props.grecaptcha && this._widgetId !== undefined) {\n      return this._widgetId;\n    }\n\n    return null;\n  };\n\n  _proto.execute = function execute() {\n    var grecaptcha = this.props.grecaptcha;\n\n    if (grecaptcha && this._widgetId !== undefined) {\n      return grecaptcha.execute(this._widgetId);\n    } else {\n      this._executeRequested = true;\n    }\n  };\n\n  _proto.executeAsync = function executeAsync() {\n    var _this2 = this;\n\n    return new Promise(function (resolve, reject) {\n      _this2.executionResolve = resolve;\n      _this2.executionReject = reject;\n\n      _this2.execute();\n    });\n  };\n\n  _proto.reset = function reset() {\n    if (this.props.grecaptcha && this._widgetId !== undefined) {\n      this.props.grecaptcha.reset(this._widgetId);\n    }\n  };\n\n  _proto.handleExpired = function handleExpired() {\n    if (this.props.onExpired) {\n      this.props.onExpired();\n    } else {\n      this.handleChange(null);\n    }\n  };\n\n  _proto.handleErrored = function handleErrored() {\n    if (this.props.onErrored) {\n      this.props.onErrored();\n    }\n\n    if (this.executionReject) {\n      this.executionReject();\n      delete this.executionResolve;\n      delete this.executionReject;\n    }\n  };\n\n  _proto.handleChange = function handleChange(token) {\n    if (this.props.onChange) {\n      this.props.onChange(token);\n    }\n\n    if (this.executionResolve) {\n      this.executionResolve(token);\n      delete this.executionReject;\n      delete this.executionResolve;\n    }\n  };\n\n  _proto.explicitRender = function explicitRender() {\n    if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n      var wrapper = document.createElement(\"div\");\n      this._widgetId = this.props.grecaptcha.render(wrapper, {\n        sitekey: this.props.sitekey,\n        callback: this.handleChange,\n        theme: this.props.theme,\n        type: this.props.type,\n        tabindex: this.props.tabindex,\n        \"expired-callback\": this.handleExpired,\n        \"error-callback\": this.handleErrored,\n        size: this.props.size,\n        stoken: this.props.stoken,\n        hl: this.props.hl,\n        badge: this.props.badge\n      });\n      this.captcha.appendChild(wrapper);\n    }\n\n    if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n      this._executeRequested = false;\n      this.execute();\n    }\n  };\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.explicitRender();\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate() {\n    this.explicitRender();\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    if (this._widgetId !== undefined) {\n      this.delayOfCaptchaIframeRemoving();\n      this.reset();\n    }\n  };\n\n  _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n    var temporaryNode = document.createElement(\"div\");\n    document.body.appendChild(temporaryNode);\n    temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n    while (this.captcha.firstChild) {\n      temporaryNode.appendChild(this.captcha.firstChild);\n    } // delete the temporary node after reset will be done\n\n\n    setTimeout(function () {\n      document.body.removeChild(temporaryNode);\n    }, 5000);\n  };\n\n  _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n    this.captcha = elem;\n  };\n\n  _proto.render = function render() {\n    // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n    /* eslint-disable no-unused-vars */\n    var _this$props = this.props,\n        sitekey = _this$props.sitekey,\n        onChange = _this$props.onChange,\n        theme = _this$props.theme,\n        type = _this$props.type,\n        tabindex = _this$props.tabindex,\n        onExpired = _this$props.onExpired,\n        onErrored = _this$props.onErrored,\n        size = _this$props.size,\n        stoken = _this$props.stoken,\n        grecaptcha = _this$props.grecaptcha,\n        badge = _this$props.badge,\n        hl = _this$props.hl,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n    /* eslint-enable no-unused-vars */\n\n\n    return React.createElement(\"div\", _extends({}, childProps, {\n      ref: this.handleRecaptchaRef\n    }));\n  };\n\n  return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n  sitekey: PropTypes.string.isRequired,\n  onChange: PropTypes.func,\n  grecaptcha: PropTypes.object,\n  theme: PropTypes.oneOf([\"dark\", \"light\"]),\n  type: PropTypes.oneOf([\"image\", \"audio\"]),\n  tabindex: PropTypes.number,\n  onExpired: PropTypes.func,\n  onErrored: PropTypes.func,\n  size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n  stoken: PropTypes.string,\n  hl: PropTypes.string,\n  badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n  onChange: function onChange() {},\n  theme: \"light\",\n  type: \"image\",\n  tabindex: 0,\n  size: \"normal\",\n  badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n  options = options || {};\n  return function wrapWithAsyncScript(WrappedComponent) {\n    var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n    var AsyncScriptLoader =\n    /*#__PURE__*/\n    function (_Component) {\n      _inheritsLoose(AsyncScriptLoader, _Component);\n\n      function AsyncScriptLoader(props, context) {\n        var _this;\n\n        _this = _Component.call(this, props, context) || this;\n        _this.state = {};\n        _this.__scriptURL = \"\";\n        return _this;\n      }\n\n      var _proto = AsyncScriptLoader.prototype;\n\n      _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n        if (!this.__scriptLoaderID) {\n          this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n        }\n\n        return this.__scriptLoaderID;\n      };\n\n      _proto.setupScriptURL = function setupScriptURL() {\n        this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n        return this.__scriptURL;\n      };\n\n      _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n        var _this2 = this;\n\n        // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n        this.setState(state, function () {\n          return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n        });\n      };\n\n      _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n        var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n        if (!mapEntry || !mapEntry.loaded) {\n          throw new Error(\"Script is not loaded.\");\n        }\n\n        for (var obsKey in mapEntry.observers) {\n          mapEntry.observers[obsKey](mapEntry);\n        }\n\n        delete window[options.callbackName];\n      };\n\n      _proto.componentDidMount = function componentDidMount() {\n        var _this3 = this;\n\n        var scriptURL = this.setupScriptURL();\n        var key = this.asyncScriptLoaderGetScriptLoaderID();\n        var _options = options,\n            globalName = _options.globalName,\n            callbackName = _options.callbackName,\n            scriptId = _options.scriptId; // check if global object already attached to window\n\n        if (globalName && typeof window[globalName] !== \"undefined\") {\n          SCRIPT_MAP[scriptURL] = {\n            loaded: true,\n            observers: {}\n          };\n        } // check if script loading already\n\n\n        if (SCRIPT_MAP[scriptURL]) {\n          var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n          if (entry && (entry.loaded || entry.errored)) {\n            this.asyncScriptLoaderHandleLoad(entry);\n            return;\n          } // if still loading then callback to observer queue\n\n\n          entry.observers[key] = function (entry) {\n            return _this3.asyncScriptLoaderHandleLoad(entry);\n          };\n\n          return;\n        }\n        /*\n         * hasn't started loading\n         * start the \"magic\"\n         * setup script to load and observers\n         */\n\n\n        var observers = {};\n\n        observers[key] = function (entry) {\n          return _this3.asyncScriptLoaderHandleLoad(entry);\n        };\n\n        SCRIPT_MAP[scriptURL] = {\n          loaded: false,\n          observers: observers\n        };\n        var script = document.createElement(\"script\");\n        script.src = scriptURL;\n        script.async = true;\n\n        for (var attribute in options.attributes) {\n          script.setAttribute(attribute, options.attributes[attribute]);\n        }\n\n        if (scriptId) {\n          script.id = scriptId;\n        }\n\n        var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n          if (SCRIPT_MAP[scriptURL]) {\n            var mapEntry = SCRIPT_MAP[scriptURL];\n            var observersMap = mapEntry.observers;\n\n            for (var obsKey in observersMap) {\n              if (func(observersMap[obsKey])) {\n                delete observersMap[obsKey];\n              }\n            }\n          }\n        };\n\n        if (callbackName && typeof window !== \"undefined\") {\n          window[callbackName] = function () {\n            return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n          };\n        }\n\n        script.onload = function () {\n          var mapEntry = SCRIPT_MAP[scriptURL];\n\n          if (mapEntry) {\n            mapEntry.loaded = true;\n            callObserverFuncAndRemoveObserver(function (observer) {\n              if (callbackName) {\n                return false;\n              }\n\n              observer(mapEntry);\n              return true;\n            });\n          }\n        };\n\n        script.onerror = function () {\n          var mapEntry = SCRIPT_MAP[scriptURL];\n\n          if (mapEntry) {\n            mapEntry.errored = true;\n            callObserverFuncAndRemoveObserver(function (observer) {\n              observer(mapEntry);\n              return true;\n            });\n          }\n        };\n\n        document.body.appendChild(script);\n      };\n\n      _proto.componentWillUnmount = function componentWillUnmount() {\n        // Remove tag script\n        var scriptURL = this.__scriptURL;\n\n        if (options.removeOnUnmount === true) {\n          var allScripts = document.getElementsByTagName(\"script\");\n\n          for (var i = 0; i < allScripts.length; i += 1) {\n            if (allScripts[i].src.indexOf(scriptURL) > -1) {\n              if (allScripts[i].parentNode) {\n                allScripts[i].parentNode.removeChild(allScripts[i]);\n              }\n            }\n          }\n        } // Clean the observer entry\n\n\n        var mapEntry = SCRIPT_MAP[scriptURL];\n\n        if (mapEntry) {\n          delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n          if (options.removeOnUnmount === true) {\n            delete SCRIPT_MAP[scriptURL];\n          }\n        }\n      };\n\n      _proto.render = function render() {\n        var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n        var _this$props = this.props,\n            asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n            forwardedRef = _this$props.forwardedRef,\n            childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n        if (globalName && typeof window !== \"undefined\") {\n          childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n        }\n\n        childProps.ref = forwardedRef;\n        return createElement(WrappedComponent, childProps);\n      };\n\n      return AsyncScriptLoader;\n    }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n    // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n    // And it can then be attached to the Component.\n\n\n    var ForwardedComponent = forwardRef(function (props, ref) {\n      return createElement(AsyncScriptLoader, _extends({}, props, {\n        forwardedRef: ref\n      }));\n    });\n    ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n    ForwardedComponent.propTypes = {\n      asyncScriptOnLoad: PropTypes.func\n    };\n    return hoistStatics(ForwardedComponent, WrappedComponent);\n  };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n  return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n  var dynamicOptions = getOptions();\n  var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n  return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n  callbackName: callbackName,\n  globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };"],"sourceRoot":""}