src/cm/media/js/lib/yui/yui_3.10.3/build/template-base/template-base-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('template-base', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
Virtual rollup of the `template-base` and `template-micro` modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
@module template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
@main template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
@since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
Provides a generic API for using template engines such as Handlebars and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
`Y.Template.Micro`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
@module template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
@submodule template-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
@since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
Provides a generic API for using template engines such as Handlebars and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
`Y.Template.Micro`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
### Examples
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
Using with `Y.Template.Micro` (the default template engine):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    YUI().use('template', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        var micro = new Y.Template(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
            html  = micro.render('<%= data.message %>', {message: 'hello!'});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        // ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
Using with Handlebars:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    YUI().use('template-base', 'handlebars', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
        var handlebars = new Y.Template(Y.Handlebars),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
            html       = handlebars.render('{{message}}', {message: 'hello!'});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        // ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
@class Template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
@param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    `Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
@param {Object} [defaults] Default options to use when instance methods are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    invoked.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
@constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
@since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
function Template(engine, defaults) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    Default options.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    @property {Object} defaults
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    @since 3.8.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    this.defaults = defaults;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    Template engine class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    @property {Mixed} engine
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    @since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    this.engine = engine || Y.Template.Micro;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    if (!this.engine) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
        Y.error('No template engine loaded.');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
Template.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
    Compiles a template with the current template engine and returns a compiled
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    @method compile
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    @param {String} text Template text to compile.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    @param {Object} [options] Options to pass along to the template engine. See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        template engine docs for options supported by each engine.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    @return {Function} Compiled template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    @since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    compile: function (text, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        options = options ? Y.merge(this.defaults, options) : this.defaults;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
        return this.engine.compile(text, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    Precompiles a template with the current template engine and returns a string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    containing JavaScript source code for the precompiled template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    @method precompile
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    @param {String} text Template text to compile.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    @param {Object} [options] Options to pass along to the template engine. See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        template engine docs for options supported by each engine.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    @return {String} Source code for the precompiled template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    @since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
    precompile: function (text, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        options = options ? Y.merge(this.defaults, options) : this.defaults;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        return this.engine.precompile(text, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    Compiles and renders a template with the current template engine in a single
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    step, and returns the rendered result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    @method render
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    @param {String} text Template text to render.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    @param {Object} data Data object to provide when rendering the template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    @param {Object} [options] Options to pass along to the template engine. See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        template engine docs for options supported by each engine.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    @return {String} Rendered result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    @since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    render: function (text, data, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        options = options ? Y.merge(this.defaults, options) : this.defaults;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        if (this.engine.render) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            return this.engine.render(text, data, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
        return this.engine.compile(text, options)(data, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    Revives a precompiled template function into an executable template function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    using the current template engine. The precompiled code must already have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    been evaluated; this method won't evaluate it for you.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    @method revive
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    @param {Function} precompiled Precompiled template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    @param {Object} [options] Options to pass along to the template engine. See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        template engine docs for options supported by each engine.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    @return {Function} Compiled template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    @since 3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    revive: function (precompiled, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        options = options ? Y.merge(this.defaults, options) : this.defaults;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        return this.engine.revive ? this.engine.revive(precompiled, options) :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
                precompiled;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
// Copy existing namespaced properties from Y.Template to the Template function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
// if Y.Template already exists, then make the function the new Y.Template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
// This ensures that other modules can safely add stuff to the Y.Template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
// namespace even if they're loaded before this one.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
Y.Template = Y.Template ? Y.mix(Template, Y.Template) : Template;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
}, '3.10.3', {"requires": ["yui-base"]});