src/cm/media/js/lib/yui/yui_3.10.3/build/handlebars-base/handlebars-base-debug.js
author ymh <ymh.work@gmail.com>
Fri, 14 Mar 2014 13:16:10 +0100
changeset 611 fa66f4bb1563
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add some more custom config and put every thing in comment in the custom.yaml template
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('handlebars-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
Handlebars.js - Copyright (C) 2011 Yehuda Katz
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
https://raw.github.com/wycats/handlebars.js/master/LICENSE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
// This file contains YUI-specific wrapper code and overrides for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
// handlebars-base module.
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
Handlebars is a simple template language inspired by Mustache.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
This is a YUI port of the original Handlebars project, which can be found at
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
<https://github.com/wycats/handlebars.js>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
@module handlebars
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
@main handlebars
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
@since 3.5.0
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
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
Provides basic Handlebars template rendering functionality. Use this module when
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
you only need to render pre-compiled templates.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
@module handlebars
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
@submodule handlebars-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
Handlebars is a simple template language inspired by Mustache.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
This is a YUI port of the original Handlebars project, which can be found at
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
<https://github.com/wycats/handlebars.js>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
@class Handlebars
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
var Handlebars = Y.namespace('Handlebars');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
Handlebars.VERSION = "1.0.0-rc.4";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
Handlebars.COMPILER_REVISION = 3;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
Handlebars.REVISION_CHANGES = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
  2: '== 1.0.0-rc.3',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
  3: '>= 1.0.0-rc.4'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
Handlebars.helpers  = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
Handlebars.partials = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
var toString = Object.prototype.toString,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    functionType = '[object Function]',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    objectType = '[object Object]';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
Handlebars.registerHelper = function(name, fn, inverse) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
  if (toString.call(name) === objectType) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    if (inverse || fn) { throw new Handlebars.Exception('Arg not supported with multiple helpers'); }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    Handlebars.Utils.extend(this.helpers, name);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
  } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    if (inverse) { fn.not = inverse; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    this.helpers[name] = fn;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
Handlebars.registerPartial = function(name, str) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
  if (toString.call(name) === objectType) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    Handlebars.Utils.extend(this.partials,  name);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
  } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    this.partials[name] = str;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
  }
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
Handlebars.registerHelper('helperMissing', function(arg) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
  if(arguments.length === 2) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    return undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
  } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    throw new Error("Could not find property '" + arg + "'");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
Handlebars.registerHelper('blockHelperMissing', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
  var inverse = options.inverse || function() {}, fn = options.fn;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
  var type = toString.call(context);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
  if(type === functionType) { context = context.call(this); }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
  if(context === true) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    return fn(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
  } else if(context === false || context == null) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    return inverse(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
  } else if(type === "[object Array]") {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    if(context.length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
      return Handlebars.helpers.each(context, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
      return inverse(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
  } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    return fn(context);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
Handlebars.K = function() {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
Handlebars.createFrame = Object.create || function(object) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
  Handlebars.K.prototype = object;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
  var obj = new Handlebars.K();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
  Handlebars.K.prototype = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
  return obj;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
Handlebars.logger = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
  DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
  methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
  // can be overridden in the host environment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
  log: function(level, obj) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    if (Handlebars.logger.level <= level) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
      var method = Handlebars.logger.methodMap[level];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
      if (typeof console !== 'undefined' && console[method]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        console[method].call(console, obj);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
      }
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
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
Handlebars.registerHelper('each', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
  var fn = options.fn, inverse = options.inverse;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
  var i = 0, ret = "", data;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
  if (options.data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    data = Handlebars.createFrame(options.data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
  if(context && typeof context === 'object') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    if(context instanceof Array){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
      for(var j = context.length; i<j; i++) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        if (data) { data.index = i; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        ret = ret + fn(context[i], { data: data });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
      for(var key in context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        if(context.hasOwnProperty(key)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
          if(data) { data.key = key; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
          ret = ret + fn(context[key], {data: data});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
          i++;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
  if(i === 0){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    ret = inverse(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
  return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
Handlebars.registerHelper('if', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
  var type = toString.call(context);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
  if(type === functionType) { context = context.call(this); }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
  if(!context || Handlebars.Utils.isEmpty(context)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
    return options.inverse(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
  } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
    return options.fn(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
Handlebars.registerHelper('unless', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
  return Handlebars.helpers['if'].call(this, context, {fn: options.inverse, inverse: options.fn});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
Handlebars.registerHelper('with', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
  if (!Handlebars.Utils.isEmpty(context)) return options.fn(context);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
Handlebars.registerHelper('log', function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
  var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
  Handlebars.log(level, context);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
Handlebars.Exception = function(message) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
  var tmp = Error.prototype.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
  for (var idx = 0; idx < errorProps.length; idx++) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    this[errorProps[idx]] = tmp[errorProps[idx]];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
Handlebars.Exception.prototype = new Error();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
// Build out our basic SafeString type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
Handlebars.SafeString = function(string) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
  this.string = string;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
Handlebars.SafeString.prototype.toString = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
  return this.string.toString();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
var escape = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
  "&": "&amp;",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
  "<": "&lt;",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
  ">": "&gt;",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
  '"': "&quot;",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
  "'": "&#x27;",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
  "`": "&#x60;"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
var badChars = /[&<>"'`]/g;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
var possible = /[&<>"'`]/;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
var escapeChar = function(chr) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
  return escape[chr] || "&amp;";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
Handlebars.Utils = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
  extend: function(obj, value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    for(var key in value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
      if(value.hasOwnProperty(key)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        obj[key] = value[key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
  escapeExpression: function(string) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    // don't escape SafeStrings, since they're already safe
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
    if (string instanceof Handlebars.SafeString) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
      return string.toString();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    } else if (string == null || string === false) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
      return "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    // Force a string conversion as this will be done by the append regardless and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    // the regex test will do this transparently behind the scenes, causing issues if
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    // an object's to string has escaped characters in it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    string = string.toString();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    if(!possible.test(string)) { return string; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    return string.replace(badChars, escapeChar);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
  isEmpty: function(value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    if (!value && value !== 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
      return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
    } else if(toString.call(value) === "[object Array]" && value.length === 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
      return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
      return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
Handlebars.VM = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
  template: function(templateSpec) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    // Just add water
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    var container = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
      escapeExpression: Handlebars.Utils.escapeExpression,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
      invokePartial: Handlebars.VM.invokePartial,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
      programs: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
      program: function(i, fn, data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        var programWrapper = this.programs[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
        if(data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
          programWrapper = Handlebars.VM.program(i, fn, data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
        } else if (!programWrapper) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
          programWrapper = this.programs[i] = Handlebars.VM.program(i, fn);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        return programWrapper;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
      },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
      programWithDepth: Handlebars.VM.programWithDepth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
      noop: Handlebars.VM.noop,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
      compilerInfo: null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
    return function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
      options = options || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
      var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
      var compilerInfo = container.compilerInfo || [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
          compilerRevision = compilerInfo[0] || 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
          currentRevision = Handlebars.COMPILER_REVISION;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
      if (compilerRevision !== currentRevision) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
        if (compilerRevision < currentRevision) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
          var runtimeVersions = Handlebars.REVISION_CHANGES[currentRevision],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
              compilerVersions = Handlebars.REVISION_CHANGES[compilerRevision];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
          throw "Template was precompiled with an older version of Handlebars than the current runtime. "+
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
                "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
          // Use the embedded version info since the runtime doesn't know about this revision yet
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
          throw "Template was precompiled with a newer version of Handlebars than the current runtime. "+
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
                "Please update your runtime to a newer version ("+compilerInfo[1]+").";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
      return result;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
  programWithDepth: function(i, fn, data /*, $depth */) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    var args = Array.prototype.slice.call(arguments, 3);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
    var program = function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
      options = options || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
      return fn.apply(this, [context, options.data || data].concat(args));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    program.program = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    program.depth = args.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    return program;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
  program: function(i, fn, data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
    var program = function(context, options) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
      options = options || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
      return fn(context, options.data || data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    program.program = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    program.depth = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    return program;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
  noop: function() { return ""; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
  invokePartial: function(partial, name, context, helpers, partials, data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    var options = { helpers: helpers, partials: partials, data: data };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    if(partial === undefined) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
      throw new Handlebars.Exception("The partial " + name + " could not be found");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    } else if(partial instanceof Function) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
      return partial(context, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    } else if (!Handlebars.compile) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
      throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
      partials[name] = Handlebars.compile(partial, {data: data !== undefined});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
      return partials[name](context, options);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
Handlebars.template = Handlebars.VM.template;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
// This file contains YUI-specific wrapper code and overrides for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
// handlebars-base module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
Handlebars.VERSION += '-yui';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
Registers a helper function that will be made available to all templates.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
Helper functions receive the current template context as the `this` object, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
can also receive arguments passed by the template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
@example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    Y.Handlebars.registerHelper('linkify', function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
        return '<a href="' + Y.Escape.html(this.url) + '">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
            Y.Escape.html(this.text) + '</a>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
    var source = '<ul>{{#links}}<li>{{{linkify}}}</li>{{/links}}</ul>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    Y.Handlebars.render(source, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
        links: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
            {url: '/foo', text: 'Foo'},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
            {url: '/bar', text: 'Bar'},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
            {url: '/baz', text: 'Baz'}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
@method registerHelper
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
@param {String} name Name of this helper.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
@param {Function} fn Helper function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
@param {Boolean} [inverse=false] If `true`, this helper will be considered an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    "inverse" helper, like "unless". This means it will only be called if the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    expression given in the template evaluates to a false or empty value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
Registers a partial that will be made available to all templates.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
A partial is another template that can be used to render part of a larger
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
template. For example, a website with a common header and footer across all its
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
pages might use a template for each page, which would call shared partials to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
render the headers and footers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
Partials may be specified as uncompiled template strings or as compiled template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
functions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
@example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
    Y.Handlebars.registerPartial('header', '<h1>{{title}}</h1>');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    Y.Handlebars.registerPartial('footer', 'Copyright (c) 2011 by Me.');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    var source = '{{> header}} <p>Mustaches are awesome!</p> {{> footer}}';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    Y.Handlebars.render(source, {title: 'My Page About Mustaches'});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
@method registerPartial
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
@param {String} name Name of this partial.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
@param {Function|String} partial Template string or compiled template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
Converts a precompiled template into a renderable template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
@example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    <script src="precompiled-template.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
    <script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
    YUI().use('handlebars-base', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        // Convert the precompiled template function into a renderable template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
        // function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
        var template = Y.Handlebars.template(precompiledTemplate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        // Render it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        template({pie: 'Pumpkin'});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
    </script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
@method template
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
@param {Function} template Precompiled Handlebars template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
@return {Function} Compiled template function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
// Alias for Y.Handlebars.template(), used by Y.Template.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
Handlebars.revive = Handlebars.template;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
// Make Y.Template.Handlebars an alias for Y.Handlebars.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
Y.namespace('Template').Handlebars = Handlebars;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
}, '3.10.3', {"requires": []});