import { replaceHtml } from '../utils/util';
import { modelHTML } from './constant';
import menuButton from './menuButton';
import editor from '../global/editor';
import tooltip from '../global/tooltip';
import { isEditMode } from '../global/validate';
import Store from '../store';
import locale from '../locale/locale';

//更多格式
const luckysheetMoreFormat = {
    moneyFmtList: [
        {
            "name": "人民币",
            "pos": "before",
            "value": "¥"
        }, {
            "name": "美元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "欧元",
            "pos": "before",
            "value": "€"
        }, {
            "name": "英镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "港元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "日元",
            "pos": "before",
            "value": "¥"
        }, {
            "name": "阿尔巴尼亚列克",
            "pos": "before",
            "value": "Lek"
        }, {
            "name": "阿尔及利亚第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "阿富汗尼",
            "pos": "after",
            "value": "Af"
        }, {
            "name": "阿根廷比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "阿拉伯联合酋长国迪拉姆",
            "pos": "before",
            "value": "dh"
        }, {
            "name": "阿鲁巴弗罗林",
            "pos": "before",
            "value": "Afl"
        }, {
            "name": "阿曼里亚尔",
            "pos": "before",
            "value": "Rial"
        }, {
            "name": "阿塞拜疆马纳特",
            "pos": "before",
            "value": "?"
        }, {
            "name": "埃及镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "埃塞俄比亚比尔",
            "pos": "before",
            "value": "Birr"
        }, {
            "name": "安哥拉宽扎",
            "pos": "before",
            "value": "Kz"
        }, {
            "name": "澳大利亚元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "澳门元",
            "pos": "before",
            "value": "MOP"
        }, {
            "name": "巴巴多斯元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "巴布亚新几内亚基那",
            "pos": "before",
            "value": "PGK"
        }, {
            "name": "巴哈马元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "巴基斯坦卢比",
            "pos": "before",
            "value": "Rs"
        }, {
            "name": "巴拉圭瓜拉尼",
            "pos": "after",
            "value": "Gs"
        }, {
            "name": "巴林第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "巴拿马巴波亚",
            "pos": "before",
            "value": "B/"
        }, {
            "name": "巴西里亚伊",
            "pos": "before",
            "value": "R$"
        }, {
            "name": "白俄罗斯卢布",
            "pos": "after",
            "value": "р"
        }, {
            "name": "百慕大元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "保加利亚列弗",
            "pos": "before",
            "value": "lev"
        }, {
            "name": "冰岛克朗",
            "pos": "before",
            "value": "kr"
        }, {
            "name": "波黑可兑换马克",
            "pos": "before",
            "value": "KM"
        }, {
            "name": "波兰兹罗提",
            "pos": "after",
            "value": "z?"
        }, {
            "name": "玻利维亚诺",
            "pos": "before",
            "value": "Bs"
        }, {
            "name": "伯利兹元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "博茨瓦纳普拉",
            "pos": "before",
            "value": "P"
        }, {
            "name": "不丹努扎姆",
            "pos": "before",
            "value": "Nu"
        }, {
            "name": "布隆迪法郎",
            "pos": "before",
            "value": "FBu"
        }, {
            "name": "朝鲜圆",
            "pos": "before",
            "value": "?KP"
        }, {
            "name": "丹麦克朗",
            "pos": "after",
            "value": "kr"
        }, {
            "name": "东加勒比元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "多米尼加比索",
            "pos": "before",
            "value": "RD$"
        }, {
            "name": "俄国卢布",
            "pos": "after",
            "value": "?"
        }, {
            "name": "厄立特里亚纳克法",
            "pos": "before",
            "value": "Nfk"
        }, {
            "name": "非洲金融共同体法郎",
            "pos": "before",
            "value": "CFA"
        }, {
            "name": "菲律宾比索",
            "pos": "before",
            "value": "?"
        }, {
            "name": "斐济元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "佛得角埃斯库多",
            "pos": "before",
            "value": "CVE"
        }, {
            "name": "福克兰群岛镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "冈比亚达拉西",
            "pos": "before",
            "value": "GMD"
        }, {
            "name": "刚果法郎",
            "pos": "before",
            "value": "FrCD"
        }, {
            "name": "哥伦比亚比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "哥斯达黎加科朗",
            "pos": "before",
            "value": "?"
        }, {
            "name": "古巴比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "古巴可兑换比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "圭亚那元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "哈萨克斯坦坚戈",
            "pos": "before",
            "value": "?"
        }, {
            "name": "海地古德",
            "pos": "before",
            "value": "HTG"
        }, {
            "name": "韩元",
            "pos": "before",
            "value": "?"
        }, {
            "name": "荷属安的列斯盾",
            "pos": "before",
            "value": "NAf."
        }, {
            "name": "洪都拉斯拉伦皮拉",
            "pos": "before",
            "value": "L"
        }, {
            "name": "吉布提法郎",
            "pos": "before",
            "value": "Fdj"
        }, {
            "name": "吉尔吉斯斯坦索姆",
            "pos": "before",
            "value": "KGS"
        }, {
            "name": "几内亚法郎",
            "pos": "before",
            "value": "FG"
        }, {
            "name": "加拿大元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "加纳塞地",
            "pos": "before",
            "value": "GHS"
        }, {
            "name": "柬埔寨瑞尔",
            "pos": "before",
            "value": "Riel"
        }, {
            "name": "捷克克朗",
            "pos": "after",
            "value": "K?"
        }, {
            "name": "津巴布韦元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "卡塔尔里亚尔",
            "pos": "before",
            "value": "Rial"
        }, {
            "name": "开曼群岛元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "科摩罗法郎",
            "pos": "before",
            "value": "CF"
        }, {
            "name": "科威特第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "克罗地亚库纳",
            "pos": "before",
            "value": "kn"
        }, {
            "name": "肯尼亚先令",
            "pos": "before",
            "value": "Ksh"
        }, {
            "name": "莱索托洛蒂",
            "pos": "before",
            "value": "LSL"
        }, {
            "name": "老挝基普",
            "pos": "before",
            "value": "?"
        }, {
            "name": "黎巴嫩镑",
            "pos": "before",
            "value": "L£"
        }, {
            "name": "立陶宛立特",
            "pos": "before",
            "value": "Lt"
        }, {
            "name": "利比亚第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "利比亚元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "卢旺达法郎",
            "pos": "before",
            "value": "RF"
        }, {
            "name": "罗马尼亚列伊",
            "pos": "before",
            "value": "RON"
        }, {
            "name": "马达加斯加阿里亚里",
            "pos": "before",
            "value": "Ar"
        }, {
            "name": "马尔代夫拉菲亚",
            "pos": "before",
            "value": "Rf"
        }, {
            "name": "马拉维克瓦查",
            "pos": "before",
            "value": "MWK"
        }, {
            "name": "马来西亚林吉特",
            "pos": "before",
            "value": "RM"
        }, {
            "name": "马其顿戴第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "毛里求斯卢比",
            "pos": "before",
            "value": "MURs"
        }, {
            "name": "毛里塔尼亚乌吉亚",
            "pos": "before",
            "value": "MRO"
        }, {
            "name": "蒙古图格里克",
            "pos": "before",
            "value": "?"
        }, {
            "name": "孟加拉塔卡",
            "pos": "before",
            "value": "?"
        }, {
            "name": "秘鲁新索尔",
            "pos": "before",
            "value": "S/"
        }, {
            "name": "缅甸开亚特",
            "pos": "before",
            "value": "K"
        }, {
            "name": "摩尔多瓦列伊",
            "pos": "before",
            "value": "MDL"
        }, {
            "name": "摩洛哥迪拉姆",
            "pos": "before",
            "value": "dh"
        }, {
            "name": "莫桑比克梅蒂卡尔",
            "pos": "before",
            "value": "MTn"
        }, {
            "name": "墨西哥比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "纳米比亚元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "南非兰特",
            "pos": "before",
            "value": "R"
        }, {
            "name": "南苏丹镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "尼加拉瓜科多巴",
            "pos": "before",
            "value": "C$"
        }, {
            "name": "尼泊尔卢比",
            "pos": "before",
            "value": "Rs"
        }, {
            "name": "尼日利亚奈拉",
            "pos": "before",
            "value": "?"
        }, {
            "name": "挪威克朗",
            "pos": "after",
            "value": "kr"
        }, {
            "name": "乔治亚拉瑞",
            "pos": "before",
            "value": "GEL"
        }, {
            "name": "人民币(离岸)",
            "pos": "before",
            "value": "¥"
        }, {
            "name": "瑞典克朗",
            "pos": "after",
            "value": "kr"
        }, {
            "name": "瑞士法郎",
            "pos": "before",
            "value": "CHF"
        }, {
            "name": "塞尔维亚第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "塞拉利昂利昂",
            "pos": "before",
            "value": "SLL"
        }, {
            "name": "塞舌尔卢比",
            "pos": "before",
            "value": "SCR"
        }, {
            "name": "沙特里亚尔",
            "pos": "before",
            "value": "Rial"
        }, {
            "name": "圣多美多布拉",
            "pos": "before",
            "value": "Db"
        }, {
            "name": "圣赫勒拿群岛磅",
            "pos": "before",
            "value": "£"
        }, {
            "name": "斯里兰卡卢比",
            "pos": "before",
            "value": "Rs"
        }, {
            "name": "斯威士兰里兰吉尼",
            "pos": "before",
            "value": "SZL"
        }, {
            "name": "苏丹镑",
            "pos": "before",
            "value": "SDG"
        }, {
            "name": "苏里南元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "所罗门群岛元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "索马里先令",
            "pos": "before",
            "value": "SOS"
        }, {
            "name": "塔吉克斯坦索莫尼",
            "pos": "before",
            "value": "Som"
        }, {
            "name": "太平洋法郎",
            "pos": "after",
            "value": "FCFP"
        }, {
            "name": "泰国铢",
            "pos": "before",
            "value": "?"
        }, {
            "name": "坦桑尼亚先令",
            "pos": "before",
            "value": "TSh"
        }, {
            "name": "汤加潘加",
            "pos": "before",
            "value": "T$"
        }, {
            "name": "特立尼达和多巴哥元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "突尼斯第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "土耳其里拉",
            "pos": "before",
            "value": "?"
        }, {
            "name": "瓦努阿图瓦图",
            "pos": "before",
            "value": "VUV"
        }, {
            "name": "危地马拉格查尔",
            "pos": "before",
            "value": "Q"
        }, {
            "name": "委内瑞拉博利瓦",
            "pos": "before",
            "value": "Bs"
        }, {
            "name": "文莱元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "乌干达先令",
            "pos": "before",
            "value": "UGX"
        }, {
            "name": "乌克兰格里夫尼亚",
            "pos": "before",
            "value": "грн."
        }, {
            "name": "乌拉圭比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "乌兹别克斯坦苏姆",
            "pos": "before",
            "value": "so?m"
        }, {
            "name": "西萨摩亚塔拉",
            "pos": "before",
            "value": "WST"
        }, {
            "name": "新加坡元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "新台币",
            "pos": "before",
            "value": "NT$"
        }, {
            "name": "新西兰元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "匈牙利福林",
            "pos": "before",
            "value": "Ft"
        }, {
            "name": "叙利亚镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "牙买加元",
            "pos": "before",
            "value": "$"
        }, {
            "name": "亚美尼亚德拉姆",
            "pos": "before",
            "value": "Dram"
        }, {
            "name": "也门里亚尔",
            "pos": "before",
            "value": "Rial"
        }, {
            "name": "伊拉克第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "伊朗里亚尔",
            "pos": "before",
            "value": "Rial"
        }, {
            "name": "以色列新谢克尔",
            "pos": "before",
            "value": "?"
        }, {
            "name": "印度卢比",
            "pos": "before",
            "value": "?"
        }, {
            "name": "印度尼西亚卢比",
            "pos": "before",
            "value": "Rp"
        }, {
            "name": "约旦第纳尔",
            "pos": "before",
            "value": "din"
        }, {
            "name": "越南盾",
            "pos": "after",
            "value": "?"
        }, {
            "name": "赞比亚克瓦查",
            "pos": "before",
            "value": "ZMW"
        }, {
            "name": "直布罗陀镑",
            "pos": "before",
            "value": "£"
        }, {
            "name": "智利比索",
            "pos": "before",
            "value": "$"
        }, {
            "name": "中非金融合作法郎",
            "pos": "before",
            "value": "FCFA"
        }
    ],
    dateFmtList: [
        {
            "name": "1930-08-05",
            "value": "yyyy-MM-dd"
        },
        {
            "name": "1930/8/5",
            "value": "yyyy/MM/dd"
        },
        {
            "name": "1930年8月5日",
            "value": 'yyyy"年"M"月"d"日"'
        },
        {
            "name": "08-05",
            "value": "MM-dd"
        },
        {
            "name": "8-5",
            "value": "M-d"
        },
        {
            "name": "8月5日",
            "value": 'M"月"d"日"'
        },
        {
            "name": "13:30:30",
            "value": "h:mm:ss"
        },
        {
            "name": "13:30",
            "value": "h:mm"
        },
        {
            "name": "下午01:30",
            "value": '上午/下午 hh:mm'
        },
        {
            "name": "下午1:30",
            "value": '上午/下午 h:mm'
        },
        {
            "name": "下午1:30:30",
            "value": '上午/下午 h:mm:ss'
        },
        {
            "name": "08-05 下午01:30",
            "value": "MM-dd 上午/下午 hh:mm"
        },
        // {
        //     "name": "1930年8月5日星期二",
        //     "value": ''
        // },
        // {
        //     "name": "1930年8月5日星期二 下午1:30:30",
        //     "value": ''
        // },
    ],
    numFmtList: [
        {
            "name": "1235",
            "value": "0"
        },
        {
            "name": "1234.56",
            "value": "0.00"
        },
        {
            "name": "1,235",
            "value": "#,##0"
        },
        {
            "name": "1,234.56",
            "value": "#,##0.00"
        },
        {
            "name": "1,235",
            "value": "#,##0_);(#,##0)"
        },
        {
            "name": "1,235",
            "value": "#,##0_);[Red](#,##0)"
        },
        {
            "name": "1,234.56",
            "value": "#,##0.00_);(#,##0.00)"
        },
        {
            "name": "1,234.56",
            "value": "#,##0.00_);[Red](#,##0.00)"
        },
        {
            "name": "$1,235",
            "value": "$#,##0_);($#,##0)"
        },
        {
            "name": "$1,235",
            "value": "$#,##0_);[Red]($#,##0)"
        },
        {
            "name": "$1,234.56",
            "value": "$#,##0.00_);($#,##0.00)"
        },
        {
            "name": "$1,234.56",
            "value": "$#,##0.00_);[Red]($#,##0.00)"
        },
        {
            "name": "1234.56",
            "value": "@"
        },
        {
            "name": "123456%",
            "value": "0%"
        },
        {
            "name": "123456.00%",
            "value": "0.00%"
        },
        {
            "name": "1.23E+03",
            "value": "0.00E+00"
        },
        {
            "name": "1.2E+3",
            "value": "##0.0E+0"
        },
        {
            "name": "1234 5/9",
            "value": "# ?/?"
        },
        {
            "name": "1234 14/25",
            "value": "# ??/??"
        },
        {
            "name": "$ 1,235",
            "value": '_($* #,##0_);_(...($* "-"_);_(@_)'
        },
        {
            "name": "1,235",
            "value": '_(* #,##0_);_(*..._(* "-"_);_(@_)'
        },
        {
            "name": "$ 1,234.56",
            // "value": '_($* #,##0.00_)...* "-"??_);_(@_)'
            "value": '_($* #,##0.00_);_(...($* "-"_);_(@_)'
        },
        {
            "name": "1,234.56",
            "value": '_(* #,##0.00_);...* "-"??_);_(@_)'
        },
    ],
    createDialog: function(type){
        let _this = this;

        const currencyDetail = locale().currencyDetail;
        const locale_format = locale().format;
        const locale_button = locale().button;

        this.moneyFmtList = [
            {'name': currencyDetail.RMB,'pos': 'before','value': '¥'},
            {'name': currencyDetail.USdollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.EUR,'pos': 'before','value': '€'},
            {'name': currencyDetail.GBP,'pos': 'before','value': '£'},
            {'name': currencyDetail.HK,'pos': 'before','value': '$'},
            {'name': currencyDetail.JPY,'pos': 'before','value': '¥'},
            {'name': currencyDetail.AlbanianLek,'pos': 'before','value': 'Lek'},
            {'name': currencyDetail.AlgerianDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.Afghani,'pos': 'after','value': 'Af'},
            {'name': currencyDetail.ArgentinePeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.UnitedArabEmiratesDirham,'pos': 'before','value': 'dh'},
            {'name': currencyDetail.ArubanFlorin,'pos': 'before','value': 'Afl'},
            {'name': currencyDetail.OmaniRial,'pos': 'before','value': 'Rial'},
            {'name': currencyDetail.Azerbaijanimanat,'pos': 'before','value': '?'},
            {'name': currencyDetail.EgyptianPound,'pos': 'before','value': '£'},
            {'name': currencyDetail.EthiopianBirr,'pos': 'before','value': 'Birr'},
            {'name': currencyDetail.AngolaKwanza,'pos': 'before','value': 'Kz'},
            {'name': currencyDetail.AustralianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.Patacas,'pos': 'before','value': 'MOP'},
            {'name': currencyDetail.BarbadosDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.PapuaNewGuineaKina,'pos': 'before','value': 'PGK'},
            {'name': currencyDetail.BahamianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.PakistanRupee,'pos': 'before','value': 'Rs'},
            {'name': currencyDetail.ParaguayanGuarani,'pos': 'after','value': 'Gs'},
            {'name': currencyDetail.BahrainiDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.PanamanianBalboa,'pos': 'before','value': 'B/'},
            {'name': currencyDetail.Brazilianreal,'pos': 'before','value': 'R$'},
            {'name': currencyDetail.Belarusianruble,'pos': 'after','value': 'р'},
            {'name': currencyDetail.BermudianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.BulgarianLev,'pos': 'before','value': 'lev'},
            {'name': currencyDetail.IcelandKrona,'pos': 'before','value': 'kr'},
            {'name': currencyDetail.BosniaHerzegovinaConvertibleMark,'pos': 'before','value': 'KM'},
            {'name': currencyDetail.PolishZloty,'pos': 'after','value': 'z?'},
            {'name': currencyDetail.Boliviano,'pos': 'before','value': 'Bs'},
            {'name': currencyDetail.BelizeDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.BotswanaPula,'pos': 'before','value': 'P'},
            {'name': currencyDetail.NotDannuzhamu,'pos': 'before','value': 'Nu'},
            {'name': currencyDetail.BurundiFranc,'pos': 'before','value': 'FBu'},
            {'name': currencyDetail.NorthKoreanWon,'pos': 'before','value': '?KP'},
            {'name': currencyDetail.DanishKrone,'pos': 'after','value': 'kr'},
            {'name': currencyDetail.EastCaribbeanDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.DominicaPeso,'pos': 'before','value': 'RD$'},
            {'name': currencyDetail.RussianRuble,'pos': 'after','value': '?'},
            {'name': currencyDetail.EritreanNakfa,'pos': 'before','value': 'Nfk'},
            {'name': currencyDetail.CFAfranc,'pos': 'before','value': 'CFA'},
            {'name': currencyDetail.PhilippinePeso,'pos': 'before','value': '?'},
            {'name': currencyDetail.FijiDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.CapeVerdeEscudo,'pos': 'before','value': 'CVE'},
            {'name': currencyDetail.FalklandIslandsPound,'pos': 'before','value': '£'},
            {'name': currencyDetail.GambianDalasi,'pos': 'before','value': 'GMD'},
            {'name': currencyDetail.Congolesefranc,'pos': 'before','value': 'FrCD'},
            {'name': currencyDetail.ColombianPeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.CostaRicanColon,'pos': 'before','value': '?'},
            {'name': currencyDetail.CubanPeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.Cubanconvertiblepeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.GuyanaDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.KazakhstanTenge,'pos': 'before','value': '?'},
            {'name': currencyDetail.Haitiangourde,'pos': 'before','value': 'HTG'},
            {'name': currencyDetail.won,'pos': 'before','value': '?'},
            {'name': currencyDetail.NetherlandsAntillesGuilder,'pos': 'before','value': 'NAf.'},
            {'name': currencyDetail.Honduraslempiras,'pos': 'before','value': 'L'},
            {'name': currencyDetail.DjiboutiFranc,'pos': 'before','value': 'Fdj'},
            {'name': currencyDetail.KyrgyzstanSom,'pos': 'before','value': 'KGS'},
            {'name': currencyDetail.GuineaFranc,'pos': 'before','value': 'FG'},
            {'name': currencyDetail.CanadianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.GhanaianCedi,'pos': 'before','value': 'GHS'},
            {'name': currencyDetail.Cambodianriel,'pos': 'before','value': 'Riel'},
            {'name': currencyDetail.CzechKoruna,'pos': 'after','value': 'K?'},
            {'name': currencyDetail.ZimbabweDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.QatariRiyal,'pos': 'before','value': 'Rial'},
            {'name': currencyDetail.CaymanIslandsDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.Comorianfranc,'pos': 'before','value': 'CF'},
            {'name': currencyDetail.KuwaitiDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.CroatianKuna,'pos': 'before','value': 'kn'},
            {'name': currencyDetail.KenyanShilling,'pos': 'before','value': 'Ksh'},
            {'name': currencyDetail.LesothoLoti,'pos': 'before','value': 'LSL'},
            {'name': currencyDetail.LaoKip,'pos': 'before','value': '?'},
            {'name': currencyDetail.LebanesePound,'pos': 'before','value': 'L£'},
            {'name': currencyDetail.Lithuanianlitas,'pos': 'before','value': 'Lt'},
            {'name': currencyDetail.LibyanDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.LiberianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.RwandaFranc,'pos': 'before','value': 'RF'},
            {'name': currencyDetail.RomanianLeu,'pos': 'before','value': 'RON'},
            {'name': currencyDetail.MalagasyAriary,'pos': 'before','value': 'Ar'},
            {'name': currencyDetail.MaldivianRufiyaa,'pos': 'before','value': 'Rf'},
            {'name': currencyDetail.MalawiKwacha,'pos': 'before','value': 'MWK'},
            {'name': currencyDetail.MalaysianRinggit,'pos': 'before','value': 'RM'},
            {'name': currencyDetail.MacedoniawearingDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.MauritiusRupee,'pos': 'before','value': 'MURs'},
            {'name': currencyDetail.MauritanianOuguiya,'pos': 'before','value': 'MRO'},
            {'name': currencyDetail.MongolianTugrik,'pos': 'before','value': '?'},
            {'name': currencyDetail.BangladeshiTaka,'pos': 'before','value': '?'},
            {'name': currencyDetail.PeruvianNuevoSol,'pos': 'before','value': 'S/'},
            {'name': currencyDetail.MyanmarKyat,'pos': 'before','value': 'K'},
            {'name': currencyDetail.MoldovanLeu,'pos': 'before','value': 'MDL'},
            {'name': currencyDetail.MoroccanDirham,'pos': 'before','value': 'dh'},
            {'name': currencyDetail.MozambiqueMetical,'pos': 'before','value': 'MTn'},
            {'name': currencyDetail.MexicanPeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.NamibianDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.SouthAfricanRand,'pos': 'before','value': 'R'},
            {'name': currencyDetail.SouthSudanesePound,'pos': 'before','value': '£'},
            {'name': currencyDetail.NicaraguaCordoba,'pos': 'before','value': 'C$'},
            {'name': currencyDetail.NepaleseRupee,'pos': 'before','value': 'Rs'},
            {'name': currencyDetail.NigerianNaira,'pos': 'before','value': '?'},
            {'name': currencyDetail.NorwegianKrone,'pos': 'after','value': 'kr'},
            {'name': currencyDetail.GeorgianLari,'pos': 'before','value': 'GEL'},
            {'name': currencyDetail.RenminbiOffshore,'pos': 'before','value': '¥'},
            {'name': currencyDetail.SwedishKrona,'pos': 'after','value': 'kr'},
            {'name': currencyDetail.SwissFranc,'pos': 'before','value': 'CHF'},
            {'name': currencyDetail.SerbianDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.SierraLeone,'pos': 'before','value': 'SLL'},
            {'name': currencyDetail.SeychellesRupee,'pos': 'before','value': 'SCR'},
            {'name': currencyDetail.SaudiRiyal,'pos': 'before','value': 'Rial'},
            {'name': currencyDetail.SaoTomeDobra,'pos': 'before','value': 'Db'},
            {'name': currencyDetail.SaintHelenapound,'pos': 'before','value': '£'},
            {'name': currencyDetail.SriLankaRupee,'pos': 'before','value': 'Rs'},
            {'name': currencyDetail.SwazilandLilangeni,'pos': 'before','value': 'SZL'},
            {'name': currencyDetail.SudanesePound,'pos': 'before','value': 'SDG'},
            {'name': currencyDetail.Surinamesedollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.SolomonIslandsDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.SomaliShilling,'pos': 'before','value': 'SOS'},
            {'name': currencyDetail.TajikistanSomoni,'pos': 'before','value': 'Som'},
            {'name': currencyDetail.PacificFranc,'pos': 'after','value': 'FCFP'},
            {'name': currencyDetail.ThaiBaht,'pos': 'before','value': '?'},
            {'name': currencyDetail.TanzanianShilling,'pos': 'before','value': 'TSh'},
            {'name': currencyDetail.TonganPaanga,'pos': 'before','value': 'T$'},
            {'name': currencyDetail.TrinidadandTobagoDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.TunisianDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.TurkishLira,'pos': 'before','value': '?'},
            {'name': currencyDetail.VanuatuVatu,'pos': 'before','value': 'VUV'},
            {'name': currencyDetail.GuatemalanQuetzal,'pos': 'before','value': 'Q'},
            {'name': currencyDetail.CommissionBolivar,'pos': 'before','value': 'Bs'},
            {'name': currencyDetail.BruneiDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.UgandanShilling,'pos': 'before','value': 'UGX'},
            {'name': currencyDetail.UkrainianHryvnia,'pos': 'before','value': 'грн.'},
            {'name': currencyDetail.UruguayanPeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.Uzbekistansom,'pos': 'before','value': 'so?m'},
            {'name': currencyDetail.WesternSamoaTala,'pos': 'before','value': 'WST'},
            {'name': currencyDetail.SingaporeDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.NT,'pos': 'before','value': 'NT$'},
            {'name': currencyDetail.NewZealandDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.HungarianForint,'pos': 'before','value': 'Ft'},
            {'name': currencyDetail.SyrianPound,'pos': 'before','value': '£'},
            {'name': currencyDetail.JamaicanDollar,'pos': 'before','value': '$'},
            {'name': currencyDetail.ArmenianDram,'pos': 'before','value': 'Dram'},
            {'name': currencyDetail.YemeniRial,'pos': 'before','value': 'Rial'},
            {'name': currencyDetail.IraqiDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.IranianRial,'pos': 'before','value': 'Rial'},
            {'name': currencyDetail.NewIsraeliShekel,'pos': 'before','value': '?'},
            {'name': currencyDetail.IndianRupee,'pos': 'before','value': '?'},
            {'name': currencyDetail.IndonesianRupiah,'pos': 'before','value': 'Rp'},
            {'name': currencyDetail.JordanianDinar,'pos': 'before','value': 'din'},
            {'name': currencyDetail.VND,'pos': 'after','value': '?'},
            {'name': currencyDetail.ZambianKwacha,'pos': 'before','value': 'ZMW'},
            {'name': currencyDetail.GibraltarPound,'pos': 'before','value': '£'},
            {'name': currencyDetail.ChileanPeso,'pos': 'before','value': '$'},
            {'name': currencyDetail.CFAFrancBEAC,'pos': 'before','value': 'FCFA'}
        ];

        this.dateFmtList = locale().dateFmtList;

        this.numFmtList = [
            {
                "name": "1235",
                "value": "0"
            },
            {
                "name": "1234.56",
                "value": "0.00"
            },
            {
                "name": "1,235",
                "value": "#,##0"
            },
            {
                "name": "1,234.56",
                "value": "#,##0.00"
            },
            {
                "name": "1,235",
                "value": "#,##0_);(#,##0)"
            },
            {
                "name": "1,235",
                "value": "#,##0_);[Red](#,##0)"
            },
            {
                "name": "1,234.56",
                "value": "#,##0.00_);(#,##0.00)"
            },
            {
                "name": "1,234.56",
                "value": "#,##0.00_);[Red](#,##0.00)"
            },
            {
                "name": "$1,235",
                "value": "$#,##0_);($#,##0)"
            },
            {
                "name": "$1,235",
                "value": "$#,##0_);[Red]($#,##0)"
            },
            {
                "name": "$1,234.56",
                "value": "$#,##0.00_);($#,##0.00)"
            },
            {
                "name": "$1,234.56",
                "value": "$#,##0.00_);[Red]($#,##0.00)"
            },
            {
                "name": "1234.56",
                "value": "@"
            },
            {
                "name": "123456%",
                "value": "0%"
            },
            {
                "name": "123456.00%",
                "value": "0.00%"
            },
            {
                "name": "1.23E+03",
                "value": "0.00E+00"
            },
            {
                "name": "1.2E+3",
                "value": "##0.0E+0"
            },
            {
                "name": "1234 5/9",
                "value": "# ?/?"
            },
            {
                "name": "1234 14/25",
                "value": "# ??/??"
            },
            {
                "name": "$ 1,235",
                "value": '_($* #,##0_);_(...($* "-"_);_(@_)'
            },
            {
                "name": "1,235",
                "value": '_(* #,##0_);_(*..._(* "-"_);_(@_)'
            },
            {
                "name": "$ 1,234.56",
                // "value": '_($* #,##0.00_)...* "-"??_);_(@_)'
                "value": '_($* #,##0.00_);_(...($* "-"_);_(@_)'
            },
            {
                "name": "1,234.56",
                "value": '_(* #,##0.00_);...* "-"??_);_(@_)'
            },
        ]    

        $("#luckysheet-modal-dialog-mask").show();
        $("#luckysheet-moreFormat-dialog").remove();

        let title = "", content = '';

        if(type == "morecurrency"){ //货币
            title = locale_format.titleCurrency;

            let listHtml = '';

            for(let i = 0; i < _this.moneyFmtList.length; i++){
                let name = _this.moneyFmtList[i]["name"];
                let pos = _this.moneyFmtList[i]["pos"];
                let value = _this.moneyFmtList[i]["value"];

                listHtml += '<div class="listItem">'+
                                '<div class="name">'+ name +'</div>'+
                                '<div class="value">'+ value +'</div>'+
                                '<input type="hidden" value="'+ pos +'"/>'+
                            '</div>';
            }

            content = '<div class="box" id="morecurrency">'+
                        '<div class="decimal">'+
                            '<label>'+ locale_format.decimalPlaces +':</label>'+
                            '<input type="number" class="formulaInputFocus" value="2" min="0" max="9"/>'+
                        '</div>'+
                        '<div class="listbox">'+ listHtml +'</div>'+
                      '</div>';
        }
        else if(type == "moredatetime"){ //日期时间
            title = locale_format.titleDateTime;

            let listHtml = '';

            for(let i = 0; i < _this.dateFmtList.length; i++){
                let name = _this.dateFmtList[i]["name"];
                let value = _this.dateFmtList[i]["value"];

                listHtml += '<div class="listItem">'+
                                '<div class="name">'+ name +'</div>'+
                                '<div class="value">'+ value +'</div>'+
                            '</div>';
            }

            content = '<div class="box" id="moredatetime">'+
                        '<div class="listbox">'+ listHtml +'</div>'+
                      '</div>';
        }
        else if(type == "moredigit"){ //数字
            title = locale_format.titleNumber;

            let listHtml = '';

            for(let i = 0; i < _this.numFmtList.length; i++){
                let name = _this.numFmtList[i]["name"];
                let value = _this.numFmtList[i]["value"];

                listHtml += '<div class="listItem">'+
                                '<div class="name">'+ name +'</div>'+
                                '<div class="value">'+ value +'</div>'+
                            '</div>';
            }

            content = '<div class="box" id="moredigit">'+
                        '<div class="listbox">'+ listHtml +'</div>'+
                      '</div>';
        }

        $("body").first().append(replaceHtml(modelHTML, { 
            "id": "luckysheet-moreFormat-dialog", 
            "addclass": "luckysheet-moreFormat-dialog", 
            "title": title, 
            "content": content, 
            "botton": '<button id="luckysheet-moreFormat-dialog-confirm" class="btn btn-primary">'+ locale_button.confirm +'</button><button class="btn btn-default luckysheet-model-close-btn">'+ locale_button.cancel +'</button>', 
            "style": "z-index:100003" 
        }));
        let $t = $("#luckysheet-moreFormat-dialog").find(".luckysheet-modal-dialog-content").css("min-width", 400).end(), 
            myh = $t.outerHeight(), 
            myw = $t.outerWidth();
        let winw = $(window).width(), winh = $(window).height();
        let scrollLeft = $(document).scrollLeft(), scrollTop = $(document).scrollTop();
        $("#luckysheet-moreFormat-dialog").css({ "left": (winw + scrollLeft - myw) / 2, "top": (winh + scrollTop - myh) / 3 }).show();
        
        $("#luckysheet-moreFormat-dialog .listbox .listItem").eq(0).addClass("on");
    },
    init: function(){
        let _this = this;

        //选择格式
        $(document).on("click", "#luckysheet-moreFormat-dialog .listbox .listItem", function(){
            $(this).addClass("on").siblings().removeClass("on");
        });

        //确定
        $(document).off("click.moreFormatConfirm").on("click.moreFormatConfirm", "#luckysheet-moreFormat-dialog #luckysheet-moreFormat-dialog-confirm", function(){
            $("#luckysheet-moreFormat-dialog").hide();
            $("#luckysheet-modal-dialog-mask").hide();

            let d = editor.deepCopyFlowData(Store.flowdata);

            let value = $("#luckysheet-moreFormat-dialog .listbox .listItem.on .value").text();
            let id = $(this).parents("#luckysheet-moreFormat-dialog").find(".box").attr("id");

            if(id == "morecurrency"){ //货币
                if(value.indexOf("?") != -1){
                    return;
                }

                let decimal = parseInt($("#luckysheet-moreFormat-dialog .decimal input").val().trim());

                if(decimal.toString() == "NaN" || decimal < 0 || decimal > 9){
                    if(isEditMode()){
                        alert("小数位数必须在0-9之间!");
                    }   
                    else{
                        tooltip.info("小数位数必须在0-9之间!", "");
                    }

                    return;
                }

                let str = "";

                if(decimal > 0){
                    for(let i = 1; i <= decimal; i++){
                        str += "0";
                    }

                    str = "0." + str;
                }
                else{
                    str = "#";
                }

                let pos = $("#luckysheet-moreFormat-dialog .listbox .listItem.on input:hidden").val();

                if(pos == "before"){
                    str = '"' + value + '" ' + str;
                }
                else if(pos == "after"){
                    str = str + ' "' + value + '"';
                }

                menuButton.updateFormat(d, "ct", str);
            }
            else if(id == "moredatetime"){ //日期时间
                menuButton.updateFormat(d, "ct", value);
            }
            else if(id == "moredigit"){ //数字
                menuButton.updateFormat(d, "ct", value);
            }
        })
    }
}

export default luckysheetMoreFormat;