diff --git a/now.json b/now.json index 1e2507100..a32ff4eee 100644 --- a/now.json +++ b/now.json @@ -4,5 +4,8 @@ "alias": "y.chibicode.com", "github": { "silent": true + }, + "engines": { + "node": "10.x" } } diff --git a/scripts/copyUsedEmojis.ts b/scripts/copyUsedEmojis.ts index 1ab7d717b..77226471b 100644 --- a/scripts/copyUsedEmojis.ts +++ b/scripts/copyUsedEmojis.ts @@ -105,7 +105,8 @@ const allUsedEmojis = uniq([ '🔠', '🐍', '💡', - '🎁' + '🎁', + '🗓' ]) // Copied from Twemoji diff --git a/scripts/lib/buildExpressionContainers.ts b/scripts/lib/buildExpressionContainers.ts index ca1675a2f..feaf629ef 100644 --- a/scripts/lib/buildExpressionContainers.ts +++ b/scripts/lib/buildExpressionContainers.ts @@ -9,6 +9,7 @@ import * as lessonExpressions from 'scripts/lib/lessonExpressions' const buildExpressionContainers = ({ lessonExpressionsKey, + predefinedExpressionsKeys, initializeInstructions, showAllShowSteps, skipAlphaConvert, @@ -18,35 +19,20 @@ const buildExpressionContainers = ({ lastAllowedExpressionStateAfterIterations, hidePlayButton }: ExpressionRunnerConfig): readonly ExpressionContainer[] => { - let currentExpressionContainer: SteppedExpressionContainer = - lessonExpressions[lessonExpressionsKey] - let results: ExpressionContainer[] = [] - const stepOptions = { showAllShowSteps, skipAlphaConvert } + if (lessonExpressionsKey) { + let currentExpressionContainer: SteppedExpressionContainer = + lessonExpressions[lessonExpressionsKey] + let results: ExpressionContainer[] = [] + const stepOptions = { showAllShowSteps, skipAlphaConvert } - initializeInstructions.forEach(initializeInstruction => { - if ( - initializeInstruction.type === - 'stepForwardUntilPreviouslyChangedExpressionState' - ) { - while ( - currentExpressionContainer.previouslyChangedExpressionState !== - initializeInstruction.state && - !isContainerWithState(currentExpressionContainer, 'done') + initializeInstructions.forEach(initializeInstruction => { + if ( + initializeInstruction.type === + 'stepForwardUntilPreviouslyChangedExpressionState' ) { - currentExpressionContainer = stepExpressionContainer( - currentExpressionContainer, - stepOptions - ) - } - } else if (initializeInstruction.type === 'nextIteration') { - if (!isContainerWithState(currentExpressionContainer, 'done')) { - currentExpressionContainer = stepExpressionContainer( - currentExpressionContainer, - stepOptions - ) while ( currentExpressionContainer.previouslyChangedExpressionState !== - 'default' && + initializeInstruction.state && !isContainerWithState(currentExpressionContainer, 'done') ) { currentExpressionContainer = stepExpressionContainer( @@ -54,63 +40,85 @@ const buildExpressionContainers = ({ stepOptions ) } + } else if (initializeInstruction.type === 'nextIteration') { + if (!isContainerWithState(currentExpressionContainer, 'done')) { + currentExpressionContainer = stepExpressionContainer( + currentExpressionContainer, + stepOptions + ) + while ( + currentExpressionContainer.previouslyChangedExpressionState !== + 'default' && + !isContainerWithState(currentExpressionContainer, 'done') + ) { + currentExpressionContainer = stepExpressionContainer( + currentExpressionContainer, + stepOptions + ) + } + } + } else { + while (!isContainerWithState(currentExpressionContainer, 'done')) { + currentExpressionContainer = stepExpressionContainer( + currentExpressionContainer, + stepOptions + ) + } } - } else { + }) + + results.push(currentExpressionContainer) + + if (hideControls) { + return results + } + + if (skipToTheEnd) { while (!isContainerWithState(currentExpressionContainer, 'done')) { currentExpressionContainer = stepExpressionContainer( currentExpressionContainer, stepOptions ) } + results.push(currentExpressionContainer) + return results } - }) - results.push(currentExpressionContainer) - - if (hideControls) { - return results - } - - if (skipToTheEnd) { + let becameDefaultCount = 0 while (!isContainerWithState(currentExpressionContainer, 'done')) { currentExpressionContainer = stepExpressionContainer( currentExpressionContainer, stepOptions ) - } - results.push(currentExpressionContainer) - return results - } + results.push(currentExpressionContainer) - let becameDefaultCount = 0 - while (!isContainerWithState(currentExpressionContainer, 'done')) { - currentExpressionContainer = stepExpressionContainer( - currentExpressionContainer, - stepOptions - ) - results.push(currentExpressionContainer) + if (hidePlayButton) { + break + } - if (hidePlayButton) { - break - } + if ( + lastAllowedExpressionState && + lastAllowedExpressionState === + currentExpressionContainer.previouslyChangedExpressionState && + (lastAllowedExpressionStateAfterIterations || 0) <= becameDefaultCount + ) { + break + } - if ( - lastAllowedExpressionState && - lastAllowedExpressionState === - currentExpressionContainer.previouslyChangedExpressionState && - (lastAllowedExpressionStateAfterIterations || 0) <= becameDefaultCount - ) { - break + if ( + currentExpressionContainer.previouslyChangedExpressionState === + 'default' + ) { + becameDefaultCount += 1 + } } - if ( - currentExpressionContainer.previouslyChangedExpressionState === 'default' - ) { - becameDefaultCount += 1 - } + return results + } else if (predefinedExpressionsKeys) { + return predefinedExpressionsKeys.map(key => lessonExpressions[key]) + } else { + throw new Error() } - - return results } export default buildExpressionContainers diff --git a/scripts/lib/buildExpressionRunnerConfigFromShorthand.ts b/scripts/lib/buildExpressionRunnerConfigFromShorthand.ts index 44f505a02..805a18246 100644 --- a/scripts/lib/buildExpressionRunnerConfigFromShorthand.ts +++ b/scripts/lib/buildExpressionRunnerConfigFromShorthand.ts @@ -3,8 +3,10 @@ import { expressionRunnerSimpleConfigDefault, expressionRunnerPlayButtonOnlyConfigDefault, expressionRunnerSingleStepConfigDefault, + expressionRunnerPredefinedConfigDefault, isExpressionRunnerSimpleConfig, - isExpressionRunnerPlayButtonOnlyConfig + isExpressionRunnerPlayButtonOnlyConfig, + isExpressionRunnerSingleStepConfig } from 'scripts/lib/expressionRunnerShorthandConfig' import { ExpressionContainer } from 'src/types/ExpressionContainerTypes' import { allMaxWidths } from 'src/lib/theme/maxWidths' @@ -17,7 +19,8 @@ import { HProps } from 'src/types/HTypes' import * as lessonExpressions from 'scripts/lib/lessonExpressions' export interface ExpressionRunnerConfig { - lessonExpressionsKey: keyof typeof lessonExpressions + lessonExpressionsKey?: keyof typeof lessonExpressions + predefinedExpressionsKeys?: readonly (keyof typeof lessonExpressions)[] hidePriorities: ExpressionRunnerContextProps['hidePriorities'] hideBottomRightBadges: ExpressionRunnerContextProps['hideBottomRightBadges'] hideControls: boolean @@ -233,7 +236,7 @@ const buildExpressionRunnerConfigFromShorthand = ( }), superFastForward } - } else { + } else if (isExpressionRunnerSingleStepConfig(config)) { const { lessonExpressionsKey, initialState, @@ -268,6 +271,34 @@ const buildExpressionRunnerConfigFromShorthand = ( initialState }) } + } else { + const { + predefinedExpressionsKeys, + hideFuncUnboundBadgeOnExplanation, + showPriorities, + explanationsVisibility, + showAllShowSteps, + variableSize, + containerSize, + nextIterations, + skipToTheEnd + } = mergeWithDefault< + typeof config, + typeof expressionRunnerPredefinedConfigDefault + >(config, expressionRunnerPredefinedConfigDefault) + + runnerProps = { + predefinedExpressionsKeys, + variableSize, + containerSize, + hidePriorities: !showPriorities, + hideFuncUnboundBadgeOnExplanation, + hidePlayButton: false, + explanationsVisibility, + lastAllowedExpressionStateAfterIterations: nextIterations, + showAllShowSteps, + skipToTheEnd + } } return mergeWithDefault( diff --git a/scripts/lib/expressionRunnerShorthandConfig.ts b/scripts/lib/expressionRunnerShorthandConfig.ts index 39eb1a291..d1d3f97af 100644 --- a/scripts/lib/expressionRunnerShorthandConfig.ts +++ b/scripts/lib/expressionRunnerShorthandConfig.ts @@ -109,7 +109,36 @@ interface ExpressionRunnerSingleStepConfig { showAllShowSteps?: ExpressionRunnerProps['showAllShowSteps'] } +export function isExpressionRunnerPredefinedConfig( + c: ExpressionRunnerShorthandConfig +): c is ExpressionRunnerPredefinedConfig { + return c.runner === 'predefined' +} + +export const expressionRunnerPredefinedConfigDefault = { + hideFuncUnboundBadgeOnExplanation: false, + showPriorities: false, + explanationsVisibility: 'hiddenInitialPausedOnly', + variableSize: 'lg', + skipToTheEnd: true +} + +interface ExpressionRunnerPredefinedConfig { + runner: 'predefined' + predefinedExpressionsKeys: readonly (keyof typeof lessonExpressions)[] + hideFuncUnboundBadgeOnExplanation?: boolean + showPriorities?: boolean + nextIteration?: boolean + nextIterations?: number + variableSize?: ExpressionRunnerProps['variableSize'] + containerSize?: ExpressionRunnerProps['containerSize'] + explanationsVisibility?: ExpressionRunnerProps['explanationsVisibility'] + showAllShowSteps?: ExpressionRunnerProps['showAllShowSteps'] + skipToTheEnd?: boolean +} + export type ExpressionRunnerShorthandConfig = | ExpressionRunnerSimpleConfig | ExpressionRunnerPlayButtonOnlyConfig | ExpressionRunnerSingleStepConfig + | ExpressionRunnerPredefinedConfig diff --git a/scripts/lib/lessonExpressions.ts b/scripts/lib/lessonExpressions.ts index ce56cc4ad..0d2953e94 100644 --- a/scripts/lib/lessonExpressions.ts +++ b/scripts/lib/lessonExpressions.ts @@ -13,6 +13,7 @@ import { numberParamsHighlightNumber } from 'scripts/lib/churchEncodingParams' import { magicalVariableName } from 'src/lib/specialVariableNames' +import { ContainerWithState } from 'src/types/ExpressionContainerTypes' export const e1E1 = initializeExpressionContainer([ { @@ -961,3 +962,169 @@ export const e16E1 = initializeExpressionContainer([ }, 'B' ]) + +export const v2e1E1 = initializeExpressionContainer([ + 'questionV2', + [ + { + shorthandBinary: 'add' + }, + 'questionV2' + ] +]) + +export const v2e1E2 = initializeExpressionContainer([ + { + shorthandNumber: 1 + }, + [ + { + shorthandBinary: 'add' + }, + { + shorthandNumber: 1 + } + ] +]) + +export const v2e1E3: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 2 + }), + containerState: 'done' +} + +export const v2e1E4 = initializeExpressionContainer([ + { + shorthandNumber: 2 + }, + [ + { + shorthandBinary: 'add' + }, + { + shorthandNumber: 3 + } + ] +]) + +export const v2e1E5: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 6 + }), + containerState: 'done' +} + +export const v2e1E6 = initializeExpressionContainer([ + { + shorthandNumber: 2 + }, + [ + { + shorthandBinary: 'remainder' + }, + { + shorthandNumber: 5 + } + ] +]) + +export const v2e1E7: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 1 + }), + containerState: 'done' +} + +export const v2e1E8 = initializeExpressionContainer({ + checkType: 'isZero', + condition: 'questionV2', + trueCase: 'questionV2', + falseCase: 'questionV2' +}) + +export const v2e1E9 = initializeExpressionContainer({ + checkType: 'isZero', + condition: { + shorthandNumber: 2 + }, + trueCase: { + shorthandNumber: 3 + }, + falseCase: { + shorthandNumber: 1 + } +}) + +export const v2e1E10: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 1 + }), + containerState: 'done' +} + +export const v2e1E11 = initializeExpressionContainer({ + checkType: 'isZero', + condition: { + shorthandNumber: 0 + }, + trueCase: { + shorthandNumber: 5 + }, + falseCase: { + shorthandNumber: 4 + } +}) + +export const v2e1E12 = initializeExpressionContainer([ + { + shorthandNumber: 4 + }, + [ + { + shorthandBinary: 'remainder' + }, + 'questionV2' + ] +]) + +export const v2e1E13 = initializeExpressionContainer([ + { + shorthandNumber: 4 + }, + [ + { + shorthandBinary: 'remainder' + }, + { + shorthandNumber: 2020 + } + ] +]) + +export const v2e1E14: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 0 + }), + containerState: 'done' +} + +export const v2e1E15 = initializeExpressionContainer({ + checkType: 'isZero', + condition: { + shorthandNumber: 0 + }, + trueCase: { + shorthandNumber: 29 + }, + falseCase: { + shorthandNumber: 28 + } +}) + +export const v2e1E16: ContainerWithState<'done'> = { + ...initializeExpressionContainer({ + shorthandNumber: 28 + }), + containerState: 'done' +} diff --git a/scripts/lib/runnerConfigs/atkh.ts b/scripts/lib/runnerConfigs/atkh.ts new file mode 100644 index 000000000..481ca9fe0 --- /dev/null +++ b/scripts/lib/runnerConfigs/atkh.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E12' +} + +export default config diff --git a/scripts/lib/runnerConfigs/fdek.ts b/scripts/lib/runnerConfigs/fdek.ts new file mode 100644 index 000000000..2efce4d45 --- /dev/null +++ b/scripts/lib/runnerConfigs/fdek.ts @@ -0,0 +1,9 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E1', + caption: { name: 'addMathBox' } +} + +export default config diff --git a/scripts/lib/runnerConfigs/gruv.ts b/scripts/lib/runnerConfigs/gruv.ts new file mode 100644 index 000000000..dc51abc70 --- /dev/null +++ b/scripts/lib/runnerConfigs/gruv.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E13' +} + +export default config diff --git a/scripts/lib/runnerConfigs/guhy.ts b/scripts/lib/runnerConfigs/guhy.ts new file mode 100644 index 000000000..effefe19a --- /dev/null +++ b/scripts/lib/runnerConfigs/guhy.ts @@ -0,0 +1,10 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E11', + initialState: 'trueCaseActive', + explanationsVisibility: 'visible' +} + +export default config diff --git a/scripts/lib/runnerConfigs/iatt.ts b/scripts/lib/runnerConfigs/iatt.ts new file mode 100644 index 000000000..d4f0c1863 --- /dev/null +++ b/scripts/lib/runnerConfigs/iatt.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'predefined', + predefinedExpressionsKeys: ['v2e1E9', 'v2e1E7'] +} + +export default config diff --git a/scripts/lib/runnerConfigs/jfsd.ts b/scripts/lib/runnerConfigs/jfsd.ts new file mode 100644 index 000000000..ec86a0060 --- /dev/null +++ b/scripts/lib/runnerConfigs/jfsd.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E2' +} + +export default config diff --git a/scripts/lib/runnerConfigs/lbua.ts b/scripts/lib/runnerConfigs/lbua.ts new file mode 100644 index 000000000..4992d5b28 --- /dev/null +++ b/scripts/lib/runnerConfigs/lbua.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E14' +} + +export default config diff --git a/scripts/lib/runnerConfigs/mjbi.ts b/scripts/lib/runnerConfigs/mjbi.ts new file mode 100644 index 000000000..748e323a7 --- /dev/null +++ b/scripts/lib/runnerConfigs/mjbi.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E6' +} + +export default config diff --git a/scripts/lib/runnerConfigs/nlfx.ts b/scripts/lib/runnerConfigs/nlfx.ts new file mode 100644 index 000000000..7285d4a71 --- /dev/null +++ b/scripts/lib/runnerConfigs/nlfx.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'predefined', + predefinedExpressionsKeys: ['v2e1E2', 'v2e1E3'] +} + +export default config diff --git a/scripts/lib/runnerConfigs/novg.ts b/scripts/lib/runnerConfigs/novg.ts new file mode 100644 index 000000000..df3da2c75 --- /dev/null +++ b/scripts/lib/runnerConfigs/novg.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E16' +} + +export default config diff --git a/scripts/lib/runnerConfigs/plbv.ts b/scripts/lib/runnerConfigs/plbv.ts new file mode 100644 index 000000000..c66040c59 --- /dev/null +++ b/scripts/lib/runnerConfigs/plbv.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E11' +} + +export default config diff --git a/scripts/lib/runnerConfigs/qcmh.ts b/scripts/lib/runnerConfigs/qcmh.ts new file mode 100644 index 000000000..81ef53f1e --- /dev/null +++ b/scripts/lib/runnerConfigs/qcmh.ts @@ -0,0 +1,10 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E11', + initialState: 'conditionActive', + explanationsVisibility: 'visible' +} + +export default config diff --git a/scripts/lib/runnerConfigs/qscy.ts b/scripts/lib/runnerConfigs/qscy.ts new file mode 100644 index 000000000..f7565af9f --- /dev/null +++ b/scripts/lib/runnerConfigs/qscy.ts @@ -0,0 +1,10 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E15', + explanationsVisibility: 'visible', + initialState: 'trueCaseActive' +} + +export default config diff --git a/scripts/lib/runnerConfigs/rjfy.ts b/scripts/lib/runnerConfigs/rjfy.ts new file mode 100644 index 000000000..6bae5d682 --- /dev/null +++ b/scripts/lib/runnerConfigs/rjfy.ts @@ -0,0 +1,10 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E9', + initialState: 'falseCaseActive', + explanationsVisibility: 'visible' +} + +export default config diff --git a/scripts/lib/runnerConfigs/sewk.ts b/scripts/lib/runnerConfigs/sewk.ts new file mode 100644 index 000000000..419ec5281 --- /dev/null +++ b/scripts/lib/runnerConfigs/sewk.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'playButtonOnly', + lessonExpressionsKey: 'v2e1E15' +} + +export default config diff --git a/scripts/lib/runnerConfigs/sffm.ts b/scripts/lib/runnerConfigs/sffm.ts new file mode 100644 index 000000000..cdd65dd22 --- /dev/null +++ b/scripts/lib/runnerConfigs/sffm.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E15' +} + +export default config diff --git a/scripts/lib/runnerConfigs/toht.ts b/scripts/lib/runnerConfigs/toht.ts new file mode 100644 index 000000000..3d2b62457 --- /dev/null +++ b/scripts/lib/runnerConfigs/toht.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E7' +} + +export default config diff --git a/scripts/lib/runnerConfigs/uaha.ts b/scripts/lib/runnerConfigs/uaha.ts new file mode 100644 index 000000000..3fc1c51dc --- /dev/null +++ b/scripts/lib/runnerConfigs/uaha.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'predefined', + predefinedExpressionsKeys: ['v2e1E4', 'v2e1E5'] +} + +export default config diff --git a/scripts/lib/runnerConfigs/vozu.ts b/scripts/lib/runnerConfigs/vozu.ts new file mode 100644 index 000000000..5dff6bc88 --- /dev/null +++ b/scripts/lib/runnerConfigs/vozu.ts @@ -0,0 +1,10 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E9', + initialState: 'conditionActive', + explanationsVisibility: 'visible' +} + +export default config diff --git a/scripts/lib/runnerConfigs/wtax.ts b/scripts/lib/runnerConfigs/wtax.ts new file mode 100644 index 000000000..55020f47a --- /dev/null +++ b/scripts/lib/runnerConfigs/wtax.ts @@ -0,0 +1,8 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'predefined', + predefinedExpressionsKeys: ['v2e1E6', 'v2e1E7'] +} + +export default config diff --git a/scripts/lib/runnerConfigs/ymmm.ts b/scripts/lib/runnerConfigs/ymmm.ts new file mode 100644 index 000000000..e3db51d37 --- /dev/null +++ b/scripts/lib/runnerConfigs/ymmm.ts @@ -0,0 +1,9 @@ +import { ExpressionRunnerShorthandConfig } from '../expressionRunnerShorthandConfig' + +const config: ExpressionRunnerShorthandConfig = { + runner: 'simple', + lessonExpressionsKey: 'v2e1E8', + caption: { name: 'conditionalMathBox' } +} + +export default config diff --git a/src/components/ContentTags/Hr.tsx b/src/components/ContentTags/Hr.tsx index 0336b42d5..593ccf723 100644 --- a/src/components/ContentTags/Hr.tsx +++ b/src/components/ContentTags/Hr.tsx @@ -5,7 +5,7 @@ export const Hr = styled.hr` border-top: none; border-left: none; border-right: none; - border-bottom: 3px solid ${colors('white')}; + border-bottom: 5px solid ${colors('white')}; margin: ${spaces(2)} auto ${spaces(2)}; max-width: ${maxWidths('xxxs')}; ` diff --git a/src/components/ExpressionRunnerExplanation.tsx b/src/components/ExpressionRunnerExplanation.tsx index c8afc45e6..25789bc4c 100644 --- a/src/components/ExpressionRunnerExplanation.tsx +++ b/src/components/ExpressionRunnerExplanation.tsx @@ -331,7 +331,7 @@ const Explanation = ({ type="condition" variableSizeOverrides="sm" />{' '} - が1äģĨ上ãĒぎで{' '} + が ではãĒいぎで{' '} { return <>ã“ãĄã‚‰ãŽåŧåŊ“įŽąã‚’ã”čĻ§ãã ã•ã„ } } + if (args.name === 'lookAtThisMathBox') { + if (locale === 'en') { + return <>â€Ļ + } else { + return <>ã“ãĄã‚‰ãŽč¨ˆįŽ—įŽąã‚’ã”čĻ§ãã ã•ã„ + } + } if (args.name === 'pauseIfLost') { if (locale === 'en') { return <>â€Ļ @@ -1727,6 +1734,45 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { ) } } + if (args.name === 'addMathBox') { + if (locale === 'en') { + return <>? + } else { + return ( + <> + ➕ čļŗã—įŽ—ãŒã§ãã‚‹č¨ˆįŽ—įŽą 🎁 + + ) + } + } + if (args.name === 'remainder') { + if (locale === 'en') { + return <>? + } else { + return <>å‰˛ãŖãŸã¨ããŽäŊ™ã‚Š + } + } + if (args.name === 'conditionalMathBox') { + if (locale === 'en') { + return <>? + } else { + return <>æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽą + } + } + if (args.name === 'whatHappensAtTheEndMathBoxQuestion') { + if (locale === 'en') { + return <>? + } else { + return ( + <> + ä¸ŠãŽč¨ˆįŽ—įŽąã‚’ + + すると、最įĩ‚įš„ãĢ下ぎようãĢãĒるでしょうかīŧŸ{' '} + 🤔 + + ) + } + } throw new Error() } diff --git a/src/components/Runners/Atkh.tsx b/src/components/Runners/Atkh.tsx new file mode 100644 index 000000000..67dd2047d --- /dev/null +++ b/src/components/Runners/Atkh.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/atkh.json' + +// @ts-ignore +const Atkh = () => + +export default Atkh diff --git a/src/components/Runners/Fdek.tsx b/src/components/Runners/Fdek.tsx new file mode 100644 index 000000000..3b9f31dbd --- /dev/null +++ b/src/components/Runners/Fdek.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/fdek.json' + +// @ts-ignore +const Fdek = () => + +export default Fdek diff --git a/src/components/Runners/Gruv.tsx b/src/components/Runners/Gruv.tsx new file mode 100644 index 000000000..e3b22aca3 --- /dev/null +++ b/src/components/Runners/Gruv.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/gruv.json' + +// @ts-ignore +const Gruv = () => + +export default Gruv diff --git a/src/components/Runners/Guhy.tsx b/src/components/Runners/Guhy.tsx new file mode 100644 index 000000000..f0590330a --- /dev/null +++ b/src/components/Runners/Guhy.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/guhy.json' + +// @ts-ignore +const Guhy = () => + +export default Guhy diff --git a/src/components/Runners/Iatt.tsx b/src/components/Runners/Iatt.tsx new file mode 100644 index 000000000..027d80bc5 --- /dev/null +++ b/src/components/Runners/Iatt.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/iatt.json' + +// @ts-ignore +const Iatt = () => + +export default Iatt diff --git a/src/components/Runners/Jfsd.tsx b/src/components/Runners/Jfsd.tsx new file mode 100644 index 000000000..f2cca9886 --- /dev/null +++ b/src/components/Runners/Jfsd.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/jfsd.json' + +// @ts-ignore +const Jfsd = () => + +export default Jfsd diff --git a/src/components/Runners/Lbua.tsx b/src/components/Runners/Lbua.tsx new file mode 100644 index 000000000..096b6030e --- /dev/null +++ b/src/components/Runners/Lbua.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/lbua.json' + +// @ts-ignore +const Lbua = () => + +export default Lbua diff --git a/src/components/Runners/Mjbi.tsx b/src/components/Runners/Mjbi.tsx new file mode 100644 index 000000000..657580f96 --- /dev/null +++ b/src/components/Runners/Mjbi.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/mjbi.json' + +// @ts-ignore +const Mjbi = () => + +export default Mjbi diff --git a/src/components/Runners/Nlfx.tsx b/src/components/Runners/Nlfx.tsx new file mode 100644 index 000000000..9caa58955 --- /dev/null +++ b/src/components/Runners/Nlfx.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/nlfx.json' + +// @ts-ignore +const Nlfx = () => + +export default Nlfx diff --git a/src/components/Runners/Novg.tsx b/src/components/Runners/Novg.tsx new file mode 100644 index 000000000..7ddee883d --- /dev/null +++ b/src/components/Runners/Novg.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/novg.json' + +// @ts-ignore +const Novg = () => + +export default Novg diff --git a/src/components/Runners/Plbv.tsx b/src/components/Runners/Plbv.tsx new file mode 100644 index 000000000..e8e6725c4 --- /dev/null +++ b/src/components/Runners/Plbv.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/plbv.json' + +// @ts-ignore +const Plbv = () => + +export default Plbv diff --git a/src/components/Runners/Qcmh.tsx b/src/components/Runners/Qcmh.tsx new file mode 100644 index 000000000..1eb282fcb --- /dev/null +++ b/src/components/Runners/Qcmh.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/qcmh.json' + +// @ts-ignore +const Qcmh = () => + +export default Qcmh diff --git a/src/components/Runners/Qscy.tsx b/src/components/Runners/Qscy.tsx new file mode 100644 index 000000000..bb9eae689 --- /dev/null +++ b/src/components/Runners/Qscy.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/qscy.json' + +// @ts-ignore +const Qscy = () => + +export default Qscy diff --git a/src/components/Runners/Rjfy.tsx b/src/components/Runners/Rjfy.tsx new file mode 100644 index 000000000..9a2cf6a39 --- /dev/null +++ b/src/components/Runners/Rjfy.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/rjfy.json' + +// @ts-ignore +const Rjfy = () => + +export default Rjfy diff --git a/src/components/Runners/Sewk.tsx b/src/components/Runners/Sewk.tsx new file mode 100644 index 000000000..b4a9ac558 --- /dev/null +++ b/src/components/Runners/Sewk.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/sewk.json' + +// @ts-ignore +const Sewk = () => + +export default Sewk diff --git a/src/components/Runners/Sffm.tsx b/src/components/Runners/Sffm.tsx new file mode 100644 index 000000000..f90793bec --- /dev/null +++ b/src/components/Runners/Sffm.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/sffm.json' + +// @ts-ignore +const Sffm = () => + +export default Sffm diff --git a/src/components/Runners/Toht.tsx b/src/components/Runners/Toht.tsx new file mode 100644 index 000000000..aacecff71 --- /dev/null +++ b/src/components/Runners/Toht.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/toht.json' + +// @ts-ignore +const Toht = () => + +export default Toht diff --git a/src/components/Runners/Uaha.tsx b/src/components/Runners/Uaha.tsx new file mode 100644 index 000000000..1b3463fbc --- /dev/null +++ b/src/components/Runners/Uaha.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/uaha.json' + +// @ts-ignore +const Uaha = () => + +export default Uaha diff --git a/src/components/Runners/Vozu.tsx b/src/components/Runners/Vozu.tsx new file mode 100644 index 000000000..4a711dc48 --- /dev/null +++ b/src/components/Runners/Vozu.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/vozu.json' + +// @ts-ignore +const Vozu = () => + +export default Vozu diff --git a/src/components/Runners/Wtax.tsx b/src/components/Runners/Wtax.tsx new file mode 100644 index 000000000..7be54ba14 --- /dev/null +++ b/src/components/Runners/Wtax.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/wtax.json' + +// @ts-ignore +const Wtax = () => + +export default Wtax diff --git a/src/components/Runners/Ymmm.tsx b/src/components/Runners/Ymmm.tsx new file mode 100644 index 000000000..c70c4e13d --- /dev/null +++ b/src/components/Runners/Ymmm.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/ymmm.json' + +// @ts-ignore +const Ymmm = () => + +export default Ymmm diff --git a/src/components/Runners/index.ts b/src/components/Runners/index.ts index d13070708..9b2f18e90 100644 --- a/src/components/Runners/index.ts +++ b/src/components/Runners/index.ts @@ -6,6 +6,7 @@ export { default as Ahsd } from 'src/components/Runners/Ahsd' export { default as Aimh } from 'src/components/Runners/Aimh' export { default as Ainx } from 'src/components/Runners/Ainx' export { default as Angp } from 'src/components/Runners/Angp' +export { default as Atkh } from 'src/components/Runners/Atkh' export { default as Awxz } from 'src/components/Runners/Awxz' export { default as Badn } from 'src/components/Runners/Badn' export { default as Bcae } from 'src/components/Runners/Bcae' @@ -66,6 +67,7 @@ export { default as Evqx } from 'src/components/Runners/Evqx' export { default as Exww } from 'src/components/Runners/Exww' export { default as Fapu } from 'src/components/Runners/Fapu' export { default as Fatm } from 'src/components/Runners/Fatm' +export { default as Fdek } from 'src/components/Runners/Fdek' export { default as Fhlw } from 'src/components/Runners/Fhlw' export { default as Fiab } from 'src/components/Runners/Fiab' export { default as Fivy } from 'src/components/Runners/Fivy' @@ -79,11 +81,13 @@ export { default as Gcnt } from 'src/components/Runners/Gcnt' export { default as Gmcn } from 'src/components/Runners/Gmcn' export { default as Goif } from 'src/components/Runners/Goif' export { default as Gopk } from 'src/components/Runners/Gopk' +export { default as Gruv } from 'src/components/Runners/Gruv' export { default as Gswd } from 'src/components/Runners/Gswd' export { default as Gszp } from 'src/components/Runners/Gszp' export { default as Gtdu } from 'src/components/Runners/Gtdu' export { default as Gtnr } from 'src/components/Runners/Gtnr' export { default as Gtwk } from 'src/components/Runners/Gtwk' +export { default as Guhy } from 'src/components/Runners/Guhy' export { default as Guuf } from 'src/components/Runners/Guuf' export { default as Gwtp } from 'src/components/Runners/Gwtp' export { default as Hbgo } from 'src/components/Runners/Hbgo' @@ -95,6 +99,7 @@ export { default as Hwtu } from 'src/components/Runners/Hwtu' export { default as Hxmk } from 'src/components/Runners/Hxmk' export { default as Hykj } from 'src/components/Runners/Hykj' export { default as Hzlj } from 'src/components/Runners/Hzlj' +export { default as Iatt } from 'src/components/Runners/Iatt' export { default as Idcf } from 'src/components/Runners/Idcf' export { default as Ielw } from 'src/components/Runners/Ielw' export { default as Ifwb } from 'src/components/Runners/Ifwb' @@ -117,6 +122,7 @@ export { default as Iwkx } from 'src/components/Runners/Iwkx' export { default as Iygh } from 'src/components/Runners/Iygh' export { default as Izgz } from 'src/components/Runners/Izgz' export { default as Jbam } from 'src/components/Runners/Jbam' +export { default as Jfsd } from 'src/components/Runners/Jfsd' export { default as Jlet } from 'src/components/Runners/Jlet' export { default as Jliw } from 'src/components/Runners/Jliw' export { default as Jmmp } from 'src/components/Runners/Jmmp' @@ -141,6 +147,7 @@ export { default as Ktyt } from 'src/components/Runners/Ktyt' export { default as Kupy } from 'src/components/Runners/Kupy' export { default as Kvso } from 'src/components/Runners/Kvso' export { default as Laea } from 'src/components/Runners/Laea' +export { default as Lbua } from 'src/components/Runners/Lbua' export { default as Ldox } from 'src/components/Runners/Ldox' export { default as Ldts } from 'src/components/Runners/Ldts' export { default as Lial } from 'src/components/Runners/Lial' @@ -161,6 +168,7 @@ export { default as Mhgm } from 'src/components/Runners/Mhgm' export { default as Mhwq } from 'src/components/Runners/Mhwq' export { default as Miez } from 'src/components/Runners/Miez' export { default as Mihy } from 'src/components/Runners/Mihy' +export { default as Mjbi } from 'src/components/Runners/Mjbi' export { default as Mnfh } from 'src/components/Runners/Mnfh' export { default as Mpal } from 'src/components/Runners/Mpal' export { default as Mrky } from 'src/components/Runners/Mrky' @@ -170,9 +178,11 @@ export { default as News } from 'src/components/Runners/News' export { default as Nfkp } from 'src/components/Runners/Nfkp' export { default as Ngus } from 'src/components/Runners/Ngus' export { default as Nicg } from 'src/components/Runners/Nicg' +export { default as Nlfx } from 'src/components/Runners/Nlfx' export { default as Nlxe } from 'src/components/Runners/Nlxe' export { default as Nmoc } from 'src/components/Runners/Nmoc' export { default as Nnhc } from 'src/components/Runners/Nnhc' +export { default as Novg } from 'src/components/Runners/Novg' export { default as Npfx } from 'src/components/Runners/Npfx' export { default as Nric } from 'src/components/Runners/Nric' export { default as Oiwu } from 'src/components/Runners/Oiwu' @@ -188,6 +198,7 @@ export { default as Ozbe } from 'src/components/Runners/Ozbe' export { default as Pbgd } from 'src/components/Runners/Pbgd' export { default as Peoq } from 'src/components/Runners/Peoq' export { default as Pgtx } from 'src/components/Runners/Pgtx' +export { default as Plbv } from 'src/components/Runners/Plbv' export { default as Plts } from 'src/components/Runners/Plts' export { default as Plxd } from 'src/components/Runners/Plxd' export { default as Pnob } from 'src/components/Runners/Pnob' @@ -197,6 +208,7 @@ export { default as Psqo } from 'src/components/Runners/Psqo' export { default as Pzui } from 'src/components/Runners/Pzui' export { default as Pzvr } from 'src/components/Runners/Pzvr' export { default as Pzwe } from 'src/components/Runners/Pzwe' +export { default as Qcmh } from 'src/components/Runners/Qcmh' export { default as Qdkf } from 'src/components/Runners/Qdkf' export { default as Qgun } from 'src/components/Runners/Qgun' export { default as Qifg } from 'src/components/Runners/Qifg' @@ -205,18 +217,22 @@ export { default as Qmof } from 'src/components/Runners/Qmof' export { default as Qoms } from 'src/components/Runners/Qoms' export { default as Qpjt } from 'src/components/Runners/Qpjt' export { default as Qpkm } from 'src/components/Runners/Qpkm' +export { default as Qscy } from 'src/components/Runners/Qscy' export { default as Qsfp } from 'src/components/Runners/Qsfp' export { default as Qvxe } from 'src/components/Runners/Qvxe' export { default as Qwke } from 'src/components/Runners/Qwke' export { default as Qxgl } from 'src/components/Runners/Qxgl' export { default as Rceu } from 'src/components/Runners/Rceu' export { default as Repd } from 'src/components/Runners/Repd' +export { default as Rjfy } from 'src/components/Runners/Rjfy' export { default as Rmsd } from 'src/components/Runners/Rmsd' export { default as Rome } from 'src/components/Runners/Rome' export { default as Rqdn } from 'src/components/Runners/Rqdn' export { default as Rqjo } from 'src/components/Runners/Rqjo' export { default as Rreb } from 'src/components/Runners/Rreb' export { default as Rzbq } from 'src/components/Runners/Rzbq' +export { default as Sewk } from 'src/components/Runners/Sewk' +export { default as Sffm } from 'src/components/Runners/Sffm' export { default as Sfop } from 'src/components/Runners/Sfop' export { default as Sgfj } from 'src/components/Runners/Sgfj' export { default as Sisn } from 'src/components/Runners/Sisn' @@ -236,8 +252,10 @@ export { default as Tiok } from 'src/components/Runners/Tiok' export { default as Tkbr } from 'src/components/Runners/Tkbr' export { default as Tkqr } from 'src/components/Runners/Tkqr' export { default as Tntc } from 'src/components/Runners/Tntc' +export { default as Toht } from 'src/components/Runners/Toht' export { default as Ttvy } from 'src/components/Runners/Ttvy' export { default as Tuqr } from 'src/components/Runners/Tuqr' +export { default as Uaha } from 'src/components/Runners/Uaha' export { default as Udic } from 'src/components/Runners/Udic' export { default as Udvh } from 'src/components/Runners/Udvh' export { default as Uemm } from 'src/components/Runners/Uemm' @@ -255,6 +273,7 @@ export { default as Uwma } from 'src/components/Runners/Uwma' export { default as Vegw } from 'src/components/Runners/Vegw' export { default as Vjaa } from 'src/components/Runners/Vjaa' export { default as Vkpm } from 'src/components/Runners/Vkpm' +export { default as Vozu } from 'src/components/Runners/Vozu' export { default as Vpjw } from 'src/components/Runners/Vpjw' export { default as Vpmj } from 'src/components/Runners/Vpmj' export { default as Vqcw } from 'src/components/Runners/Vqcw' @@ -270,6 +289,7 @@ export { default as Wcwd } from 'src/components/Runners/Wcwd' export { default as Wdol } from 'src/components/Runners/Wdol' export { default as Woft } from 'src/components/Runners/Woft' export { default as Wqdb } from 'src/components/Runners/Wqdb' +export { default as Wtax } from 'src/components/Runners/Wtax' export { default as Wunw } from 'src/components/Runners/Wunw' export { default as Wxqy } from 'src/components/Runners/Wxqy' export { default as Xcnu } from 'src/components/Runners/Xcnu' @@ -291,6 +311,7 @@ export { default as Xzqu } from 'src/components/Runners/Xzqu' export { default as Yehl } from 'src/components/Runners/Yehl' export { default as Yklt } from 'src/components/Runners/Yklt' export { default as Ylil } from 'src/components/Runners/Ylil' +export { default as Ymmm } from 'src/components/Runners/Ymmm' export { default as Ysji } from 'src/components/Runners/Ysji' export { default as Ytcf } from 'src/components/Runners/Ytcf' export { default as Yvia } from 'src/components/Runners/Yvia' diff --git a/src/components/Twemoji/1f5d3.tsx b/src/components/Twemoji/1f5d3.tsx new file mode 100644 index 000000000..89a5639c3 --- /dev/null +++ b/src/components/Twemoji/1f5d3.tsx @@ -0,0 +1,29 @@ +import * as React from 'react' + +const Svg1F5D3 = (props: React.SVGProps) => ( + + + + + + + + +) + +export default Svg1F5D3 diff --git a/src/components/Twemoji/39-20e3.tsx b/src/components/Twemoji/39-20e3.tsx new file mode 100644 index 000000000..a7210fbe8 --- /dev/null +++ b/src/components/Twemoji/39-20e3.tsx @@ -0,0 +1,16 @@ +import * as React from 'react' + +const Svg3920E3 = (props: React.SVGProps) => ( + + + + +) + +export default Svg3920E3 diff --git a/src/components/VariableExpressionBox.tsx b/src/components/VariableExpressionBox.tsx index 18a22b007..69b01b853 100644 --- a/src/components/VariableExpressionBox.tsx +++ b/src/components/VariableExpressionBox.tsx @@ -53,28 +53,56 @@ export const variableExpressionBoxFontSize = ( xxs: fontSizes(1) }[size]) -const SecretCodeLabel = ({ number }: { number?: number }) => ( +const SecretCodeLabelWrapper = ({ + children, + operator +}: { + operator?: boolean + children: React.ReactNode +}) => ( + {children} + +) + +const SecretCodeLabel = ({ number }: { number?: number }) => ( + {number && <> – {number}} - + +) + +const RemainderLabel = () => ( + + + ) +const shorthandBinary = ( + shorthandBinary: NonNullable +) => { + if (shorthandBinary === 'mult') { + return 'âœ–ī¸' + } else { + return '➕' + } +} + const VariableEmoji = ({ expression }: VariableExpressionBoxProps) => { const { hideBottomRightBadges, bottomRightBadgeOverrides } = useContext( ExpressionRunnerContext @@ -86,6 +114,12 @@ const VariableEmoji = ({ expression }: VariableExpressionBoxProps) => { ) + } else if (expression.shorthandBinary === 'remainder') { + return ( +
+ +
+ ) } else if (expression.name === 'abbreviated') { return (
@@ -142,7 +176,7 @@ const VariableEmoji = ({ expression }: VariableExpressionBoxProps) => { {expression.highlightType === 'removed' ? 'đŸ’Ĩ' : expression.shorthandBinary !== undefined - ? 'âœ–ī¸' + ? shorthandBinary(expression.shorthandBinary) : letterEmojiMapping[expression.name]} )} diff --git a/src/contents/1.v2.jp.tsx b/src/contents/1.v2.jp.tsx index 6b6d4fb2b..99a0e4b88 100644 --- a/src/contents/1.v2.jp.tsx +++ b/src/contents/1.v2.jp.tsx @@ -1,345 +1,334 @@ import React from 'react' import { - Em, - Img, P, - PFullWidth, - Hr, Strong, - InlineHeader + Em, + InlineHeader, + Ul, + UlLi } from 'src/components/ContentTags' -import Emoji from 'src/components/Emoji' -import EmojiWithText from 'src/components/EmojiWithText' -import EmojiSeparator from 'src/components/EmojiSeparator' -import YesNoButtons from 'src/components/YesNoButtons' -import NextLessonButton from 'src/components/NextLessonButton' import EpisodeCardList from 'src/components/EpisodeCardList' import H from 'src/components/H' -import ExpressionRunnerSeparator from 'src/components/ExpressionRunnerSeparator' +import EmojiSeparator from 'src/components/EmojiSeparator' +import Emoji from 'src/components/Emoji' +import EmojiNumber from 'src/components/EmojiNumber' import * as R from 'src/components/Runners' +import { InlineEmojiBoxesForCondition } from 'src/components/InlineEmojiBoxes' +import YesNoButtons from 'src/components/YesNoButtons' +import NextLessonButton from 'src/components/NextLessonButton' export default () => ( , + title: <>ã“ãŽčŠąã¯ãƒ•ã‚Ŗã‚¯ã‚ˇãƒ§ãƒŗã§ã™, content: ( <>

- åŊ“č¨˜äē‹ã§ã¯ã€ã¨ã‚るパã‚ēãƒĢ - をäŊŋãŖãĻ - - とはäŊ•かをå­Ļんでいきぞす。 äģŠå›žã¯ã€ - こぎパã‚ēãƒĢぎåŸēæœŦæŗ•å‰‡ - ã‚’į´šäģ‹ã—ぞす。 -

-

- ぞずはじめãĢã“ãĄã‚‰ãŽå†™įœŸã‚’ã”čĻ§ãã ã•ã„ã€‚į­†č€…ãŽåœ°å…ƒãƒģæ¨ĒæĩœãŽå´Žé™Ŋčģ’ã§č˛ŠåŖ˛ã•ã‚ŒãĻいるおåŧåŊ“です(æ’ŽåŊąã¯į­†č€…)。 -

- - Bento Boxes - -

- ãĒぜおåŧåŊ“ãŽå†™įœŸã‚’ãŠčĻ‹ã›ã—ãŸã‹ã¨ã„ã†ã¨ã€äģŠå›žį´šäģ‹ã™ã‚‹ãƒ‘ã‚ēãƒĢãĢは - - という名前がついãĻいるからです。 + åŊ“č¨˜äē‹ã¯ã‚†ã‚‹ã„į‰ŠčĒžčĒŋ + ã§čŠąã‚’é€˛ã‚ãĻã„ããžã™ã€‚ãĄãĒãŋãĢã€ã“ãŽčŠąã¯ãƒ•ã‚Ŗã‚¯ã‚ˇãƒ§ãƒŗã§ã™ã€‚ + 😉

-

- - がおんãĒもぎか、čĒŦ明しぞすねīŧ + ãžãšã¯ã€ã“ãŽį‰ŠčĒžãĢį™ģ場する「 + č¨ˆįŽ—įŽąã€ãŽčŠąã‚’ã—ãžã—ã‚‡ã†ã€‚

+ ) }, { - title: ( - <> - これが - - - ), + title: <>č¨ˆįŽ—įŽą, content: ( <>

- ä¸‹ãŽå›ŗãŒã€ - - です。原際ぎåŧåŊ“įŽąãŽã‚ˆã†ãĢ、 - - å››č§’ãŽä¸­ãĢいくつかマ゚があり、それぞれぎマ゚ぎ中ãĢæ–™į†ãŒå…ĨãŖãĻいぞす - - 。 + むかしむかしあるところãĢã€ã€Œč¨ˆįŽ—įŽą + 」とå‘ŧばれるäžŋ刊ãĒé“å…ˇãŒã‚ã‚Šãžã—ãŸã€‚ + č¨ˆįŽ—įŽąã¯ + さぞざぞãĒč¨ˆįŽ—ã‚’č‡Ēå‹•ã§čĄŒãŖãĻãã‚Œã‚‹é“å…ˇ + です。äēēã€…ã¯č¨ˆįŽ—ãŒã¨ãĻもč‹Ļæ‰‹ã ãŖãŸãŽã§ã€ã„ã¤ã‚‚ã“ãŽ + č¨ˆįŽ—įŽąãĢé ŧã‚ŠãŖãąãĒしでした。

+

- 䞋そぎ1: 上æŽĩãĢは - - 、下æŽĩãĢは - - がãĩたつå…ĨãŖãĻいぞす。 + č¨ˆįŽ—įŽąãĢはさぞざぞãĒį¨ŽéĄžãŒã‚ã‚Šãžã™ã€‚ãžãšã“ãĄã‚‰ãŒã€ã€Œ + čļŗã—įŽ—ãŒã§ãã‚‹č¨ˆįŽ—įŽąã€ã§ã™:

- +

- 「å¯ŋ司とã‚ĩãƒŗãƒ‰ã‚¤ãƒƒãƒãŒåŒæ™‚ãĢå…ĨãŖãĻいるåŧåŊ“įŽąãĒんãĻあるぎīŧŸã€ã¨ã„ã†ãƒ„ãƒƒã‚ŗãƒŸã¯į„Ąã—ãŽæ–šå‘ã§ãŠéĄ˜ã„ã—ãžã™ã€‚ + 一į•Ē上と下ãĢハテナマãƒŧク ❓{' '} + ãŒã‚ã‚Šã€įœŸã‚“ä¸­ãĢčļŗã—įŽ—ãŽč¨˜åˇ ➕ がありぞすね。

- - - ) - }, - { - title: ( - <> - ぞだあるよ - - - ), - content: ( - <>

- さらãĢいくつか、 - - ãŽäž‹ã‚’į´šäģ‹ã—ãĻいきぞす: -

-

- 䞋そぎ2: 上æŽĩãĢは - - 、下æŽĩãĢは - と - - がå…ĨãŖãĻいぞす。 -

- -

マクドナãƒĢãƒ‰ãŽãƒĄãƒ‹ãƒĨãƒŧãĢありそうãĒæ–™į†ã°ã‹ã‚Šã§ã™ã­īŧ

-
-

- 䞋そぎ3: 上æŽĩãĢは - - 、下æŽĩãĢは - - がãĩたつå…ĨãŖãĻいぞす。 -

- -

ã“ãĄã‚‰ã¯ã€ã‚¤ã‚ŋãƒĒã‚ĸãƒŗãĒåŧåŊ“įŽąã§ã™ã­īŧ

-
-

- 䞋そぎ4: 上æŽĩãĢは - - 、下æŽĩãĢは - と - - がå…ĨãŖãĻいぞす。 -

- -

ã“ãĄã‚‰ã¯æ™Žé€šãĢįžŽå‘ŗã—ãã†ã§ã™ã­ã€‚

+ こぎ ❓{' '} + ぎ部分ãĢは、それぞれ数字をå…Ĩれることができぞす。たとえば{' '} + ã‚’ä¸Ąæ–šãĢå…ĨれãĻãŋぞしょう。 +

+ +

+ そしãĻã€ãã‚Œãžã‚ŒãŽč¨ˆįŽ—įŽąãĢは + + + ボã‚ŋãƒŗ + + がついãĻおり、それをæŠŧã™ã¨č¨ˆįŽ—ãŒåŽŸčĄŒã•ã‚Œãžã™ã€‚čŠĻしãĢã€ä¸‹ãŽč¨ˆįŽ—įŽąã§ + + + +

+ +

+ これで ➕{' '} + {' '} + ãŒč¨ˆįŽ—ã§ããžã—ãŸīŧæŦĄã¯ã€čļŗã—įŽ—äģĨå¤–ãŽč¨ˆįŽ—įŽąã‚‚čĻ‹ãĻいきぞしょう。 +

) }, { - title: ( - <> - - - ), + title: <>čļŗã—įŽ—äģĨå¤–ãŽč¨ˆįŽ—įŽą, content: ( <>

- それぞれぎ - - ãĢは、 - - がありぞす。 + įļšã„ãĻã“ãĄã‚‰ãŒã€ã€ŒæŽ›ã‘įŽ—ãŒã§ãã‚‹č¨ˆįŽ—įŽą + 」です。 + + + ボã‚ŋãƒŗ + + をæŠŧせば、 + âœ–ī¸{' '} + ã‚’č¨ˆįŽ—ã—ãĻくれぞす。

+

- 䞋そぎ1: ã“ãĄã‚‰ã¯ã€æœ€åˆãĢį´šäģ‹ã—た - - です。 - + ごčĻ§ãŽé€šã‚Šã€į­”ãˆã¯ ãĢãĒりぞした。

- - - ), - footer: { - content: ( - <> -

- {' '} - をæŠŧせばもう一åēĻæœ€åˆã‹ã‚‰åŽŸčĄŒã§ããžã™ã€‚ -

- - ) - } - }, - { - title: ( - <> - - するとこうãĒりぞす - - ), - content: ( - <>

- おうやら、さきãģおぎ - - は、 - - すると、最įĩ‚įš„ãĢ - - だけãĢãĒるようです。 + č¨ˆįŽ—įŽąã¯äģ–ãĢもåŧ•ãįŽ—ã‚„å‰˛ã‚ŠįŽ—ãŒã§ããžã™ãŒã€į‰šãĢčˆˆå‘ŗæˇąã„ã‚ã‘ã§ã‚‚ãĒいぎで、時間ぎéƒŊ合䏊ᜁį•Ĩしぞす。 + 😉

+

- 䞋そぎ1: + ä¸€æ–šã€å°‘ã—ã ã‘čˆˆå‘ŗæˇąã„ãŽãŒã“ãĄã‚‰ãŽã€Œ + å‰˛ãŖãŸã¨ããŽäŊ™ã‚ŠãŒã‚ã‹ã‚‹č¨ˆįŽ—įŽąã€ã§ã™ã€‚

- - - +

- 原はこれ、 - - ãĢåž“ãŖãĻいるんです。 + ä¸ŠãŽč¨ˆįŽ—įŽąã¯ã€ 「 + + を {' '} + ã§å‰˛ãŖãŸã¨ããŽäŊ™ã‚Š + + ã€ã‚’č¨ˆįŽ—ã—ãĻくれぞす。これをäŊŋえば、たとえば「 + 5äēēぎグãƒĢãƒŧプを2äēēずつãĢ分けたとき、äģ˛é–“はずれがå‡ēるかīŧŸ + 」が分かるわけです。 +

+ +

+ ã€Œãã‚Œãã‚‰ã„æš—įŽ—ã§ãã‚‹ã ã‚ã† 😡 + 」と思われるかもしれぞせん。でも、 + + č¨ˆįŽ—įŽąãŒã‚ã‚‹ä¸–į•ŒãŽäēē々はãŋãĒč¨ˆįŽ—ãŒč‹Ļæ‰‹ã§ã€į°Ąå˜ãĒč¨ˆįŽ—ã§ã‚‚č¨ˆįŽ—įŽąãĢé ŧãŖãĻいた + + ぎです。 + 😉

- ããŽæŗ•å‰‡ã‚’čĒŦ明する前ãĢ、äģ–ぎ - - ã‚‚åŽŸčĄŒã—ãĻãŋぞしょう。 + では、先ãģãŠãŽč¨ˆįŽ—įŽąã‚’ + + + しãĻãŋぞしょう。 + +

+ +

+ を {' '} + ã§å‰˛ã‚‹ã¨ã€Œ + äŊ™ã‚Š + 」ãĢãĒã‚‹ãŽã§ã€č¨ˆįŽ—įŽąãĢは + + äŊ™ã‚ŠãŽ 1ī¸âƒŖ + {' '} + が掋りぞした。 +

+

+ 先ãģおぎ䞋ãĢæˆģると、5äēēぎグãƒĢãƒŧプを2äēēずつãĢåˆ†ã‘ã‚Œã°ã€ã˛ã¨ã‚ŠãŒäģ˛é–“はずれãĢãĒりぞす。 + 😭 +

+ +

+ ã“ã“ãžã§ã¯ã€å˜į´”ãĒč¨ˆįŽ—ãŒã§ãã‚‹č¨ˆįŽ—įŽąã‚’į´šäģ‹ã—ãĻきぞした。æŦĄã¯ã€ã‚‚ã†å°‘ã—č¤‡é›‘ãĒč¨ˆįŽ—įŽąã‚’čĻ‹ãĻãŋぞしょうīŧ + 😉

) }, { - title: ( - <> - äģ–ぎも - - しãĻãŋぞしょう - - ), + title: <>æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽą, content: ( <>

- 先ãģãŠį´šäģ‹ã—た3つぎ - - を、それぞれ - - しãĻãŋぞしょうīŧ + æŦĄã¯ã€ã“ãĄã‚‰ãŽč¨ˆįŽ—įŽąã‚’ã”čĻ§ãã ã•ã„ã€‚ã“ãŽč¨ˆįŽ—įŽąãĢは「 + æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽą + 」という名がついãĻãŠã‚Šã€åå‰ãŽį†į”ąã¯åžŒãģおčĒŦ明しぞす。

+

- 䞋そぎ2: + ã€ŒæĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąã€ãĢは + + ハテナマãƒŧク ❓{' '} + が3つあり、それぞれåˇĻį̝ãĢé•ã†č‰˛ã¨ã€äģĨä¸‹ãŽä¸‰į¨ŽéĄžãŽå°ãŒã¤ã„ãĻいぞす + + ã€‚ã„ãŖãŸã„ãŠã‚“ãĒč¨ˆįŽ—ãŒã§ãã‚‹ãŽã§ã—ã‚‡ã†īŧŸ + 🤔

- +

- 䞋そぎ3: + とりあえず、{' '} + + それぞれぎ ❓ ãĢ遊åŊ“ãĒ数字をå…Ĩれ、 + + + したらおうãĒるかčŠĻしãĻãŋぞしょう。

-

- 䞋そぎ4: + čŠĻしãĢ、上から順ãĢ {' '} + {' '} + をå…ĨれãĻãŋたぎで、 +

- - - ), - footer: { - content: ( +

- おれも - - ãĢåž“ãŖãĻいぞす。おんãĒæŗ•å‰‡ã‹ã€č€ƒãˆãŋãĻくださいīŧ + į­”ãˆã¯ {' '} + ãĢãĒりぞした。では、おうしãĻこうãĒãŖãŸã‹čĒŦ明しぞしょうīŧ

- ) - } + + ) }, { title: ( <> - + įœŸã‚“ä¸­ãŒ かおうか ), content: ( <> -

それぞれ、こぎようãĒįĩæžœãĢãĒりぞしたīŧ

- 䞋そぎ2: + ã€ŒæĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąã€ã¯ãžãšã€ + + įœŸã‚“ä¸­ãŽéƒ¨åˆ† {' '} + ãĢå…ĨãŖãĻいる数字が かおうか + + チェックしぞす。

- - - +

- 䞋そぎ3: + įœŸã‚“ä¸­ãŽéƒ¨åˆ† {' '} + ãĢå…ĨãŖãĻいる数字は ãĒぎで、{' '} + + ではありぞせん。 +

- - -

- 䞋そぎ4: + こぎようãĢįœŸã‚“ä¸­ãŒ ではãĒい場合、 + + 上ぎ {' '} + ãĢå…ĨãŖãĻいる数字が最įĩ‚įš„ãĢ掋りぞす。 +

- - - - - ), - footer: { - content: ( +

- おれも - - ãĢåž“ãŖãĻいぞす。おんãĒæŗ•å‰‡ã‹ã€č€ƒãˆãŋãĻくださいīŧ + だから、 上ぎ {' '} + ãĢå…ĨãŖãĻいる が掋る、というわけです。

- ) - } + + + ) }, { - title: <>æŗ•å‰‡ãŒã‚ã‹ã‚Šãžã—ãŸã‹īŧŸ, + title: ( + <> + įœŸã‚“ä¸­ãŒ である場合 + + ), content: ( <> -

- ä¸Šč¨˜ã‚ã‚ã›ãĻ4į¨ŽéĄžãŽ - を - - しぞしたが、おれも - - ãĢåž“ãŖãĻいぞす。 + ã§ã¯ã€ã“ãĄã‚‰ãŽã€ŒæĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽą + 」ぎ場合はおうでしょうīŧŸ

+

- ããŽæŗ•å‰‡ãŒã‚ã‹ã‚Šãžã—ãŸã‹īŧŸ - もう一åēĻ4つぎ䞋をčĻ‹ãĻã€č€ƒãˆãĻãŋãĻくださいīŧ + ã“ãĄã‚‰ã‚‚ã€įœŸã‚“ä¸­ãŽæ•°å­—ãŒ {' '} + かおうかチェックしぞす。

+

- ãĒんとãĒくä爿ƒŗãŒã¤ã„ãŸã‚‰ã€åˆãŖãĻいるかおうかæŦĄãŽ - - でチェックしãĻãŋぞしょうīŧ + äģŠå›žã¯įœŸã‚“中が {' '} + ですね。こぎ場合は前回と逆で、 + + 下ぎ {' '} + ãĢå…ĨãŖãĻいる数字が最įĩ‚įš„ãĢ掋りぞす。 +

+

- ã•ãŖãąã‚Šåˆ†ã‹ã‚‰ãĒくãĻもごåŋƒé…ãĒくīŧ - ã¨ã‚Šã‚ãˆãšå‹˜ã§į­”ãˆãĻãŋãĻãã ã•ã„ã€‚đŸ˜‰ + だから、下ぎ {' '} + ãĢå…ĨãŖãĻいる が掋る、というわけです。

) }, { - type: 'yesNoQuiz', + type: 'summary', title: ( <> - - 、そぎ1 + ), content: ( <>

- {' '} - ã“ãĄã‚‰ãĢ、ヘãƒĢã‚ˇãƒŧãĒé‡ŽčœãŒå…ĨãŖãĻいる - - がありぞす。 + ãžã¨ã‚ã‚‹ã¨ã€ã“ãŽã€ŒæĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽą + ã€ãŽæŗ•å‰‡ã¯äģĨ下ぎ通りです。

- +

- これを - - すると、最įĩ‚įš„ãĢ下ぎようãĢãĒるでしょうかīŧŸ - ã“ã‚Œãžã§ãŽæŗ•å‰‡ã‹ã‚‰ä爿ƒŗã—ãĻãŋãĻください。 + + ãžãšã€įœŸã‚“ä¸­ãŽ {' '} + ぎ中ãĢある数字が {' '} + かおうかチェックしぞす。 + +

+
    + + + もし ãĒら、 下ぎ{' '} + {' '} + ぎ中ãĢある数字が掋りぞす。 + + + + + もし でãĒければ、 上ぎ{' '} + {' '} + ぎ中ãĢある数字が掋りぞす。 + + +
+ +

+ 「 + + įœŸã‚“ä¸­ãŒ かおうかīŧŸ + + 」という「 + æĄäģļ」ãĢã‚ˆãŖãĻ、上下ãĢ「 + åˆ†å˛ã€ã™ã‚‹ãŽã§ã€ã€ŒæĄäģļåˆ†å˛ + ãŽč¨ˆįŽ—įŽąã€ã¨ã„ã†åå‰ãŒã¤ã„ãĻいるぎです。

- - ) }, @@ -348,68 +337,71 @@ export default () => ( title: ( <> - 、そぎ2 ), content: ( <>

- ã“ãĄã‚‰ãŽ - を - - すると、 + ãĄã‚ƒã‚“ã¨į†č§Ŗã§ããŸã‹ãŠã†ã‹ã€ + + でįĸēかめãĻãŋぞしょう。 + :

- +

- 最įĩ‚įš„ãĢ下ぎようãĢãĒるでしょうかīŧŸ - ã“ã‚Œãžã§ãŽæŗ•å‰‡ã‹ã‚‰ä爿ƒŗã—ãĻãŋãĻください。 +

- + ) }, { - title: <>į­”ãˆåˆã‚ã›, + title: ( + <> + + + ), content: ( <> -

ãã‚Œãžã‚ŒåŽŸčĄŒã™ã‚‹ã¨ã€æŦĄãŽã‚ˆã†ãĢãĒりぞす。

- 䞋そぎ5: + +

- +

- つぞり - - 1å•į›ŽãŽ - - - でした。 + つぞり ではãĒく、 + ãĢãĒりぞした。

- 䞋そぎ6: + ぎ中ãĢは{' '} + がå…ĨãŖãĻいるぎで、下ぎ + ぎ中ãĢある{' '} + が掋るぎです。

- +

- つぞり - - 2å•į›ŽãŽ - - {' '} - ( - ではãĒい) でした。 + äģĨä¸Šã€æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąãŽį´šäģ‹ã§ã—たīŧđŸ˜‰

) }, { - title: <>æŗ•å‰‡ã¯æŦĄãŽãƒšãƒŧジãĢ, + title: <>äŊ•ぎåŊšãĢįĢ‹ã¤ãŽīŧŸ, content: ( <>

- æŦĄãŽãƒšãƒŧジで - - ãŽæŗ•å‰‡ã‚’į´šäģ‹ã—ぞす。ä爿ƒŗãŒåŊ“ãŸãŖãŸæ–šã‚‚ã€ã‚ˆãåˆ†ã‹ã‚‰ãĒã‹ãŖãŸæ–šã‚‚ã€ãœã˛æŦĄãĢé€˛ã‚“ã§ãŋãĻください。 + では、 + + ã“ãŽæĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąã¯ã„ãŖãŸã„äŊ•ぎåŊšãĢįĢ‹ã¤ãŽã§ã—ã‚‡ã†ã‹īŧŸ + + äēēã€…ã¯ã€æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąã‚’ãŠã‚“ãĒį”¨é€”ã§äŊŋãŖãĻいたぎでしょうīŧŸ + 🤔 +

+ +

+ というわけでæŦĄãŽå›žã§ã¯ã€æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąãŽå…ˇäŊ“įš„ãĒäŊŋį”¨äž‹ + ã‚’į´šäģ‹ã—ぞすīŧ

diff --git a/src/contents/2.v2.jp.tsx b/src/contents/2.v2.jp.tsx index 49b841533..24497bfa1 100644 --- a/src/contents/2.v2.jp.tsx +++ b/src/contents/2.v2.jp.tsx @@ -1,418 +1,123 @@ import React from 'react' -import { P, Em, Strong, InlineHeader } from 'src/components/ContentTags' +import { + P, + Em, + Strong, + InlineHeader, + Ul, + UlLi, + Hr +} from 'src/components/ContentTags' import Emoji from 'src/components/Emoji' import EmojiSeparator from 'src/components/EmojiSeparator' -import BottomRightBadge from 'src/components/BottomRightBadge' -import NextLessonButton from 'src/components/NextLessonButton' -import EmojiWithText from 'src/components/EmojiWithText' -import YesNoButtons from 'src/components/YesNoButtons' +import EmojiNumber from 'src/components/EmojiNumber' import EpisodeCardList from 'src/components/EpisodeCardList' import H from 'src/components/H' -import episodeEmojis from 'src/lib/episodeEmojis' +import { InlineEmojiBoxesForCondition } from 'src/components/InlineEmojiBoxes' import ExpressionRunnerSeparator from 'src/components/ExpressionRunnerSeparator' import * as R from 'src/components/Runners' -export const BasicRules = ({ - includeFuncUnbound -}: { - includeFuncUnbound: boolean -}) => ( - <> -

- 1. 印をつける:{' '} - {' '} - {' '} - {includeFuncUnbound && ( - <> - {' '} - - )} - -

- -

- 2. ä¸€č‡´ãƒã‚§ãƒƒã‚¯:{' '} - {' '} - {' '} - ✅ -

- -

- 3. ã‚ŗãƒ”ãƒŧする:{' '} - {' '} - â†˜ī¸{' '} - -

- -

- 4. æļˆã™: đŸ’Ĩ{' '} - {' '} - -

- - - - -) - -BasicRules.defaultProps = { - includeFuncUnbound: false -} - export default () => ( -

- - ã•ãŖããå‰å›žį´šäģ‹ã—た - - ãŽæŗ•å‰‡ đŸ¤Ģ ã‚’į´šäģ‹ã—ãĻいきぞしょう。 -

-

- ここでは、前回ぎはじめãĢį™ģ場したåŧåŊ“įŽą(䞋そぎ1 - )をäŊŋãŖãĻčĒŦ明しぞす: -

- - - - - ) - }, - { - title: 'æŗ•å‰‡ããŽ1: 印をつける', - content: ( - <> -

- ぞず、 - - ä¸ŠãŽæ–™į†ãĢは{' '} - - 、åˇĻãŽæ–™į†ãĢは - - ã€åŗãŽæ–™į†ãĢは - - ぎ印をつけぞす。 - -

- , - , - - ]} - /> -

- -

- -

- ãĢ - - ぎ印が、下ぎ - - ãĩたつãĢそれぞれ - と - - ぎ印がつきぞした。 -

- - ) - }, - { - title: <>æŗ•å‰‡ããŽ2: ä¸€č‡´ãƒã‚§ãƒƒã‚¯, - content: ( - <> -

- įļšã„ãĻ、 - - と - - ãŒä¸€č‡´ã™ã‚‹ã‹ãƒã‚§ãƒƒã‚¯ã—ã€ä¸€č‡´ã—ãŸæ–™į†ãĢは、 - ✅をäģ˜ã‘ぞす。 - -

- , - , - ✅ - ]} - /> -

- -

- -

- と - ぎ - が - しぞした。 -

- - ) - }, - { - title: <>æŗ•å‰‡ããŽ3: ã‚ŗãƒ”ãƒŧする, + title: <>2月ãĢはäŊ•æ—ĨあるīŧŸ, content: ( <>

- įļšã„ãĻ、 + äģŠå›žã¯ã€ - - ãŽæ–™į†ã‚’ã€ - - した - - ぎ部分ãĢã‚ŗãƒ”ãƒŧしぞす。 + å‰å›žį´šäģ‹ã—ãŸč¨ˆįŽ—įŽąã§č§Ŗãã“ã¨ãŒã§ãã‚‹å•éĄŒã‚’į´šäģ‹ã—ぞす -

- , - â†˜ī¸, - - ]} - /> -

- -

- -

- ぎ - が - ãĢ - - されぞした。 -

- - ) - }, - { - title: <>æŗ•å‰‡ããŽ4: æļˆã™, - content: ( - <> -

- 最垌ãĢ、 + 。それは、äģĨ下ぎようãĒå•éĄŒã§ã™ã€‚ +

+
+

+ äēē々は毎嚴、「 + äģŠåš´ãŽ2月ãĢはäŊ•æ—ĨあるんだろうīŧŸ + ã€ã¨ã„ã†į–‘å•ãĢ悊ぞされãĻいぞした。 +

+ +

į­”ãˆã¯ã‚‚ãĄã‚ã‚“ã€äģĨ下ぎ通りです。

+
    + + + うるう嚴ぎ場合、2月ãĢは29æ—Ĩある。 + + + + + それäģĨ外ぎ嚴ぎ場合、2月ãĢは28æ—Ĩある。 + + +
+

+ では、 - と - - がæļˆãˆãžã™ã€‚ + うるう嚴かおうかを判åˆĨするãĢはおうすればいいでしょうīŧŸ

- đŸ’Ĩ, - , - - ]} - /> -

- -

- +

- そしãĻ、最įĩ‚įš„ãĢ - - だけãĢãĒりぞす。 + うるう嚴は、åŸēæœŦįš„ãĢ「4ã§å‰˛ã‚Šåˆ‡ã‚Œã‚‹åš´ + ã€ã§ã™ã€‚ãŸã¨ãˆã°æąäēŦã‚ĒãƒĒãƒŗãƒ”ãƒƒã‚¯ãŒčĄŒã‚ã‚Œã‚‹2020嚴は、2020が4ã§å‰˛ã‚Šåˆ‡ã‚Œã‚‹ãŽã§ã†ã‚‹ã†åš´ã¨ãĒりぞす。

- -

äģĨ上ですīŧį°Ąå˜ã ãŖãŸã§ã—ょうīŧŸ

- - ) - }, - { - title: ( - <> - ), - type: 'summary', - content: ( - <> - - - ) + footer: { + content: ( + <> +

+ ãĄãĒãŋãĢ: 䞋外としãĻ、「 + 100ã§å‰˛ã‚Šåˆ‡ã‚ŒãĻ、400ã§å‰˛ã‚Šåˆ‡ã‚ŒãĒい嚴 + 」はうるう嚴ではありぞせん。たとえば2100嚴は、100ã§å‰˛ã‚Šåˆ‡ã‚ŒãĻ400ã§å‰˛ã‚Šåˆ‡ã‚ŒãĒいぎで、うるう嚴ではありぞせん。 +

+

+ ただéƒŊåˆä¸Šã€ã“ãŽäž‹å¤–ã¯ã“ã“ã§ã¯į„ĄčĻ–ã™ã‚‹ã“ã¨ãĢしぞす。 + 😉 +

+ + ) + } }, { - title: <>ä¸€č‡´ã—ãĒã‹ãŖãŸã‚‰īŧŸ, + title: <>č¨ˆįŽ—įŽąã‚’äŊŋうと, content: ( <>

- - もし - と - - ãŒä¸€č‡´ã—ãĒã‹ãŖãŸã‚‰ãŠã†ã™ã‚‹ãŽã§ã—ã‚‡ã†ã‹īŧŸ - + + äēēã€…ã¯č¨ˆįŽ—ãŒč‹Ļæ‰‹ã ãŖãŸãŽã§ã€č¨ˆįŽ—įŽąã‚’äŊŋãŖãĻ「 + 2月ãĢäŊ•æ—Ĩã‚ã‚‹ã‹ã€ã‚’č¨ˆįŽ—ã—ã‚ˆã†ã¨čŠĻãŋぞした + + ã€‚đŸ¤”

- , - , - ❌ - ]} - /> +

- たとえば、前回ãĢã‚‚ã‚ãŖãŸãƒžã‚¯ãƒ‰ãƒŠãƒĢドéĸ¨ãŽåŧåŊ“įŽąã¯ã€ - と - - ãŒä¸€č‡´ã—ãžã›ã‚“ã€‚ - + ぞず、「 + 嚴ぎ数を、4ã§å‰˛ãŖãŸäŊ™ã‚Š + ã€ã‚’č¨ˆįŽ—ã™ã‚‹č¨ˆįŽ—įŽąã¯ã“ãĄã‚‰ã§ã™ã€‚

- -

こういう場合おうするかというとâ€Ļ(下ãĢįļšã)

- - ) - }, - { - title: <>ã‚ŗãƒ”ãƒŧはせず、æļˆã™ã ã‘īŧ, - content: ( - <> -

- - ã‚ŗãƒ”ãƒŧ ( - {' '} - â†˜ī¸{' '} - - )はせずãĢ、ただ - と - - をæļˆã™ã ã‘です。 - -

-

- -

- +

- そしãĻ、最įĩ‚įš„ãĢ - - だけãĢãĒりぞす。 + たとえば、❓ ぎ部分ãĢ {' '} + をå…ĨれãĻ + + すると、 + ã§å‰˛ã‚Šåˆ‡ã‚Œã‚‹ãŽã§ã€ + が掋りぞす。

- - - ) - }, - { - title: ( - <> - : ä¸€č‡´ã—ãĒã‹ãŖãŸå ´åˆ - - ), - type: 'summary', - content: ( - <> + + +

- ä¸€č‡´ã—ãĒã‹ãŖãŸå ´åˆã€ + æŦĄãĢ、「 + 嚴ぎ数を、4ã§å‰˛ãŖãŸäŊ™ã‚Š + ã€ã‚’č¨ˆįŽ—ã™ã‚‹č¨ˆįŽ—įŽąã‚’ã€ - ã‚ŗãƒ”ãƒŧ ( - {' '} - â†˜ī¸{' '} - - )はせずãĢ、ただ - と - - をæļˆã™ + æĄäģļåˆ†å˛ãŽč¨ˆįŽ—įŽąãŽįœŸã‚“ä¸­ãŽéƒ¨åˆ†{' '} + ãĢå…Ĩれぞす。 - 。 -

- - - - - ) - }, - { - title: ( - <> - - でčĻ‹ãĻãŋぞしょう - - ), - content: ( - <> -

- įˇ ã‚ããã‚ŠãĢ、それぞれ最初から最垌ぞで - - でčĻ‹ãĻãŋぞしょう。 - - をäŊŋうと、最垌ぞでč‡Ēå‹•ã§é€˛ã‚ã‚‹ã“ã¨ãŒã§ããžã™ã€‚ -

- -

- -

- -

- ã“ãĄã‚‰ã‚‚ - -

- -

æŗ•å‰‡ã‚’čĻšãˆãŸã‚‰ã€æŦĄãĢ進ãŋぞしょうīŧ

- - ) - }, - { - title: <>äēˆå‘Š: 4品ぎåŧåŊ“įŽą, - content: ( - <> -

- æŦĄãŽãƒšãƒŧジからは4å“ãŽæ–™į†ãŒå…ĨãŖãŸ - - がį™ģ場しぞす。 -

- -

- ãŸã¨ãˆã°ã“ãĄã‚‰ã‚’ã”čĻ§ãã ã•ã„ã€‚ - 上ãĢ2マ゚、下ãĢも2マ゚ - ありぞすね。こぎ場合はおうãĒるぎでしょうかīŧŸ -

- - - ) - }, - { - type: 'yesNoQuiz', - title: ( - <> - - - ), - content: ( - <> -

- æŦĄãŽãƒšãƒŧã‚¸ã§čŠŗã—ãčĒŦ明しぞすが、先ãĢ - - ã‚’ã‚„ãŖãĻãŋãžã—ã‚‡ã†ã€‚å‹˜ã§į­”ãˆãĻãŋãĻください。 -

- -

- -

- - - - ) - }, - { - title: ( - <> - - - ), - content: ( - <> -

- -

- -

おんãĒæŗ•å‰‡ã§ã“ã†ãĒるぎかは、æŦĄãŽãƒšãƒŧジでčĒŦ明しぞすīŧ

- ) } diff --git a/src/lib/date.tsx b/src/lib/date.tsx index 72fcf5ed9..25eef02db 100644 --- a/src/lib/date.tsx +++ b/src/lib/date.tsx @@ -2,8 +2,8 @@ import locale from 'src/lib/locale' import { DateTime } from 'luxon' export const date = { - jp: DateTime.fromISO('2019-06-24T00:00:00Z'), - en: DateTime.fromISO('2019-06-24T00:00:00Z') + jp: DateTime.fromISO('2019-07-08T00:00:00Z'), + en: DateTime.fromISO('2019-07-08T00:00:00Z') }[locale] export const dateString = { diff --git a/src/lib/emojisBundle.tsx b/src/lib/emojisBundle.tsx index b53759526..d2cebdcfc 100644 --- a/src/lib/emojisBundle.tsx +++ b/src/lib/emojisBundle.tsx @@ -57,6 +57,7 @@ import Emoji1f50e from 'src/components/Twemoji/1f50e' import Emoji1f520 from 'src/components/Twemoji/1f520' import Emoji1f522 from 'src/components/Twemoji/1f522' import Emoji1f53d from 'src/components/Twemoji/1f53d' +import Emoji1f5d3 from 'src/components/Twemoji/1f5d3' import Emoji1f5fa from 'src/components/Twemoji/1f5fa' import Emoji1f604 from 'src/components/Twemoji/1f604' import Emoji1f605 from 'src/components/Twemoji/1f605' @@ -129,6 +130,7 @@ import Emoji34ZZ20e3 from 'src/components/Twemoji/34-20e3' import Emoji35ZZ20e3 from 'src/components/Twemoji/35-20e3' import Emoji36ZZ20e3 from 'src/components/Twemoji/36-20e3' import Emoji38ZZ20e3 from 'src/components/Twemoji/38-20e3' +import Emoji39ZZ20e3 from 'src/components/Twemoji/39-20e3' export default { '1f170': Emoji1f170, @@ -189,6 +191,7 @@ export default { '1f520': Emoji1f520, '1f522': Emoji1f522, '1f53d': Emoji1f53d, + '1f5d3': Emoji1f5d3, '1f5fa': Emoji1f5fa, '1f604': Emoji1f604, '1f605': Emoji1f605, @@ -260,5 +263,6 @@ export default { '34-20e3': Emoji34ZZ20e3, '35-20e3': Emoji35ZZ20e3, '36-20e3': Emoji36ZZ20e3, - '38-20e3': Emoji38ZZ20e3 + '38-20e3': Emoji38ZZ20e3, + '39-20e3': Emoji39ZZ20e3 } diff --git a/src/lib/letterEmojiMappingJson.json b/src/lib/letterEmojiMappingJson.json index 93233b869..44213d753 100644 --- a/src/lib/letterEmojiMappingJson.json +++ b/src/lib/letterEmojiMappingJson.json @@ -33,5 +33,6 @@ "magical": "đŸ§™â€â™€ī¸", "someNumber": "❔", "abbreviated": "❔", - "Amult": "❔" + "Amult": "❔", + "questionV2": "❓" } diff --git a/src/lib/numberEmojiMapping.ts b/src/lib/numberEmojiMapping.ts index e496b3354..6553f3400 100644 --- a/src/lib/numberEmojiMapping.ts +++ b/src/lib/numberEmojiMapping.ts @@ -5,7 +5,11 @@ const numberEmojiMapping: Record = jsonMapping export const numberEmojiMappingMultipleDigits: Record = { 24: ['2ī¸âƒŖ', '4ī¸âƒŖ'], 16: ['1ī¸âƒŖ', '6ī¸âƒŖ'], - 120: ['1ī¸âƒŖ', '2ī¸âƒŖ', '0ī¸âƒŖ'] + 28: ['2ī¸âƒŖ', '8ī¸âƒŖ'], + 29: ['2ī¸âƒŖ', '9ī¸âƒŖ'], + 120: ['1ī¸âƒŖ', '2ī¸âƒŖ', '0ī¸âƒŖ'], + 2019: ['2ī¸âƒŖ', '0ī¸âƒŖ', '1ī¸âƒŖ', '9ī¸âƒŖ'], + 2020: ['2ī¸âƒŖ', '0ī¸âƒŖ', '2ī¸âƒŖ', '0ī¸âƒŖ'] } export default numberEmojiMapping diff --git a/src/lib/numberEmojiMappingJson.json b/src/lib/numberEmojiMappingJson.json index adec3a0fa..a78069c12 100644 --- a/src/lib/numberEmojiMappingJson.json +++ b/src/lib/numberEmojiMappingJson.json @@ -6,5 +6,6 @@ "4": "4ī¸âƒŖ", "5": "5ī¸âƒŖ", "6": "6ī¸âƒŖ", - "8": "8ī¸âƒŖ" + "8": "8ī¸âƒŖ", + "9": "9ī¸âƒŖ" } diff --git a/src/lib/runners/atkh.json b/src/lib/runners/atkh.json new file mode 100644 index 000000000..a71411edc --- /dev/null +++ b/src/lib/runners/atkh.json @@ -0,0 +1,79 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "remainder" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 4 + }, + "state": "default", + "type": "call", + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/fdek.json b/src/lib/runners/fdek.json new file mode 100644 index 000000000..de3eba0a0 --- /dev/null +++ b/src/lib/runners/fdek.json @@ -0,0 +1,81 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "add" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true + }, + "state": "default", + "type": "call", + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "caption": { + "name": "addMathBox" + }, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/gruv.json b/src/lib/runners/gruv.json new file mode 100644 index 000000000..c0f5a2fc9 --- /dev/null +++ b/src/lib/runners/gruv.json @@ -0,0 +1,80 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2020 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "remainder" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 4 + }, + "state": "default", + "type": "call", + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/guhy.json b/src/lib/runners/guhy.json new file mode 100644 index 000000000..86ff23cae --- /dev/null +++ b/src/lib/runners/guhy.json @@ -0,0 +1,74 @@ +{ + "expressionContainers": [ + { + "expression": { + "type": "conditional", + "state": "trueCaseActive", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 5 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 4 + }, + "priority": 1 + }, + "previouslyChangedExpressionState": "trueCaseActive", + "activePriority": 1, + "containerState": "stepped" + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/iatt.json b/src/lib/runners/iatt.json new file mode 100644 index 000000000..6d1a9f94c --- /dev/null +++ b/src/lib/runners/iatt.json @@ -0,0 +1,89 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "type": "conditional", + "state": "default", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 3 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "priority": 1 + } + }, + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": false, + "explanationsVisibility": "hiddenInitialPausedOnly", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": true, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/jfsd.json b/src/lib/runners/jfsd.json new file mode 100644 index 000000000..8f3b40b0b --- /dev/null +++ b/src/lib/runners/jfsd.json @@ -0,0 +1,80 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "add" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "state": "default", + "type": "call", + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/lbua.json b/src/lib/runners/lbua.json new file mode 100644 index 000000000..4d464b4ee --- /dev/null +++ b/src/lib/runners/lbua.json @@ -0,0 +1,39 @@ +{ + "expressionContainers": [ + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/mjbi.json b/src/lib/runners/mjbi.json new file mode 100644 index 000000000..d1b435e22 --- /dev/null +++ b/src/lib/runners/mjbi.json @@ -0,0 +1,80 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 5 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "remainder" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "state": "default", + "type": "call", + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/nlfx.json b/src/lib/runners/nlfx.json new file mode 100644 index 000000000..d1d27308a --- /dev/null +++ b/src/lib/runners/nlfx.json @@ -0,0 +1,96 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "add" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "state": "default", + "type": "call", + "priority": 1 + } + }, + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": false, + "explanationsVisibility": "hiddenInitialPausedOnly", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": true, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/novg.json b/src/lib/runners/novg.json new file mode 100644 index 000000000..3a61beee7 --- /dev/null +++ b/src/lib/runners/novg.json @@ -0,0 +1,39 @@ +{ + "expressionContainers": [ + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 28 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/plbv.json b/src/lib/runners/plbv.json new file mode 100644 index 000000000..6d847fac0 --- /dev/null +++ b/src/lib/runners/plbv.json @@ -0,0 +1,73 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "type": "conditional", + "state": "default", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 5 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 4 + }, + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/qcmh.json b/src/lib/runners/qcmh.json new file mode 100644 index 000000000..e53859159 --- /dev/null +++ b/src/lib/runners/qcmh.json @@ -0,0 +1,74 @@ +{ + "expressionContainers": [ + { + "expression": { + "type": "conditional", + "state": "conditionActive", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 5 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 4 + }, + "priority": 1 + }, + "previouslyChangedExpressionState": "conditionActive", + "activePriority": 1, + "containerState": "stepped" + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/qscy.json b/src/lib/runners/qscy.json new file mode 100644 index 000000000..26a6d9700 --- /dev/null +++ b/src/lib/runners/qscy.json @@ -0,0 +1,74 @@ +{ + "expressionContainers": [ + { + "expression": { + "type": "conditional", + "state": "trueCaseActive", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 29 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 28 + }, + "priority": 1 + }, + "previouslyChangedExpressionState": "trueCaseActive", + "activePriority": 1, + "containerState": "stepped" + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/rjfy.json b/src/lib/runners/rjfy.json new file mode 100644 index 000000000..64804d1ed --- /dev/null +++ b/src/lib/runners/rjfy.json @@ -0,0 +1,74 @@ +{ + "expressionContainers": [ + { + "expression": { + "type": "conditional", + "state": "falseCaseActive", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 3 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "priority": 1 + }, + "previouslyChangedExpressionState": "falseCaseActive", + "activePriority": 1, + "containerState": "stepped" + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/sewk.json b/src/lib/runners/sewk.json new file mode 100644 index 000000000..f1d68c522 --- /dev/null +++ b/src/lib/runners/sewk.json @@ -0,0 +1,89 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "type": "conditional", + "state": "default", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 29 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 28 + }, + "priority": 1 + } + }, + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 29 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": false, + "explanationsVisibility": "hiddenInitialPausedOnly", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": true, + "hideFuncUnboundBadgeOnExplanation": true, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/sffm.json b/src/lib/runners/sffm.json new file mode 100644 index 000000000..c7a363bc1 --- /dev/null +++ b/src/lib/runners/sffm.json @@ -0,0 +1,73 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "type": "conditional", + "state": "default", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 0 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 29 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 28 + }, + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/toht.json b/src/lib/runners/toht.json new file mode 100644 index 000000000..e803c0014 --- /dev/null +++ b/src/lib/runners/toht.json @@ -0,0 +1,39 @@ +{ + "expressionContainers": [ + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/uaha.json b/src/lib/runners/uaha.json new file mode 100644 index 000000000..80216b6d8 --- /dev/null +++ b/src/lib/runners/uaha.json @@ -0,0 +1,96 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 3 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "mult" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "state": "default", + "type": "call", + "priority": 1 + } + }, + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 6 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": false, + "explanationsVisibility": "hiddenInitialPausedOnly", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": true, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/vozu.json b/src/lib/runners/vozu.json new file mode 100644 index 000000000..87d46375f --- /dev/null +++ b/src/lib/runners/vozu.json @@ -0,0 +1,74 @@ +{ + "expressionContainers": [ + { + "expression": { + "type": "conditional", + "state": "conditionActive", + "checkType": "isZero", + "condition": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "trueCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 3 + }, + "falseCase": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + }, + "priority": 1 + }, + "previouslyChangedExpressionState": "conditionActive", + "activePriority": 1, + "containerState": "stepped" + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/wtax.json b/src/lib/runners/wtax.json new file mode 100644 index 000000000..fdb8aafe2 --- /dev/null +++ b/src/lib/runners/wtax.json @@ -0,0 +1,96 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "arg": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 5 + }, + "func": { + "name": "shorthandBinary", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "shorthandBinary": "remainder" + }, + "state": "default", + "type": "call", + "priority": 2 + }, + "func": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2 + }, + "state": "default", + "type": "call", + "priority": 1 + } + }, + { + "containerState": "done", + "previouslyChangedExpressionState": "default", + "expression": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "hideControls": false, + "explanationsVisibility": "hiddenInitialPausedOnly", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": true, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/lib/runners/ymmm.json b/src/lib/runners/ymmm.json new file mode 100644 index 000000000..4c106e8b0 --- /dev/null +++ b/src/lib/runners/ymmm.json @@ -0,0 +1,73 @@ +{ + "expressionContainers": [ + { + "containerState": "ready", + "previouslyChangedExpressionState": "default", + "expression": { + "type": "conditional", + "state": "default", + "checkType": "isZero", + "condition": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true + }, + "trueCase": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true + }, + "falseCase": { + "name": "questionV2", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true + }, + "priority": 1 + } + } + ], + "speed": 1, + "showOnlyFocused": false, + "caption": { + "name": "conditionalMathBox" + }, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": true, + "variableSize": "lg", + "containerSize": "xxs", + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "argPriorityAggHighlights": [], + "funcPriorityAggHighlights": [], + "highlightFunctions": false, + "superFastForward": false +} diff --git a/src/types/ExpressionTypes.ts b/src/types/ExpressionTypes.ts index 6d65a7a2e..9b635881f 100644 --- a/src/types/ExpressionTypes.ts +++ b/src/types/ExpressionTypes.ts @@ -10,7 +10,7 @@ export interface VariableExpression { readonly emphasizePriority: boolean readonly argPriorityAgg: number[] readonly funcPriorityAgg: number[] - readonly shorthandBinary?: 'mult' + readonly shorthandBinary?: 'mult' | 'add' | 'remainder' readonly shorthandNumber?: number readonly shorthandUnary?: 'pred' readonly magical?: boolean diff --git a/src/types/HTypes.ts b/src/types/HTypes.ts index 0ed2f6fb3..24c8fdba8 100644 --- a/src/types/HTypes.ts +++ b/src/types/HTypes.ts @@ -124,4 +124,9 @@ export interface HProps { | { name: 'csDescription' } | { name: 'numberOfAIsSecretCodeCaption' } | { name: 'mentionRightArrow' } + | { name: 'addMathBox' } + | { name: 'remainder' } + | { name: 'conditionalMathBox' } + | { name: 'lookAtThisMathBox' } + | { name: 'whatHappensAtTheEndMathBoxQuestion' } } diff --git a/src/types/VariableNames.ts b/src/types/VariableNames.ts index abe843ebd..850e80fec 100644 --- a/src/types/VariableNames.ts +++ b/src/types/VariableNames.ts @@ -34,6 +34,7 @@ export type VariableNames = | 'someNumber' | 'abbreviated' | 'Amult' + | 'questionV2' export interface VariableNamesWithAlphaConvertCount { name: VariableNames