Example #1
0
 createText(parentElement, value, debugInfo) {
     var node = DOM.createTextNode(value);
     if (isPresent(parentElement)) {
         DOM.appendChild(parentElement, node);
     }
     return node;
 }
Example #2
0
 createTemplateAnchor(parentElement, debugInfo) {
     var comment = DOM.createComment(TEMPLATE_COMMENT_TEXT);
     if (isPresent(parentElement)) {
         DOM.appendChild(parentElement, comment);
     }
     return comment;
 }
Example #3
0
 setElementStyle(renderElement, styleName, styleValue) {
     if (isPresent(styleValue)) {
         DOM.setStyle(renderElement, styleName, stringify(styleValue));
     }
     else {
         DOM.removeStyle(renderElement, styleName);
     }
 }
Example #4
0
 setElementClass(renderElement, className, isAdd) {
     if (isAdd) {
         DOM.addClass(renderElement, className);
     }
     else {
         DOM.removeClass(renderElement, className);
     }
 }
Example #5
0
 this.raf(function (timestamp) {
     dom_adapter_1.DOM.on(div, 'transitionend', function (event) {
         var elapsed = math_1.Math.round(event.elapsedTime * 1000);
         _this.elapsedTimeIncludesDelay = elapsed == 2;
         dom_adapter_1.DOM.remove(div);
     });
     dom_adapter_1.DOM.setStyle(div, 'width', '2px');
 }, 2);
Example #6
0
 selectRootElement(selector) {
     var el = DOM.querySelector(this._rootRenderer.document, selector);
     if (isBlank(el)) {
         throw new BaseException(`The selector "${selector}" did not match any elements`);
     }
     DOM.clearNodes(el);
     return el;
 }
 this.raf((timestamp) => {
     DOM.on(div, 'transitionend', (event) => {
         var elapsed = Math.round(event.elapsedTime * 1000);
         this.elapsedTimeIncludesDelay = elapsed == 2;
         DOM.remove(div);
     });
     DOM.setStyle(div, 'width', '2px');
 }, 2);
Example #8
0
 MdToolbar.prototype.updateToolbarHeight = function () {
     this._toolbarHeight = dom_adapter_1.DOM.getProperty(this.el.nativeElement, 'offsetHeight');
     if (this._content) {
         var margin = (-this._toolbarHeight * this.mdShrinkSpeed) + 'px';
         dom_adapter_1.DOM.setStyle(this._content, "margin-top", margin);
         dom_adapter_1.DOM.setStyle(this._content, "margin-bottom", margin);
         this.onContentScroll();
     }
 };
Example #9
0
 util_1.rAF(function () {
     var hasWhiteFrame = dom_adapter_1.DOM.hasClass(_this.el.nativeElement, 'md-whiteframe-z1');
     if (hasWhiteFrame && !_this._currentY) {
         dom_adapter_1.DOM.removeClass(_this.el.nativeElement, 'md-whiteframe-z1');
     }
     else if (!hasWhiteFrame && _this._currentY) {
         dom_adapter_1.DOM.addClass(_this.el.nativeElement, 'md-whiteframe-z1');
     }
 });
Example #10
0
 /**
  * Performs animations if necessary
  * @param node
  */
 animateNodeEnter(node) {
     if (DOM.isElementNode(node) && DOM.hasClass(node, 'ng-animate')) {
         DOM.addClass(node, 'ng-enter');
         this._rootRenderer.animate.css()
             .addAnimationClass('ng-enter-active')
             .start(node)
             .onComplete(() => { DOM.removeClass(node, 'ng-enter'); });
     }
 }
 DomElementSchemaRegistry.prototype._getProtoElement = function (tagName) {
     var element = this._protoElements.get(tagName);
     if (lang_1.isBlank(element)) {
         var nsAndName = html_tags_1.splitNsName(tagName);
         element = lang_1.isPresent(nsAndName[0]) ?
             dom_adapter_1.DOM.createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) :
             dom_adapter_1.DOM.createElement(nsAndName[1]);
         this._protoElements.set(tagName, element);
     }
     return element;
 };
 _getProtoElement(tagName) {
     var element = this._protoElements.get(tagName);
     if (isBlank(element)) {
         var nsAndName = splitNsName(tagName);
         element = isPresent(nsAndName[0]) ?
             DOM.createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) :
             DOM.createElement(nsAndName[1]);
         this._protoElements.set(tagName, element);
     }
     return element;
 }
Example #13
0
 setBindingDebugInfo(renderElement, propertyName, propertyValue) {
     var dashCasedPropertyName = camelCaseToDashCase(propertyName);
     if (DOM.isCommentNode(renderElement)) {
         var existingBindings = RegExpWrapper.firstMatch(TEMPLATE_BINDINGS_EXP, StringWrapper.replaceAll(DOM.getText(renderElement), /\n/g, ''));
         var parsedBindings = Json.parse(existingBindings[1]);
         parsedBindings[dashCasedPropertyName] = propertyValue;
         DOM.setText(renderElement, StringWrapper.replace(TEMPLATE_COMMENT_TEXT, '{}', Json.stringify(parsedBindings)));
     }
     else {
         this.setElementAttribute(renderElement, propertyName, propertyValue);
     }
 }
Example #14
0
 MdToolbar.prototype.ngAfterContentInit = function () {
     this.disableScrollShrink();
     if (!this.mdScrollShrink) {
         return;
     }
     this._content = dom_adapter_1.DOM.querySelector(dom_adapter_1.DOM.parentElement(this.el.nativeElement), 'md-content');
     if (!this._content) {
         return;
     }
     this._cancelScrollShrink = dom_adapter_1.DOM.onAndCancel(this._content, 'scroll', this._debouncedContentScroll);
     dom_adapter_1.DOM.setAttribute(this._content, 'scroll-shrink', 'true');
     util_1.rAF(this.updateToolbarHeight.bind(this));
 };
Example #15
0
 createElement(parent, name, debugInfo) {
     var nsAndName = splitNamespace(name);
     var el = isPresent(nsAndName[0]) ?
         DOM.createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) :
         DOM.createElement(nsAndName[1]);
     if (isPresent(this._contentAttr)) {
         DOM.setAttribute(el, this._contentAttr, '');
     }
     if (isPresent(parent)) {
         DOM.appendChild(parent, el);
     }
     return el;
 }
Example #16
0
 /**
  * Determines if `event.elapsedTime` includes transition delay in the current browser.  At this
  * time, Chrome and Opera seem to be the only browsers that include this.
  */
 doesElapsedTimeIncludesDelay() {
     var div = DOM.createElement('div');
     DOM.setAttribute(div, 'style', `position: absolute; top: -9999px; left: -9999px; width: 1px;
   height: 1px; transition: all 1ms linear 1ms;`);
     // Firefox requires that we wait for 2 frames for some reason
     this.raf((timestamp) => {
         DOM.on(div, 'transitionend', (event) => {
             var elapsed = Math.round(event.elapsedTime * 1000);
             this.elapsedTimeIncludesDelay = elapsed == 2;
             DOM.remove(div);
         });
         DOM.setStyle(div, 'width', '2px');
     }, 2);
 }
Example #17
0
 selectRootElement(selectorOrNode, debugInfo) {
     var el;
     if (isString(selectorOrNode)) {
         el = DOM.querySelector(this._rootRenderer.document, selectorOrNode);
         if (isBlank(el)) {
             throw new BaseException(`The selector "${selectorOrNode}" did not match any elements`);
         }
     }
     else {
         el = selectorOrNode;
     }
     DOM.clearNodes(el);
     return el;
 }
Example #18
0
 BrowserDetails.prototype.doesElapsedTimeIncludesDelay = function () {
     var _this = this;
     var div = dom_adapter_1.DOM.createElement('div');
     dom_adapter_1.DOM.setAttribute(div, 'style', "position: absolute; top: -9999px; left: -9999px; width: 1px;\n      height: 1px; transition: all 1ms linear 1ms;");
     // Firefox requires that we wait for 2 frames for some reason
     this.raf(function (timestamp) {
         dom_adapter_1.DOM.on(div, 'transitionend', function (event) {
             var elapsed = math_1.Math.round(event.elapsedTime * 1000);
             _this.elapsedTimeIncludesDelay = elapsed == 2;
             dom_adapter_1.DOM.remove(div);
         });
         dom_adapter_1.DOM.setStyle(div, 'width', '2px');
     }, 2);
 };
Example #19
0
 return (event) => {
     var allowDefaultBehavior = eventHandler(event);
     if (allowDefaultBehavior === false) {
         // TODO(tbosch): move preventDefault into event plugins...
         DOM.preventDefault(event);
     }
 };
Example #20
0
 findTestabilityInTree(registry, elem, findInAncestors) {
     if (elem == null) {
         return null;
     }
     var t = registry.getTestability(elem);
     if (isPresent(t)) {
         return t;
     }
     else if (!findInAncestors) {
         return null;
     }
     if (DOM.isShadowRoot(elem)) {
         return this.findTestabilityInTree(registry, DOM.getHost(elem), true);
     }
     return this.findTestabilityInTree(registry, DOM.parentElement(elem), true);
 }
Example #21
0
 detachView(viewRootNodes) {
     for (var i = 0; i < viewRootNodes.length; i++) {
         var node = viewRootNodes[i];
         DOM.remove(node);
         this.animateNodeLeave(node);
     }
 }
Example #22
0
function moveNodesAfterSibling(sibling, nodes) {
    var parent = DOM.parentElement(sibling);
    if (nodes.length > 0 && isPresent(parent)) {
        var nextSibling = DOM.nextSibling(sibling);
        if (isPresent(nextSibling)) {
            for (var i = 0; i < nodes.length; i++) {
                DOM.insertBefore(nextSibling, nodes[i]);
            }
        }
        else {
            for (var i = 0; i < nodes.length; i++) {
                DOM.appendChild(parent, nodes[i]);
            }
        }
    }
}
Example #23
0
function appDoc() {
    try {
        return DOM.defaultDoc();
    }
    catch (e) {
        return null;
    }
}
Example #24
0
 constructor(ua) {
     if (isPresent(ua)) {
         this._ua = ua;
     }
     else {
         this._ua = isPresent(DOM) ? DOM.getUserAgent() : '';
     }
 }
Example #25
0
 createViewRoot(hostElement) {
     var nodesParent;
     if (this.componentProto.encapsulation === ViewEncapsulation.Native) {
         nodesParent = DOM.createShadowRoot(hostElement);
         this._rootRenderer.sharedStylesHost.addHost(nodesParent);
         for (var i = 0; i < this._styles.length; i++) {
             DOM.appendChild(nodesParent, DOM.createStyleElement(this._styles[i]));
         }
     }
     else {
         if (isPresent(this._hostAttr)) {
             DOM.setAttribute(hostElement, this._hostAttr, '');
         }
         nodesParent = hostElement;
     }
     return nodesParent;
 }
Example #26
0
 return function (actual, className) {
     return {
         pass: dom_adapter_1.DOM.hasClass(actual, className) == !isNot,
         get message() {
             return "Expected " + actual.outerHTML + " " + (isNot ? 'not ' : '') + "to contain the CSS class \"" + className + "\"";
         }
     };
 };
 return function (actual, className) {
     return {
         pass: DOM.hasClass(actual, className) == !isNot,
         get message() {
             return `Expected ${actual.outerHTML} ${isNot ? 'not ' : ''}to contain the CSS class "${className}"`;
         }
     };
 };
Example #28
0
 setElementAttribute(renderElement, attributeName, attributeValue) {
     var attrNs;
     var nsAndName = splitNamespace(attributeName);
     if (isPresent(nsAndName[0])) {
         attributeName = nsAndName[0] + ':' + nsAndName[1];
         attrNs = NAMESPACE_URIS[nsAndName[0]];
     }
     if (isPresent(attributeValue)) {
         if (isPresent(attrNs)) {
             DOM.setAttributeNS(renderElement, attrNs, attributeName, attributeValue);
         }
         else {
             DOM.setAttribute(renderElement, nsAndName[1], attributeValue);
         }
     }
     else {
         DOM.removeAttribute(renderElement, attributeName);
     }
 }
 hasProperty(tagName, propName) {
     if (tagName.indexOf('-') !== -1) {
         // can't tell now as we don't know which properties a custom element will get
         // once it is instantiated
         return true;
     }
     else {
         var elm = this._getProtoElement(tagName);
         return DOM.hasProperty(elm, propName);
     }
 }
 DomElementSchemaRegistry.prototype.hasProperty = function (tagName, propName) {
     if (tagName.indexOf('-') !== -1) {
         // can't tell now as we don't know which properties a custom element will get
         // once it is instantiated
         return true;
     }
     else {
         var elm = this._getProtoElement(tagName);
         return dom_adapter_1.DOM.hasProperty(elm, propName);
     }
 };