function createDialog()

in Node/core/lib/dialogs/require-fields-dialog.js [26:67]


function createDialog() {
    return common.createBaseDialog({ recognizeMode: botbuilder_1.RecognizeMode.onBegin })
        .onBegin(function (session, args, next) {
        if (args.place.address) {
            args.place.address.formattedAddress = common.getFormattedAddressFromLocation(args.place, session.gettext(consts_1.Strings.AddressSeparator));
        }
        if (args.requiredFields) {
            session.dialogData.place = args.place;
            session.dialogData.index = -1;
            session.dialogData.requiredFieldsFlag = args.requiredFields;
            next();
        }
        else {
            session.endDialogWithResult({ response: { place: args.place } });
        }
    })
        .onDefault(function (session) {
        var index = session.dialogData.index;
        if (index >= 0) {
            if (!session.message.text) {
                return;
            }
            session.dialogData.lastInput = session.message.text;
            session.dialogData.place.address[fields[index].name] = session.message.text;
            session.dialogData.place.address.formattedAddress = common.getFormattedAddressFromLocation(session.dialogData.place, session.gettext(consts_1.Strings.AddressSeparator));
        }
        index++;
        while (index < fields.length) {
            if (completeFieldIfMissing(session, fields[index])) {
                break;
            }
            index++;
        }
        session.dialogData.index = index;
        if (index >= fields.length) {
            session.endDialogWithResult({ response: { place: session.dialogData.place } });
        }
        else {
            session.sendBatch();
        }
    });
}