Example #1
0
 _matchPartial(map:Map<string,string> = null, name, cssSelector, matchedCallback):boolean {
   if (isBlank(map) || isBlank(name)) {
     return false;
   }
   var nestedSelector = MapWrapper.get(map, name)
   if (isBlank(nestedSelector)) {
     return false;
   }
   // TODO(perf): get rid of recursion and measure again
   // TODO(perf): don't pass the whole selector into the recursion,
   // but only the not processed parts
   return nestedSelector.match(cssSelector, matchedCallback);
 }
Example #2
0
  _getDirectiveByKeyId(keyId:int) {
    var p = this._proto;

    if (p._keyId0 === keyId) {if (isBlank(this._obj0)){this._obj0 = this._new(p._binding0);} return this._obj0;}
    if (p._keyId1 === keyId) {if (isBlank(this._obj1)){this._obj1 = this._new(p._binding1);} return this._obj1;}
    if (p._keyId2 === keyId) {if (isBlank(this._obj2)){this._obj2 = this._new(p._binding2);} return this._obj2;}
    if (p._keyId3 === keyId) {if (isBlank(this._obj3)){this._obj3 = this._new(p._binding3);} return this._obj3;}
    if (p._keyId4 === keyId) {if (isBlank(this._obj4)){this._obj4 = this._new(p._binding4);} return this._obj4;}
    if (p._keyId5 === keyId) {if (isBlank(this._obj5)){this._obj5 = this._new(p._binding5);} return this._obj5;}
    if (p._keyId6 === keyId) {if (isBlank(this._obj6)){this._obj6 = this._new(p._binding6);} return this._obj6;}
    if (p._keyId7 === keyId) {if (isBlank(this._obj7)){this._obj7 = this._new(p._binding7);} return this._obj7;}
    if (p._keyId8 === keyId) {if (isBlank(this._obj8)){this._obj8 = this._new(p._binding8);} return this._obj8;}
    if (p._keyId9 === keyId) {if (isBlank(this._obj9)){this._obj9 = this._new(p._binding9);} return this._obj9;}
    return _undefined;
  }
Example #3
0
 finalize(cssSelector: CssSelector, callback) {
   var result = true;
   if (isPresent(this.notSelector) && (isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
     var notMatcher = new SelectorMatcher();
     notMatcher.addSelectable(this.notSelector, null, null);
     result = !notMatcher.match(cssSelector, null);
   }
   if (result && isPresent(callback) && (isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
     if (isPresent(this.listContext)) {
       this.listContext.alreadyMatched = true;
     }
     callback(this.selector, this.cbContext);
   }
   return result;
 }
Example #4
0
 _checkShadowDomAppInjector(shadowDomAppInjector:Injector) {
   if (this._proto._binding0IsComponent && isBlank(shadowDomAppInjector)) {
     throw new BaseException('A shadowDomAppInjector is required as this ElementInjector contains a component');
   } else if (!this._proto._binding0IsComponent && isPresent(shadowDomAppInjector)) {
     throw new BaseException('No shadowDomAppInjector allowed as there is not component stored in this ElementInjector');
   }
 }
Example #5
0
 var _addResult = (res, cssSel) => {
   if (isPresent(cssSel.notSelector) && isBlank(cssSel.element) 
     && ListWrapper.isEmpty(cssSel.classNames) && ListWrapper.isEmpty(cssSel.attrs)) {
     cssSel.element = "*";
   }
   ListWrapper.push(res, cssSel);
 }
Example #6
0
 bind(appElementToken).toFactory((appComponentAnnotatedType, appDocument) => {
   var selector = appComponentAnnotatedType.annotation.selector;
   var element = DOM.querySelector(appDocument, selector);
   if (isBlank(element)) {
     throw new BaseException(`The app selector "${selector}" did not match any elements`);
   }
   return element;
 }, [appComponentAnnotatedTypeToken, appDocumentToken]),
Example #7
0
function _createAppInjector(appComponentType: Type, bindings: List<Binding>, zone: VmTurnZone): Injector {
  if (isBlank(_rootInjector)) _rootInjector = new Injector(_rootBindings);
  var mergedBindings = isPresent(bindings) ?
      ListWrapper.concat(_injectorBindings(appComponentType), bindings) :
      _injectorBindings(appComponentType);
  ListWrapper.push(mergedBindings, bind(VmTurnZone).toValue(zone));
  return _rootInjector.createChild(mergedBindings);
}
Example #8
0
 _addPartial(map:Map<string,string>, name:string) {
   var matcher = MapWrapper.get(map, name)
   if (isBlank(matcher)) {
     matcher = new SelectorMatcher();
     MapWrapper.set(map, name, matcher);
   }
   return matcher;
 }
Example #9
0
 _addTerminal(map:Map<string,string>, name:string, selectable) {
   var terminalList = MapWrapper.get(map, name)
   if (isBlank(terminalList)) {
     terminalList = ListWrapper.create();
     MapWrapper.set(map, name, terminalList);
   }
   ListWrapper.push(terminalList, selectable);
 }
Example #10
0
 classList():List<string> {
   if (isBlank(this._classList)) {
     this._classList = ListWrapper.create();
     var elClassList = DOM.classList(this.element);
     for (var i = 0; i < elClassList.length; i++) {
       ListWrapper.push(this._classList, elClassList[i]);
     }
   }
   return this._classList;
 }
 function createExtension(perfRecords = null) {
   if (isBlank(perfRecords)) {
     perfRecords = [];
   }
   log = [];
   extension = new Injector([
     IOsDriverExtension.BINDINGS,
     bind(WebDriverAdapter).toValue(new MockDriverAdapter(log, perfRecords))
   ]).get(IOsDriverExtension);
   return extension;
 }
function durationRecord(type, startTime, endTime, children = null) {
  if (isBlank(children)) {
    children = [];
  }
  return {
    'type': type,
    'startTime': startTime,
    'endTime': endTime,
    'children': children
  };
}
Example #13
0
  addVariableBinding(variableName:string, variableValue:string) {
    if (isBlank(this.variableBindings)) {
      this.variableBindings = MapWrapper.create();
    }

    // Store the variable map from value to variable, reflecting how it will be used later by
    // View. When a local is set to the view, a lookup for the variable name will take place keyed
    // by the "value", or exported identifier. For example, chang-repeat sets a view local of "index".
    // When this occurs, a lookup keyed by "index" must occur to find if there is a var referencing
    // it.
    MapWrapper.set(this.variableBindings, variableValue, dashCaseToCamelCase(variableName));
  }
Example #14
0
 _matchTerminal(map:Map<string,string> = null, name, cssSelector, matchedCallback):boolean {
   if (isBlank(map) || isBlank(name)) {
     return false;
   }
   
   var selectables = MapWrapper.get(map, name);
   var starSelectables = MapWrapper.get(map, "*");
   if (isPresent(starSelectables)) {
     selectables = ListWrapper.concat(selectables, starSelectables);
   }
   if (isBlank(selectables)) {
     return false;
   }
   var selectable;
   var result = false;
   for (var index=0; index<selectables.length; index++) {
     selectable = selectables[index];
     result = selectable.finalize(cssSelector, matchedCallback) || result;
   }
   return result;
 }
Example #15
0
  /**
   * Add an object that can be found later on by calling `match`.
   * @param cssSelector A css selector
   * @param callbackCtxt An opaque object that will be given to the callback of the `match` function
   */
  addSelectable(cssSelector, callbackCtxt, listContext: SelectorListContext) {
    var matcher = this;
    var element = cssSelector.element;
    var classNames = cssSelector.classNames;
    var attrs = cssSelector.attrs;
    var selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);


    if (isPresent(element)) {
      var isTerminal = attrs.length === 0 && classNames.length === 0;
      if (isTerminal) {
        this._addTerminal(matcher._elementMap, element, selectable);
      } else {
        matcher = this._addPartial(matcher._elementPartialMap, element);
      }
    }

    if (isPresent(classNames)) {
      for (var index = 0; index<classNames.length; index++) {
        var isTerminal = attrs.length === 0 && index === classNames.length - 1;
        var className = classNames[index];
        if (isTerminal) {
          this._addTerminal(matcher._classMap, className, selectable);
        } else {
          matcher = this._addPartial(matcher._classPartialMap, className);
        }
      }
    }

    if (isPresent(attrs)) {
      for (var index = 0; index<attrs.length; ) {
        var isTerminal = index === attrs.length - 2;
        var attrName = attrs[index++];
        var attrValue = attrs[index++];
        var map = isTerminal ? matcher._attrValueMap : matcher._attrValuePartialMap;
        var valuesMap = MapWrapper.get(map, attrName)
        if (isBlank(valuesMap)) {
          valuesMap = MapWrapper.create();
          MapWrapper.set(map, attrName, valuesMap);
        }
        if (isTerminal) {
          this._addTerminal(valuesMap, attrValue, selectable);
        } else {
          matcher = this._addPartial(valuesMap, attrValue);
        }
      }
    }
  }
Example #16
0
 function createRunner(defaultBindings = null) {
   if (isBlank(defaultBindings)) {
     defaultBindings = [];
   }
   runner = new Runner([
     defaultBindings,
     bind(Sampler).toFactory(
       (_injector) => {
         injector = _injector;
         return new MockSampler();
       }, [Injector]
     ),
     bind(Metric).toFactory( () => new MockMetric(), []),
     bind(Validator).toFactory( () => new MockValidator(), []),
     bind(WebDriverAdapter).toFactory( () => new MockWebDriverAdapter(), [])
   ]);
   return runner;
 }
Example #17
0
export function getStringParameter(name:string) {
  var els = DOM.querySelectorAll(document, `input[name="${name}"]`)
  var value;
  var el;

  for (var i=0; i<els.length; i++) {
    el = els[i];
    var type = DOM.type(el);
    if ((type !== 'radio' && type !== 'checkbox') || DOM.getChecked(el)) {
      value = DOM.getValue(el);
      break;
    }
  }

  if (isBlank(value)) {
    throw new BaseException(`Could not find and input field with name ${name}`);
  }

  return value;
}
Example #18
0
 addDirective(directive:DirectiveMetadata) {
   var annotation = directive.annotation;
   this._allDirectives = null;
   if (annotation instanceof Decorator) {
     if (isBlank(this.decoratorDirectives)) {
       this.decoratorDirectives = ListWrapper.create();
     }
     ListWrapper.push(this.decoratorDirectives, directive);
     if (!annotation.compileChildren) {
       this.compileChildren = false;
     }
   } else if (annotation instanceof Viewport) {
     this.viewportDirective = directive;
   } else if (annotation instanceof Component) {
     this.componentDirective = directive;
     this.hasNestedView = true;
   } else if (annotation instanceof DynamicComponent) {
     this.componentDirective = directive;
   }
 }
Example #19
0
 bind(appViewToken).toAsyncFactory((changeDetection, compiler, injector, appElement,
   appComponentAnnotatedType, strategy, eventManager) => {
   var annotation = appComponentAnnotatedType.annotation;
   if(!isBlank(annotation) && !(annotation instanceof Component)) {
     var type = appComponentAnnotatedType.type;
     throw new BaseException(`Only Components can be bootstrapped; ` +
                             `Directive of ${stringify(type)} is not a Component`);
   }
   return compiler.compile(appComponentAnnotatedType.type).then(
       (protoView) => {
     var appProtoView = ProtoView.createRootProtoView(protoView, appElement,
       appComponentAnnotatedType, changeDetection.createProtoChangeDetector('root'),
       strategy);
     // The light Dom of the app element is not considered part of
     // the changular application. Thus the context and lightDomInjector are
     // empty.
     var view = appProtoView.instantiate(null, eventManager);
     view.hydrate(injector, null, null, new Object(), null);
     return view;
   });
 }, [ChangeDetection, Compiler, Injector, appElementToken, appComponentAnnotatedTypeToken,
Example #20
0
 events.forEach( (event) => {
   var ph = event['ph'];
   var name = event['name'];
   if (StringWrapper.equals(ph, 'b') && StringWrapper.equals(name, markName)) {
     markStartEvent = event;
   } else if (StringWrapper.equals(ph, 'e') && StringWrapper.equals(name, markName)) {
     markEndEvent = event;
   }
   if (isPresent(markStartEvent) && isBlank(markEndEvent) && event['pid'] === markStartEvent['pid']) {
     if (StringWrapper.equals(ph, 'B')) {
       intervalStarts[name] = event;
     } else if (StringWrapper.equals(ph, 'E') && isPresent(intervalStarts[name])) {
       var startEvent = intervalStarts[name];
       var duration = event['ts'] - startEvent['ts'];
       intervalStarts[name] = null;
       if (StringWrapper.equals(name, 'gc')) {
         result['gcTime'] += duration;
         var amount = (startEvent['args']['usedHeapSize'] - event['args']['usedHeapSize']) / 1000;
         result['gcAmount'] += amount;
         var majorGc = event['args']['majorGc'];
         if (isPresent(majorGc) && majorGc) {
           result['majorGcTime'] += duration;
         }
         if (isPresent(intervalStarts['script'])) {
           gcTimeInScript += duration;
         }
       } else if (StringWrapper.equals(name, 'render')) {
         result['renderTime'] += duration;
         if (isPresent(intervalStarts['script'])) {
           renderTimeInScript += duration;
         }
       } else if (StringWrapper.equals(name, 'script')) {
         result['scriptTime'] += duration;
       }
     }
   }
 });
Example #21
0
 static instance() {
   if (isBlank(_staticKeys)) _staticKeys = new StaticKeys();
   return _staticKeys;
 }
Example #22
0
 addPropertyBinding(property:string, expression:AST) {
   if (isBlank(this.propertyBindings)) {
     this.propertyBindings = MapWrapper.create();
   }
   MapWrapper.set(this.propertyBindings, dashCaseToCamelCase(property), expression);
 }
Example #23
0
 addTextNodeBinding(indexInParent:int, expression:AST) {
   if (isBlank(this.textNodeBindings)) {
     this.textNodeBindings = MapWrapper.create();
   }
   MapWrapper.set(this.textNodeBindings, indexInParent, expression);
 }
Example #24
0
 attrs():Map<string,string> {
   if (isBlank(this._attrs)) {
     this._attrs = DOM.attributeMap(this.element);
   }
   return this._attrs;
 }
Example #25
0
 addEventBinding(eventName:string, expression:AST) {
   if (isBlank(this.eventBindings)) {
     this.eventBindings = MapWrapper.create();
   }
   MapWrapper.set(this.eventBindings, eventName, expression);
 }
Example #26
0
 static required(c:modelModule.Control) {
   return isBlank(c.value) || c.value == "" ? {"required": true} : null;
 }
 _asString(value) {
   return (isBlank(value) ? 'null' : value.toString());
 }
Example #28
0
 _constructDependencies(factoryFunction:Function, dependencies:List) {
   return isBlank(dependencies) ?
     _dependenciesFor(factoryFunction) :
     ListWrapper.map(dependencies, (t) => Dependency.fromKey(Key.get(t)));
 }
Example #29
0
 if (ListWrapper.any(params, (p) => isBlank(p))) throw new NoAnnotationError(typeOrFunc);
Example #30
0
function _dependenciesFor(typeOrFunc):List {
  var params = reflector.parameters(typeOrFunc);
  if (isBlank(params)) return [];
  if (ListWrapper.any(params, (p) => isBlank(p))) throw new NoAnnotationError(typeOrFunc);
  return ListWrapper.map(params, (p) => _extractToken(typeOrFunc, p));
}