{"version":3,"names":["dynamic","omit","untrack","createChangeEventDetails","createGenericEventDetails","REASONS","composeRefs","userRef","useFieldRootContext","useFormContext","mergeRootProps","resolveClassStyle","useFieldControlValidation","useValueChanged","useNumberFieldRootContext","DEFAULT_STEP","formatNumber","formatNumberMaxPrecision","ANY_MINUS_DETECT_RE","ANY_MINUS_RE","ANY_PLUS_DETECT_RE","ANY_PLUS_RE","ARABIC_DETECT_RE","FULLWIDTH_DETECT_RE","getNumberLocaleDetails","HAN_DETECT_RE","PERSIAN_DETECT_RE","parseNumber","numberFieldDataAttrs","NAVIGATE_KEYS","Set","NumberFieldInput","props","context","field","clearErrors","hasTouchedInputRef","current","blockRevalidationRef","getInputValidationProps","value","id","controlRef","inputRef","getValue","_next","previousValue","validateOnChange","shouldValidateOnChange","name","validation","commit","onFocus","event","defaultPrevented","readOnly","disabled","setFocused","target","currentTarget","length","setSelectionRange","onBlur","setTouched","hadManualInput","allowInputSyncRef","hadPendingProgrammaticChange","hasPendingCommitRef","inputText","inputValue","trim","setValue","inputClear","validationMode","onValueCommitted","formatOptions","formatOptionsRef","parsedValue","locale","hasExplicitPrecision","maximumFractionDigits","minimumFractionDigits","maxFrac","committed","Number","toFixed","nextEventDetails","inputBlur","currentValue","shouldUpdateValue","shouldCommit","canonicalText","shouldPreserveFullPrecision","setInputValue","onInput","targetValue","allowedNonNumericKeys","getAllowedNonNumericKeys","isValidCharacterString","Array","from","every","ch","isAsciiDigit","isArabicNumeral","test","isHanNumeral","isPersianNumeral","isFullwidthNumeral","isMinus","has","inputChange","onKeyDown","isAllowedNonNumericKey","key","decimal","currency","percentSign","selectionStart","selectionEnd","isAllSelected","selectionContainsIndex","index","some","k","existingIndex","search","isReplacingExisting","symbol","symbolIndex","indexOf","isSymbolHighlighted","includes","isNavigateKey","which","altKey","ctrlKey","metaKey","amount","getStepAmount","preventDefault","stopPropagation","commitDetails","keyboard","incrementValue","direction","reason","lastChangedValueRef","valueRef","min","max","onPaste","clipboardData","pastedData","getData","inputPaste","userStyling","state","userProps","localRef","el","internalSlot","required","inputMode","type","autocomplete","autocorrect","spellcheck","styledUserProps","merged","Tag","as"],"sources":["number-field-input.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { omit, untrack } from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tcreateGenericEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { useFieldRootContext } from \"../../internals/field-context\";\nimport { useFormContext } from \"../../internals/form-context\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useFieldControlValidation } from \"../../internals/use-field-control-validation/use-field-control-validation.ts\";\nimport { useValueChanged } from \"../../internals/use-value-changed.ts\";\nimport type { NumberFieldRootState } from \"../root/number-field-root.tsx\";\nimport { useNumberFieldRootContext } from \"../root/number-field-root-context.ts\";\nimport { DEFAULT_STEP } from \"../utils/constants.ts\";\nimport {\n\tformatNumber,\n\tformatNumberMaxPrecision,\n} from \"../utils/format-number.ts\";\nimport {\n\tANY_MINUS_DETECT_RE,\n\tANY_MINUS_RE,\n\tANY_PLUS_DETECT_RE,\n\tANY_PLUS_RE,\n\tARABIC_DETECT_RE,\n\tFULLWIDTH_DETECT_RE,\n\tgetNumberLocaleDetails,\n\tHAN_DETECT_RE,\n\tPERSIAN_DETECT_RE,\n\tparseNumber,\n} from \"../utils/parse.ts\";\nimport { numberFieldDataAttrs } from \"../utils/state-attributes-mapping.ts\";\n\nconst NAVIGATE_KEYS = new Set<string>([\n\t\"Backspace\",\n\t\"Delete\",\n\t\"ArrowLeft\",\n\t\"ArrowRight\",\n\t\"Tab\",\n\t\"Enter\",\n\t\"Escape\",\n]);\n\nexport interface NumberFieldInputState extends NumberFieldRootState {}\n\nexport interface NumberFieldInputProps\n\textends BaseUIComponentProps<\"input\", NumberFieldInputState> {\n\t/** Tag/component to render. Defaults to `\"input\"`. */\n\tas?: ValidComponent;\n\t\"aria-roledescription\"?: string | undefined;\n}\n\n/**\n * The native input control of the number field. Renders an `<input>`.\n *\n * Solid 2 adaptations (mirrors\n * `packages/react/src/number-field/input/NumberFieldInput.tsx`):\n *\n * - `onInput` maps to React's `onChange` (Solid's `onChange` fires on\n *   commit, not every keystroke). IME composition handling is kept as-is\n *   via the `event.which === 229` early return in `onKeyDown`.\n * - Field integration goes through `useFieldControlValidation` which wires\n *   the visible input into `<Field.Root>`'s registration + validation\n *   pipeline. The blur handler calls `commitValidation` in `onBlur` mode,\n *   matching the post-review slider-thumb pattern (see\n *   `src/slider/thumb/slider-thumb.tsx:491-511`).\n * - `aria-invalid` is seeded with `\"false\"` via\n *   `getInputValidationProps()` so the key stays in Solid 2's DOM-spread\n *   `ownKeys` from render 1 (see\n *   `test/internals/merge-props-undefined-attr.test.tsx`).\n */\nexport function NumberFieldInput(props: NumberFieldInputProps): JSX.Element {\n\tconst context = useNumberFieldRootContext();\n\tconst field = useFieldRootContext();\n\tconst { clearErrors } = useFormContext();\n\n\tconst hasTouchedInputRef = { current: false };\n\tconst blockRevalidationRef = { current: false };\n\n\t// Hook reads its accessor inputs once at body to seed registration —\n\t// `untrack` keeps the snapshot reads out of the component-body\n\t// strict-read shell. Reactivity flows through the retained closures.\n\tconst { getInputValidationProps } = untrack(() =>\n\t\tuseFieldControlValidation({\n\t\t\tvalue: () => context.value(),\n\t\t\tid: () => context.id,\n\t\t\tcontrolRef: context.inputRef,\n\t\t\tgetValue: () => context.value(),\n\t\t}),\n\t);\n\n\tuseValueChanged(\n\t\t() => context.value(),\n\t\t(_next, previousValue) => {\n\t\t\tconst validateOnChange = field.shouldValidateOnChange();\n\t\t\tclearErrors(context.name());\n\n\t\t\tif (validateOnChange) {\n\t\t\t\tvoid field.validation.commit(context.value());\n\t\t\t}\n\n\t\t\tif (previousValue === context.value() || validateOnChange) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (blockRevalidationRef.current) {\n\t\t\t\tblockRevalidationRef.current = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvoid field.validation.commit(context.value(), true);\n\t\t},\n\t);\n\n\tfunction onFocus(\n\t\tevent: FocusEvent & { currentTarget: HTMLInputElement },\n\t): void {\n\t\tif (event.defaultPrevented || context.readOnly() || context.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfield.setFocused(true);\n\n\t\tif (hasTouchedInputRef.current) return;\n\t\thasTouchedInputRef.current = true;\n\n\t\tconst target = event.currentTarget;\n\t\tconst length = target.value.length;\n\t\ttarget.setSelectionRange(length, length);\n\t}\n\n\tfunction onBlur(\n\t\tevent: FocusEvent & { currentTarget: HTMLInputElement },\n\t): void {\n\t\tif (event.defaultPrevented || context.readOnly() || context.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfield.setTouched(true);\n\t\tfield.setFocused(false);\n\n\t\tconst hadManualInput = !context.allowInputSyncRef.current;\n\t\tconst hadPendingProgrammaticChange = context.hasPendingCommitRef.current;\n\n\t\tcontext.allowInputSyncRef.current = true;\n\n\t\tconst inputText = context.inputValue();\n\n\t\tif (inputText.trim() === \"\") {\n\t\t\tcontext.setValue(\n\t\t\t\tnull,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputClear, event),\n\t\t\t);\n\t\t\tif (field.validationMode() === \"onBlur\") {\n\t\t\t\tvoid field.validation.commit(null);\n\t\t\t}\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tnull,\n\t\t\t\tcreateGenericEventDetails(REASONS.inputClear, event),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst formatOptions = context.formatOptionsRef.current;\n\t\tconst parsedValue = parseNumber(inputText, context.locale(), formatOptions);\n\t\tif (parsedValue === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasExplicitPrecision =\n\t\t\tformatOptions?.maximumFractionDigits != null ||\n\t\t\tformatOptions?.minimumFractionDigits != null;\n\n\t\tconst maxFrac = formatOptions?.maximumFractionDigits;\n\t\tconst committed =\n\t\t\thasExplicitPrecision && typeof maxFrac === \"number\"\n\t\t\t\t? Number(parsedValue.toFixed(maxFrac))\n\t\t\t\t: parsedValue;\n\n\t\tconst nextEventDetails = createGenericEventDetails(\n\t\t\tREASONS.inputBlur,\n\t\t\tevent,\n\t\t);\n\t\tconst currentValue = context.value();\n\t\tconst shouldUpdateValue = currentValue !== committed;\n\t\tconst shouldCommit =\n\t\t\thadManualInput || shouldUpdateValue || hadPendingProgrammaticChange;\n\n\t\tif (field.validationMode() === \"onBlur\") {\n\t\t\tvoid field.validation.commit(committed);\n\t\t}\n\t\tif (shouldUpdateValue) {\n\t\t\tblockRevalidationRef.current = true;\n\t\t\tcontext.setValue(\n\t\t\t\tcommitted,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputBlur, event),\n\t\t\t);\n\t\t}\n\t\tif (shouldCommit) {\n\t\t\tcontext.onValueCommitted(committed, nextEventDetails);\n\t\t}\n\n\t\tconst canonicalText = formatNumber(\n\t\t\tcommitted,\n\t\t\tcontext.locale(),\n\t\t\tformatOptions,\n\t\t);\n\t\tconst shouldPreserveFullPrecision =\n\t\t\t!hasExplicitPrecision &&\n\t\t\tparsedValue === currentValue &&\n\t\t\tinputText ===\n\t\t\t\tformatNumberMaxPrecision(parsedValue, context.locale(), formatOptions);\n\n\t\tif (!shouldPreserveFullPrecision && inputText !== canonicalText) {\n\t\t\tcontext.setInputValue(canonicalText);\n\t\t}\n\t}\n\n\tfunction onInput(\n\t\tevent: InputEvent & { currentTarget: HTMLInputElement },\n\t): void {\n\t\tif (event.defaultPrevented) return;\n\n\t\tcontext.allowInputSyncRef.current = false;\n\t\tconst targetValue = event.currentTarget.value;\n\n\t\tif (targetValue.trim() === \"\") {\n\t\t\tcontext.setInputValue(targetValue);\n\t\t\tcontext.setValue(\n\t\t\t\tnull,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputClear, event),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst allowedNonNumericKeys = context.getAllowedNonNumericKeys();\n\t\tconst isValidCharacterString = Array.from(targetValue).every((ch) => {\n\t\t\tconst isAsciiDigit = ch >= \"0\" && ch <= \"9\";\n\t\t\tconst isArabicNumeral = ARABIC_DETECT_RE.test(ch);\n\t\t\tconst isHanNumeral = HAN_DETECT_RE.test(ch);\n\t\t\tconst isPersianNumeral = PERSIAN_DETECT_RE.test(ch);\n\t\t\tconst isFullwidthNumeral = FULLWIDTH_DETECT_RE.test(ch);\n\t\t\tconst isMinus = ANY_MINUS_DETECT_RE.test(ch);\n\t\t\treturn (\n\t\t\t\tisAsciiDigit ||\n\t\t\t\tisArabicNumeral ||\n\t\t\t\tisHanNumeral ||\n\t\t\t\tisPersianNumeral ||\n\t\t\t\tisFullwidthNumeral ||\n\t\t\t\tisMinus ||\n\t\t\t\tallowedNonNumericKeys.has(ch)\n\t\t\t);\n\t\t});\n\n\t\tif (!isValidCharacterString) return;\n\n\t\tconst parsedValue = parseNumber(\n\t\t\ttargetValue,\n\t\t\tcontext.locale(),\n\t\t\tcontext.formatOptionsRef.current,\n\t\t);\n\n\t\tcontext.setInputValue(targetValue);\n\n\t\tif (parsedValue !== null) {\n\t\t\tcontext.setValue(\n\t\t\t\tparsedValue,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputChange, event),\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction onKeyDown(\n\t\tevent: KeyboardEvent & { currentTarget: HTMLInputElement },\n\t): void {\n\t\tif (event.defaultPrevented || context.readOnly() || context.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontext.allowInputSyncRef.current = true;\n\n\t\tconst allowedNonNumericKeys = context.getAllowedNonNumericKeys();\n\t\tlet isAllowedNonNumericKey = allowedNonNumericKeys.has(event.key);\n\n\t\tconst { decimal, currency, percentSign } = getNumberLocaleDetails(\n\t\t\tcontext.locale(),\n\t\t\tcontext.formatOptionsRef.current,\n\t\t);\n\n\t\tconst selectionStart = event.currentTarget.selectionStart;\n\t\tconst selectionEnd = event.currentTarget.selectionEnd;\n\t\tconst inputText = context.inputValue();\n\t\tconst isAllSelected =\n\t\t\tselectionStart === 0 && selectionEnd === inputText.length;\n\n\t\tconst selectionContainsIndex = (index: number): boolean =>\n\t\t\tselectionStart != null &&\n\t\t\tselectionEnd != null &&\n\t\t\tindex >= selectionStart &&\n\t\t\tindex < selectionEnd;\n\n\t\tif (\n\t\t\tANY_MINUS_DETECT_RE.test(event.key) &&\n\t\t\tArray.from(allowedNonNumericKeys).some((k) =>\n\t\t\t\tANY_MINUS_DETECT_RE.test(k || \"\"),\n\t\t\t)\n\t\t) {\n\t\t\tconst existingIndex = inputText.search(ANY_MINUS_RE);\n\t\t\tconst isReplacingExisting =\n\t\t\t\texistingIndex != null &&\n\t\t\t\texistingIndex !== -1 &&\n\t\t\t\tselectionContainsIndex(existingIndex);\n\t\t\tisAllowedNonNumericKey =\n\t\t\t\t!(\n\t\t\t\t\tANY_MINUS_DETECT_RE.test(inputText) ||\n\t\t\t\t\tANY_PLUS_DETECT_RE.test(inputText)\n\t\t\t\t) ||\n\t\t\t\tisAllSelected ||\n\t\t\t\tisReplacingExisting;\n\t\t}\n\t\tif (\n\t\t\tANY_PLUS_DETECT_RE.test(event.key) &&\n\t\t\tArray.from(allowedNonNumericKeys).some((k) =>\n\t\t\t\tANY_PLUS_DETECT_RE.test(k || \"\"),\n\t\t\t)\n\t\t) {\n\t\t\tconst existingIndex = inputText.search(ANY_PLUS_RE);\n\t\t\tconst isReplacingExisting =\n\t\t\t\texistingIndex != null &&\n\t\t\t\texistingIndex !== -1 &&\n\t\t\t\tselectionContainsIndex(existingIndex);\n\t\t\tisAllowedNonNumericKey =\n\t\t\t\t!(\n\t\t\t\t\tANY_MINUS_DETECT_RE.test(inputText) ||\n\t\t\t\t\tANY_PLUS_DETECT_RE.test(inputText)\n\t\t\t\t) ||\n\t\t\t\tisAllSelected ||\n\t\t\t\tisReplacingExisting;\n\t\t}\n\n\t\tfor (const symbol of [decimal, currency, percentSign]) {\n\t\t\tif (event.key === symbol && symbol) {\n\t\t\t\tconst symbolIndex = inputText.indexOf(symbol);\n\t\t\t\tconst isSymbolHighlighted = selectionContainsIndex(symbolIndex);\n\t\t\t\tisAllowedNonNumericKey =\n\t\t\t\t\t!inputText.includes(symbol) || isAllSelected || isSymbolHighlighted;\n\t\t\t}\n\t\t}\n\n\t\tconst isAsciiDigit = event.key >= \"0\" && event.key <= \"9\";\n\t\tconst isArabicNumeral = ARABIC_DETECT_RE.test(event.key);\n\t\tconst isHanNumeral = HAN_DETECT_RE.test(event.key);\n\t\tconst isFullwidthNumeral = FULLWIDTH_DETECT_RE.test(event.key);\n\t\tconst isNavigateKey = NAVIGATE_KEYS.has(event.key);\n\n\t\t// IME composition (`event.which === 229`) takes the early-return path\n\t\t// so we don't eat the pinyin/Japanese/etc. stroke that the IME will\n\t\t// later commit through a regular `input` event.\n\t\tif (\n\t\t\t(event as KeyboardEvent & { which?: number }).which === 229 ||\n\t\t\tevent.altKey ||\n\t\t\tevent.ctrlKey ||\n\t\t\tevent.metaKey ||\n\t\t\tisAllowedNonNumericKey ||\n\t\t\tisAsciiDigit ||\n\t\t\tisArabicNumeral ||\n\t\t\tisFullwidthNumeral ||\n\t\t\tisHanNumeral ||\n\t\t\tisNavigateKey\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst parsedValue = parseNumber(\n\t\t\tinputText,\n\t\t\tcontext.locale(),\n\t\t\tcontext.formatOptionsRef.current,\n\t\t);\n\t\tconst amount = context.getStepAmount(event) ?? DEFAULT_STEP;\n\n\t\t// Prevent insertion of text or caret from moving.\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tconst commitDetails = createGenericEventDetails(REASONS.keyboard, event);\n\n\t\tif (event.key === \"ArrowUp\") {\n\t\t\tcontext.incrementValue(amount, {\n\t\t\t\tdirection: 1,\n\t\t\t\tcurrentValue: parsedValue,\n\t\t\t\tevent,\n\t\t\t\treason: REASONS.keyboard,\n\t\t\t});\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tcontext.lastChangedValueRef.current ?? context.valueRef.current,\n\t\t\t\tcommitDetails,\n\t\t\t);\n\t\t} else if (event.key === \"ArrowDown\") {\n\t\t\tcontext.incrementValue(amount, {\n\t\t\t\tdirection: -1,\n\t\t\t\tcurrentValue: parsedValue,\n\t\t\t\tevent,\n\t\t\t\treason: REASONS.keyboard,\n\t\t\t});\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tcontext.lastChangedValueRef.current ?? context.valueRef.current,\n\t\t\t\tcommitDetails,\n\t\t\t);\n\t\t} else if (event.key === \"Home\" && context.min() != null) {\n\t\t\tcontext.setValue(\n\t\t\t\tcontext.min() as number,\n\t\t\t\tcreateChangeEventDetails(REASONS.keyboard, event),\n\t\t\t);\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tcontext.lastChangedValueRef.current ?? context.valueRef.current,\n\t\t\t\tcommitDetails,\n\t\t\t);\n\t\t} else if (event.key === \"End\" && context.max() != null) {\n\t\t\tcontext.setValue(\n\t\t\t\tcontext.max() as number,\n\t\t\t\tcreateChangeEventDetails(REASONS.keyboard, event),\n\t\t\t);\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tcontext.lastChangedValueRef.current ?? context.valueRef.current,\n\t\t\t\tcommitDetails,\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction onPaste(event: ClipboardEvent): void {\n\t\tif (event.defaultPrevented || context.readOnly() || context.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst clipboardData = event.clipboardData;\n\t\tif (!clipboardData) return;\n\t\tconst pastedData = clipboardData.getData(\"text/plain\");\n\t\tconst parsedValue = parseNumber(\n\t\t\tpastedData,\n\t\t\tcontext.locale(),\n\t\t\tcontext.formatOptionsRef.current,\n\t\t);\n\n\t\tif (parsedValue !== null) {\n\t\t\tcontext.allowInputSyncRef.current = false;\n\t\t\tcontext.setValue(\n\t\t\t\tparsedValue,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputPaste, event),\n\t\t\t);\n\t\t\tcontext.setInputValue(pastedData);\n\t\t}\n\t}\n\n\tconst userStyling = resolveClassStyle(props, () => context.state());\n\n\tconst userProps = omit(\n\t\tprops as Record<string, unknown>,\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\t\t\"as\",\n\t);\n\n\tconst localRef = (el: HTMLInputElement | null): void => {\n\t\tcontext.inputRef.current = el;\n\t};\n\n\tconst internalSlot = {\n\t\tid: context.id,\n\t\tget required() {\n\t\t\treturn context.required();\n\t\t},\n\t\tget disabled() {\n\t\t\treturn context.disabled();\n\t\t},\n\t\tget readOnly() {\n\t\t\treturn context.readOnly();\n\t\t},\n\t\tget inputMode() {\n\t\t\treturn context.inputMode();\n\t\t},\n\t\tget value() {\n\t\t\treturn context.inputValue();\n\t\t},\n\t\ttype: \"text\" as const,\n\t\tautocomplete: \"off\" as const,\n\t\tautocorrect: \"off\" as const,\n\t\tspellcheck: false,\n\t\t\"aria-roledescription\": props[\"aria-roledescription\"] ?? \"Number field\",\n\t\tonFocus,\n\t\tonBlur,\n\t\tonInput,\n\t\tonKeyDown,\n\t\tonPaste,\n\t};\n\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternalSlot,\n\t\tnumberFieldDataAttrs(context.state),\n\t);\n\tmerged = mergeRootProps(\n\t\tmerged,\n\t\tgetInputValidationProps() as Record<string, unknown>,\n\t);\n\tmerged = mergeRootProps(merged, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"input\");\n\treturn <Tag {...merged} ref={composeRefs(localRef, userRef(props))} />;\n}\n\nexport namespace NumberFieldInput {\n\texport type State = NumberFieldInputState;\n\texport type Props = NumberFieldInputProps;\n}\n"],"mappings":"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","ignoreList":[]}