extends ../layouts/basic

block extra_head
    title Spreadsheet Tool - Apache ECharts
    link(rel="stylesheet", type="text/css", href="#{cdnPayRoot}/#{ecWWWLang}/vendors/handsontable/0.26.1/dist/handsontable.full.min.css?_v_=#{cdnPayVersion}")
    link(rel="stylesheet", type="text/css", href="#{cdnPayRoot}/#{ecWWWLang}/css/spreadsheet.css?_v_=#{homeVersion}")
    script(src="vendors/esl.js")


block content

    nav(class='navbar navbar-default navbar-fixed-top')
        include ../components/nav

    .ecdoc-sprsht

block extra_js

    block global_args_extra

    script(type="text/javascript").
        document.getElementById('nav-resources').className = 'active';

        var vendorPath = '../vendors';

        define('globalArgs', extend({
            version: '#{homeVersion}',
            basePath: './'
        }, window.globalArgsExtra || {}));

        require.config({
            baseUrl: '#{cdnPayRoot}/#{ecWWWLang}/js',
            paths: {
                dt: vendorPath + '/dt/0.0.1',
                tpl: vendorPath + '/dt/0.0.1/tplLoader',
                etpl: vendorPath + '/etpl/3.0.0/etpl.min',
                signals: vendorPath + '/signals/1.0.0/signals.min',
                hasher: vendorPath + '/hasher/1.2.0/hasher.min',
                jquery: vendorPath + '/jquery/jquery.min',
                jquerymousewheel: vendorPath + '/jquery-mousewheel/3.1.11/jquery.mousewheel.min',
                handsontable: vendorPath + '/handsontable/0.26.1/dist/handsontable.full.min',
                latinize: vendorPath + '/latinize/latinize',
                numeral: vendorPath + '/numeral/1.4.7/numeral.min',
                immutable: vendorPath + '/immutable/3.7.4/dist/immutable'
            },
            urlArgs: '_v_=#{homeVersion}'
        });

        require(['spreadsheet/spreadsheet'], function (spreadsheet) {
            spreadsheet.init();
        });

        function extend(tar, src) {
            for (var name in src) {
                if (src.hasOwnProperty(name)) {
                    tar[name] = src[name];
                }
            }
            return tar;
        }
