{"version":3,"sources":["selector.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/compiler/selector.js","sourcesContent":["import {List, Map, ListWrapper, MapWrapper} from 'angular2/src/facade/collection';\nimport {isPresent, isBlank, RegExpWrapper, RegExpMatcherWrapper, StringWrapper, BaseException} from 'angular2/src/facade/lang';\n\nconst _EMPTY_ATTR_VALUE = '';\n\n// TODO: Can't use `const` here as\n// in Dart this is not transpiled into `final` yet...\nvar _SELECTOR_REGEXP =\n    RegExpWrapper.create('(\\\\:not\\\\()|' + //\":not(\"\n    '([-\\\\w]+)|' +    // \"tag\"\n    '(?:\\\\.([-\\\\w]+))|' +                   // \".class\"\n    '(?:\\\\[([-\\\\w*]+)(?:=([^\\\\]]*))?\\\\])|' + // \"[name]\", \"[name=value]\" or \"[name*=value]\"\n    '(?:\\\\))|' + // \")\"\n    '(\\\\s*,\\\\s*)');  // \",\"\n\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nexport class CssSelector {\n  element:string;\n  classNames:List;\n  attrs:List;\n  notSelector: CssSelector;\n  static parse(selector:string): List<CssSelector> {\n    var results = ListWrapper.create();\n    var _addResult = (res, cssSel) => {\n      if (isPresent(cssSel.notSelector) && isBlank(cssSel.element)\n        && ListWrapper.isEmpty(cssSel.classNames) && ListWrapper.isEmpty(cssSel.attrs)) {\n        cssSel.element = \"*\";\n      }\n      ListWrapper.push(res, cssSel);\n    }\n    var cssSelector = new CssSelector();\n    var matcher = RegExpWrapper.matcher(_SELECTOR_REGEXP, selector);\n    var match;\n    var current = cssSelector;\n    while (isPresent(match = RegExpMatcherWrapper.next(matcher))) {\n      if (isPresent(match[1])) {\n        if (isPresent(cssSelector.notSelector)) {\n          throw new BaseException('Nesting :not is not allowed in a selector');\n        }\n        current.notSelector = new CssSelector();\n        current = current.notSelector;\n      }\n      if (isPresent(match[2])) {\n        current.setElement(match[2]);\n      }\n      if (isPresent(match[3])) {\n        current.addClassName(match[3]);\n      }\n      if (isPresent(match[4])) {\n        current.addAttribute(match[4], match[5]);\n      }\n      if (isPresent(match[6])) {\n        _addResult(results, cssSelector);\n        cssSelector = current = new CssSelector();\n      }\n    }\n    _addResult(results, cssSelector);\n    return results;\n  }\n\n  constructor() {\n    this.element = null;\n    this.classNames = ListWrapper.create();\n    this.attrs = ListWrapper.create();\n    this.notSelector = null;\n  }\n\n  setElement(element:string = null) {\n    if (isPresent(element)) {\n      element = element.toLowerCase();\n    }\n    this.element = element;\n  }\n\n  addAttribute(name:string, value:string = _EMPTY_ATTR_VALUE) {\n    ListWrapper.push(this.attrs, name.toLowerCase());\n    if (isPresent(value)) {\n      value = value.toLowerCase();\n    } else {\n      value = _EMPTY_ATTR_VALUE;\n    }\n    ListWrapper.push(this.attrs, value);\n  }\n\n  addClassName(name:string) {\n    ListWrapper.push(this.classNames, name.toLowerCase());\n  }\n\n  toString():string {\n    var res = '';\n    if (isPresent(this.element)) {\n      res += this.element;\n    }\n    if (isPresent(this.classNames)) {\n      for (var i=0; i<this.classNames.length; i++) {\n        res += '.' + this.classNames[i];\n      }\n    }\n    if (isPresent(this.attrs)) {\n      for (var i=0; i<this.attrs.length;) {\n        var attrName = this.attrs[i++];\n        var attrValue = this.attrs[i++]\n        res += '[' + attrName;\n        if (attrValue.length > 0) {\n          res += '=' + attrValue;\n        }\n        res += ']';\n      }\n    }\n    if (isPresent(this.notSelector)) {\n      res += \":not(\" + this.notSelector.toString() + \")\";\n    }\n    return res;\n  }\n}\n\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nexport class SelectorMatcher {\n  _elementMap:Map;\n  _elementPartialMap:Map;\n  _classMap:Map;\n  _classPartialMap:Map;\n  _attrValueMap:Map;\n  _attrValuePartialMap:Map;\n  _listContexts:List;\n  constructor() {\n    this._elementMap = MapWrapper.create();\n    this._elementPartialMap = MapWrapper.create();\n\n    this._classMap = MapWrapper.create();\n    this._classPartialMap = MapWrapper.create();\n\n    this._attrValueMap = MapWrapper.create();\n    this._attrValuePartialMap = MapWrapper.create();\n\n    this._listContexts = ListWrapper.create();\n  }\n\n  addSelectables(cssSelectors:List<CssSelector>, callbackCtxt) {\n    var listContext = null;\n    if (cssSelectors.length > 1) {\n      listContext= new SelectorListContext(cssSelectors);\n      ListWrapper.push(this._listContexts, listContext);\n    }\n    for (var i = 0; i < cssSelectors.length; i++) {\n      this.addSelectable(cssSelectors[i], callbackCtxt, listContext);\n    }\n  }\n\n  /**\n   * Add an object that can be found later on by calling `match`.\n   * @param cssSelector A css selector\n   * @param callbackCtxt An opaque object that will be given to the callback of the `match` function\n   */\n  addSelectable(cssSelector, callbackCtxt, listContext: SelectorListContext) {\n    var matcher = this;\n    var element = cssSelector.element;\n    var classNames = cssSelector.classNames;\n    var attrs = cssSelector.attrs;\n    var selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n\n\n    if (isPresent(element)) {\n      var isTerminal = attrs.length === 0 && classNames.length === 0;\n      if (isTerminal) {\n        this._addTerminal(matcher._elementMap, element, selectable);\n      } else {\n        matcher = this._addPartial(matcher._elementPartialMap, element);\n      }\n    }\n\n    if (isPresent(classNames)) {\n      for (var index = 0; index<classNames.length; index++) {\n        var isTerminal = attrs.length === 0 && index === classNames.length - 1;\n        var className = classNames[index];\n        if (isTerminal) {\n          this._addTerminal(matcher._classMap, className, selectable);\n        } else {\n          matcher = this._addPartial(matcher._classPartialMap, className);\n        }\n      }\n    }\n\n    if (isPresent(attrs)) {\n      for (var index = 0; index<attrs.length; ) {\n        var isTerminal = index === attrs.length - 2;\n        var attrName = attrs[index++];\n        var attrValue = attrs[index++];\n        var map = isTerminal ? matcher._attrValueMap : matcher._attrValuePartialMap;\n        var valuesMap = MapWrapper.get(map, attrName)\n        if (isBlank(valuesMap)) {\n          valuesMap = MapWrapper.create();\n          MapWrapper.set(map, attrName, valuesMap);\n        }\n        if (isTerminal) {\n          this._addTerminal(valuesMap, attrValue, selectable);\n        } else {\n          matcher = this._addPartial(valuesMap, attrValue);\n        }\n      }\n    }\n  }\n\n  _addTerminal(map:Map<string,string>, name:string, selectable) {\n    var terminalList = MapWrapper.get(map, name)\n    if (isBlank(terminalList)) {\n      terminalList = ListWrapper.create();\n      MapWrapper.set(map, name, terminalList);\n    }\n    ListWrapper.push(terminalList, selectable);\n  }\n\n  _addPartial(map:Map<string,string>, name:string) {\n    var matcher = MapWrapper.get(map, name)\n    if (isBlank(matcher)) {\n      matcher = new SelectorMatcher();\n      MapWrapper.set(map, name, matcher);\n    }\n    return matcher;\n  }\n\n  /**\n   * Find the objects that have been added via `addSelectable`\n   * whose css selector is contained in the given css selector.\n   * @param cssSelector A css selector\n   * @param matchedCallback This callback will be called with the object handed into `addSelectable`\n   * @return boolean true if a match was found\n  */\n  match(cssSelector:CssSelector, matchedCallback:Function):boolean {\n    var result = false;\n    var element = cssSelector.element;\n    var classNames = cssSelector.classNames;\n    var attrs = cssSelector.attrs;\n\n    for (var i = 0; i < this._listContexts.length; i++) {\n      this._listContexts[i].alreadyMatched = false;\n    }\n\n    result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n    result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) || result;\n\n    if (isPresent(classNames)) {\n      for (var index = 0; index<classNames.length; index++) {\n        var className = classNames[index];\n        result = this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;\n        result = this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) || result;\n      }\n    }\n\n    if (isPresent(attrs)) {\n      for (var index = 0; index<attrs.length;) {\n        var attrName = attrs[index++];\n        var attrValue = attrs[index++];\n\n        var valuesMap = MapWrapper.get(this._attrValueMap, attrName);\n        if (!StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {\n          result = this._matchTerminal(valuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;\n        }\n        result = this._matchTerminal(valuesMap, attrValue, cssSelector, matchedCallback) || result;\n\n        valuesMap = MapWrapper.get(this._attrValuePartialMap, attrName)\n        result = this._matchPartial(valuesMap, attrValue, cssSelector, matchedCallback) || result;\n      }\n    }\n    return result;\n  }\n\n  _matchTerminal(map:Map<string,string> = null, name, cssSelector, matchedCallback):boolean {\n    if (isBlank(map) || isBlank(name)) {\n      return false;\n    }\n\n    var selectables = MapWrapper.get(map, name);\n    var starSelectables = MapWrapper.get(map, \"*\");\n    if (isPresent(starSelectables)) {\n      selectables = ListWrapper.concat(selectables, starSelectables);\n    }\n    if (isBlank(selectables)) {\n      return false;\n    }\n    var selectable;\n    var result = false;\n    for (var index=0; index<selectables.length; index++) {\n      selectable = selectables[index];\n      result = selectable.finalize(cssSelector, matchedCallback) || result;\n    }\n    return result;\n  }\n\n  _matchPartial(map:Map<string,string> = null, name, cssSelector, matchedCallback):boolean {\n    if (isBlank(map) || isBlank(name)) {\n      return false;\n    }\n    var nestedSelector = MapWrapper.get(map, name)\n    if (isBlank(nestedSelector)) {\n      return false;\n    }\n    // TODO(perf): get rid of recursion and measure again\n    // TODO(perf): don't pass the whole selector into the recursion,\n    // but only the not processed parts\n    return nestedSelector.match(cssSelector, matchedCallback);\n  }\n}\n\n\nclass SelectorListContext {\n  selectors: List<CssSelector>;\n  alreadyMatched: boolean;\n\n  constructor(selectors:List<CssSelector>) {\n    this.selectors = selectors;\n    this.alreadyMatched = false;\n  }\n}\n\n// Store context to pass back selector and context when a selector is matched\nclass SelectorContext {\n  selector:CssSelector;\n  notSelector:CssSelector;\n  cbContext; // callback context\n  listContext: SelectorListContext;\n\n  constructor(selector:CssSelector, cbContext, listContext: SelectorListContext) {\n    this.selector = selector;\n    this.notSelector = selector.notSelector;\n    this.cbContext = cbContext;\n    this.listContext = listContext;\n  }\n\n  finalize(cssSelector: CssSelector, callback) {\n    var result = true;\n    if (isPresent(this.notSelector) && (isBlank(this.listContext) || !this.listContext.alreadyMatched)) {\n      var notMatcher = new SelectorMatcher();\n      notMatcher.addSelectable(this.notSelector, null, null);\n      result = !notMatcher.match(cssSelector, null);\n    }\n    if (result && isPresent(callback) && (isBlank(this.listContext) || !this.listContext.alreadyMatched)) {\n      if (isPresent(this.listContext)) {\n        this.listContext.alreadyMatched = true;\n      }\n      callback(this.selector, this.cbContext);\n    }\n    return result;\n  }\n}\n"]}