import LazyScratchBlocks from './tw-lazy-scratch-blocks';
const categorySeparator = '';
const blockSeparator = ''; // At default scale, about 28px
const translate = (id, english) => {
    if (LazyScratchBlocks.isLoaded()) {
        const ScratchBlocks = LazyScratchBlocks.get();
        return ScratchBlocks.ScratchMsgs.translate(id, english);
    }
    return english;
};
/* eslint-disable no-unused-vars */
const motion = function (isInitialSetup, isStage, targetId) {
    const stageSelected = translate(
        'MOTION_STAGE_SELECTED',
        'Stage selected: no motion blocks'
    );
    return `
    
        ${isStage ? `
        
        ` : `
        
            
                
                    10
                
            
        
        
            
                
                    10
                
            
        
        
            
                
                    15
                
            
        
        
            
                
                    15
                
            
        
        ${blockSeparator}
        
            
                
                
            
        
        
            
                
                    0
                
            
            
                
                    0
                
            
        
        
            
                
                    10
                
            
            
                
                    10
                
            
        
        
            
                
                    1
                
            
            
                
                
            
        
        
            
                
                    1
                
            
            
                
                    0
                
            
            
                
                    0
                
            
        
        ${blockSeparator}
        
            
                
                    90
                
            
        
        
            
                
                
            
        
        
            
                
                    0
                
            
            
                
                    0
                
            
        
        
        ${blockSeparator}
        
            
                
                    10
                
            
        
        
            
                
                    0
                
            
        
        
            
                
                    10
                
            
        
        
            
                
                    0
                
            
        
        ${blockSeparator}
        
        
            
                
            
        
        ${blockSeparator}
        
        
        ${blockSeparator}
        
        
        `}
        ${categorySeparator}
    
    `;
};
const xmlEscape = function (unsafe) {
    return unsafe.replace(/[<>&'"]/g, c => {
        switch (c) {
        case '<': return '<';
        case '>': return '>';
        case '&': return '&';
        case '\'': return ''';
        case '"': return '"';
        }
    });
};
const looks = function (isInitialSetup, isStage, targetId, costumeName, backdropName) {
    const hello = translate('LOOKS_HELLO', 'Hello!');
    const hmm = translate('LOOKS_HMM', 'Hmm...');
    return `
    
        ${isStage ? '' : `
        
            
                
                    ${hello}
                
            
            
                
                    2
                
            
        
        
            
                
                    ${hello}
                
            
        
        
            
                
                    ${hmm}
                
            
            
                
                    2
                
            
        
        
            
                
                    ${hmm}
                
            
        
        
        ${blockSeparator}
        
            
                
                    Helvetica
                
            
            
                
                    14
                
            
        
        
            BUBBLE_STROKE
            
                
            
        
        
            STROKE_WIDTH
            
                
                    0
                
            
        
        
        
        ${blockSeparator}
        `}
        ${isStage ? `
            
                
                    
                        ${backdropName}
                    
                
            
            
                
                    
                        ${backdropName}
                    
                
            
            
            
                
                    
                
                
                    
                        ${backdropName}
                    
                
            
        ` : `
            
                
                    
                        ${costumeName}
                    
                
            
            
            
                
                    
                
                
                    
                        ${costumeName}
                    
                
            
            ${blockSeparator}
            
                
                    
                        ${backdropName}
                    
                
            
            
            ${blockSeparator}
            
                
                    
                        10
                    
                
            
            
                
                    
                        100
                    
                
            
            ${blockSeparator}
            
                
                    
                        100
                    
                
                
                    
                        100
                    
                
            
            
                
                    
                        15
                    
                
                
                    
                        15
                    
                
            
            
            
        `}
        ${blockSeparator}
        
            
                
                    25
                
            
        
        
            
                
                    0
                
            
        
        
            
                
            
        
        
        
        
        ${blockSeparator}
        ${isStage ? '' : `
            
            
            
            ${blockSeparator}
            
                
                    
                
            
            
                
                    
                
            
            
                
                    
                
            
            ${blockSeparator}
            
            
                
                    
                        1
                    
                
            
            
                
                    
                        1
                    
                
            
            
                
                    
                
            
            
            ${blockSeparator}
        `}
        ${isStage ? `
            
        ` : `
            
            
            
        `}
        ${categorySeparator}
    
    `;
};
const sound = function (isInitialSetup, isStage, targetId, soundName) {
    return `
    
        
            
                
                    ${soundName}
                
            
        
        
            
                
                    5
                
            
            
                
                    ${soundName}
                
            
        
        ${blockSeparator}
        
            
                
                    ${soundName}
                
            
        
        
            
                
                    5
                
            
            
                
                    ${soundName}
                
            
        
        
            
                
                    ${soundName}
                
            
        
        
        
        ${blockSeparator}
        
            
                
                    1
                
            
            
                
                    ${soundName}
                
            
        
        ${blockSeparator}
        
            
                
                    ${soundName}
                
            
        
        
            
                
                    ${soundName}
                
            
        
        ${blockSeparator}
        
            
                
                    10
                
            
        
        
            
                
                    100
                
            
        
        
        
        ${blockSeparator}
        
            
                
                    -10
                
            
        
        
            
                
                    100
                
            
        
        
        ${categorySeparator}
    
    `;
};
const events = function (isInitialSetup, isStage) {
    return `
    
        
        
        ${blockSeparator}
        
        
            
        
        ${blockSeparator}
        
        
        
        ${isStage ? `
            
        ` : `
            
        `}
        
        
        ${blockSeparator}
        
            
                
                    10
                
            
        
        ${blockSeparator}
        
        
        
            
                
            
        
        
            
              
            
        
        ${categorySeparator}
    
    `;
};
const control = function (isInitialSetup, isStage) {
    return `
    
        
            
                
                    1
                
            
        
        
            
                
                    1
                
            
        
        ${blockSeparator}
        
            
                
                    10
                
            
        
        
        
            
                
                    10
                
            
        
        
        
        ${blockSeparator}
        
        
        
        
            
                
                    ello
                
            
        
        
            
                
                    ello
                
            
        
        ${blockSeparator}
        
        
        
        
        
        
            
            
                
                    foo
                
            
            
                
                    bar
                
            
        
        ${blockSeparator}
        
        
            
                
            
        
        ${blockSeparator}
        
        
            
                
                    Hello!
                
            
        
        
        ${blockSeparator}
        
        
            
                
            
        
        
        ${blockSeparator}
        ${isStage ? `
            
                
                    
                
            
            
                
                    
                
            
        ` : `
            
            
                
                    
                
            
            
                
                    
                
            
            
            
        `}
        ${LazyScratchBlocks.isNameUrMom() ? '' : ''}
        ${categorySeparator}
    
    `;
};
const sensing = function (isInitialSetup, isStage, targetId) {
    const name = translate('SENSING_ASK_TEXT', 'What\'s your name?');
    // const openDocumentation = translate('OPEN_DOCUMENTATION', 'Open Documentation');
    const helpManual = translate('HELP_MANUAL', 'Help Manual');
    return `
    
        ${isStage ? '' : `
            
                
                    
                
            
            
                
                    
                
                
                    
                
            
            
                
                    
                
                
                    
                
            
            
                
                    
                
            
            
                
                    
                
                
                    
                
            
            ${blockSeparator}
            
                
                    
                
            
            
                
                    
                
            
            
                
                    
                        10
                    
                
                
                    
                        -10
                    
                
                
                    
                        -10
                    
                
                
                    
                        10
                    
                
            
            
                
                    
                        10
                    
                
                
                    
                        -10
                    
                
                
                    
                        -10
                    
                
                
                    
                        10
                    
                
            
            ${blockSeparator}
        `}
        ${isInitialSetup ? '' : `
            
                
                    
                        ${name}
                    
                
            
        `}
        
        
            
                
                    world
                
            
        
        
            
                
                    10
                
            
        
        ${blockSeparator}
        
            
                
            
        
        
            
                
            
        
        
            
                
            
        
        ${blockSeparator}
        
        
        
        
        ${blockSeparator}
        
            
                
                    Hello!
                
            
        
        
        ${isStage ? '' : `
            ${blockSeparator}
            
            
            ${blockSeparator}
        `}
        ${blockSeparator}
        
        
        ${blockSeparator}
        
        
        ${blockSeparator}
        
            
                
            
            
                
                    0
                
            
        
        
            
                
            
        
        ${blockSeparator}
        
        
        ${blockSeparator}
        
        
            
                
            
        
        
            
                
            
        
        
            
                
            
        
        
            
                
            
        
        ${blockSeparator}
        
        
        
        ${categorySeparator}
    
    `;
};
const operators = function (isInitialSetup) {
    const apple = translate('OPERATORS_JOIN_APPLE', 'apple');
    const banana = translate('OPERATORS_JOIN_BANANA', 'banana');
    const letter = translate('OPERATORS_LETTEROF_APPLE', 'a');
    return `
    
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    3
                
            
            
                
                    2
                
            
            root
            
                
                    16
                
            
        
        ${blockSeparator}
        
            
                
                    1
                
            
            
                
                    10
                
            
        
        
            
                
                    50
                
            
            
                
                    1
                
            
            
                
                    100
                
            
        
        
            
                
                    1
                
            
            
                
                    3
                
            
            
                
                    0.5
                
            
        
        ${blockSeparator}
        
            
                
                    
                
            
            
                
                    50
                
            
        
        
            
                
                    
                
            
            
                
                    50
                
            
        
        
            
                
                    
                
            
            
                
                    50
                
            
        
        
            
                
                    
                
            
            
                
                    50
                
            
        
        
            
                
                    
                
            
            
                
                    50
                
            
        
        
            
                
                    
                
            
            
                
                    50
                
            
        
        ${blockSeparator}
        
        
        ${blockSeparator}
        
        
        
        ${blockSeparator}
        ${isInitialSetup ? '' : `
            
            
            ${blockSeparator}
            
                
                    
                        ${apple} 
                    
                
                
                    
                        ${banana}
                    
                
            
            
                
                    
                        ${apple} 
                    
                
                
                    
                        ${banana} 
                    
                
                
                    
                        pear
                    
                
            
            ${blockSeparator}
            
                
                    
                        world
                    
                
                
                    
                        Hello world!
                    
                
            
            
                
                    
                        world
                    
                
                
                    
                        Hello world!
                    
                
            
            ${blockSeparator}
            
                
                    
                        1
                    
                
                
                    
                        ${apple}
                    
                
            
            
                
                    
                        2
                    
                
                
                    
                        3
                    
                
                
                    
                        Hello!
                    
                
            
            
                
                    
                        ${apple}
                    
                
            
            ${blockSeparator}
            
              
                
                  ${apple}
                
              
              
                
                  ${letter}
                
              
            
            
              
                
                  abcdef
                
              
              
                
                  abc
                
              
            
            ${blockSeparator}
            
                
                    
                        foo bar
                    
                
                
                    
                        foo
                    
                
                
                    
                        bar
                    
                
            
            
                
                    
                        bar bar doo
                    
                
                
                    
                        bar
                    
                
                
                    
                        foo
                    
                
            
            
                
                    
                        foo bar
                    
                
                
                    
                        foo
                    
                
                
                    
                        g
                    
                
            
            ${blockSeparator}
            
                
                    
                        ello
                    
                
            
        `}
        ${blockSeparator}
        
            
                
                    
                
            
            
                
                    
                
            
        
        
            
                
                    
                
            
        
        ${blockSeparator}
        
            
                
                    
                
            
        
        ${blockSeparator}
        
            
                
                    foo
                
            
        
        
            
                
                    true
                
            
        
        ${categorySeparator}
    
    `;
};
const variables = function () {
    return `
    
    
    `;
};
const lists = function () {
    return `
    
    
    `;
};
const myBlocks = function () {
    return `
    
    
    `;
};
const liveTests = function () {
    return `
    
        
            
        
        ${blockSeparator}
        
            
                
                    0
                
            
        
        
            
                
                    0
                
            
        
        ${blockSeparator}
        
        
        
        ${blockSeparator}
        
            
                
            
            
                
            
        
        ${blockSeparator}
        
    
    `;
};
/* eslint-enable no-unused-vars */
const xmlOpen = '';
const xmlClose = '';
/**
 * @param {!boolean} isInitialSetup - Whether the toolbox is for initial setup. If the mode is "initial setup",
 * blocks with localized default parameters (e.g. ask and wait) should not be loaded. (LLK/scratch-gui#5445)
 * @param {?boolean} isStage - Whether the toolbox is for a stage-type target. This is always set to true
 * when isInitialSetup is true.
 * @param {?string} targetId - The current editing target
 * @param {?Array.