{"version":3,"sources":["util.js"],"names":[],"mappings":"AAAA;AAAA,KAAK,iBAAiB,AAAC,CAAC,MAAK,QAAQ;yBAArC,EAAC,GAAE,YAAqB;AAAE,oCAAwB;IAAE,AAA9B,CAAC;gBAAvB,EAAC,GAAE,YAAqB;AAAE,2BAAwB;IAAE,AAA9B,CAAC;uBAAvB,EAAC,GAAE,YAAqB;AAAE,kCAAwB;IAAE,AAA9B,CAAC;oBAAvB,EAAC,GAAE,YAAqB;AAAE,+BAAwB;IAAE,AAA9B,CAAC;kBAAvB,EAAC,GAAE,YAAqB;AAAE,6BAAwB;IAAE,AAA9B,CAAC;qBAAvB,EAAC,GAAE,YAAqB;AAAE,gCAAwB;IAAE,AAA9B,CAAC;qBAAvB,EAAC,GAAE,YAAqB;AAAE,gCAAwB;IAAE,AAA9B,CAAC;qBAAvB,EAAC,GAAE,YAAqB;AAAE,gCAAwB;IAAE,AAA9B,CAAC;AAAvB,WAAS,CAAT,EAAC,KAAI,CAAO,KAAG,AAAS,CAAC;CAAgC,CAAC;;;;;SAA1D,EAAC,wCAAoB,CAAA,OAAM,AAAC,4BAAkB,CACtC,CAAA,yCAAqB,kDAA2B,CAAA,yCAAqB,GAAK,EAAC,OAAM,wCAAmB,CAAC,AAD/D,CACgE;AADtG,UAAM;AAAG,YAAQ;AAAG,MAAE;SAA9B,EAAC,8CAAoB,CAAA,OAAM,AAAC,kCAAkB,CACtC,CAAA,+CAAqB,wDAA2B,CAAA,+CAAqB,GAAK,EAAC,OAAM,8CAAmB,CAAC,AAD/D,CACgE;AAAtG,aAAS;AAAG,MAAE;EAEd,IAAE,EAHV,EAAC,+CAAoB,CAAA,OAAM,AAAC,gCAAkB,CACtC,CAAA,gDAAqB,yDAA2B,CAAA,gDAAqB,GAAK,EAAC,OAAM,+CAAmB,CAAC,AAD/D,CACgE;EAItG,UAAQ,EALhB,EAAC,oBAAoB,CAAA,OAAM,AAAC,gBAAkB,CACtC,CAAA,qBAAqB,8BAA2B,CAAA,qBAAqB,GAAK,EAAC,OAAM,oBAAmB,CAAC,AAD/D,CACgE;AAMvG,OAAS,wBAAsB,CAAE,MAAK,CAAG,CAAA,IAAG,CAAG;AACpD,MAAS,GAAA,CAAA,CAAA,EAAI,EAAA,CAAG,CAAA,CAAA,EAAI,CAAA,IAAG,UAAU,OAAO,CAAG,GAAE,CAAA,CAAG;AAC9C,MAAE,YAAY,AAAC,CAAC,MAAK,CAAG,CAAA,IAAG,UAAU,CAAE,CAAA,CAAC,CAAC,CAAC;EAC5C;AAAA,AACF;AAAA,AAEI,EAAA,CAAA,cAAa,EAAsB,CAAA,UAAS,OAAO,AAAC,EAAC,CAAC;AAC1D,AAAI,EAAA,CAAA,iBAAgB,EAAS,EAAA,CAAC;AAC9B,AAAI,EAAA,CAAA,iBAAgB,EAA0B,CAAA,UAAS,OAAO,AAAC,EAAC,CAAC;AACjE,AAAI,EAAA,CAAA,oBAAmB,CAAC;AAEjB,OAAS,eAAa,CAAE,iBAAgB,AAAQ,CAAG;AACxD,AAAI,IAAA,CAAA,EAAC,EAAI,CAAA,UAAS,IAAI,AAAC,CAAC,cAAa,CAAG,kBAAgB,CAAC,CAAC;AAC1D,KAAI,OAAM,AAAC,CAAC,EAAC,CAAC,CAAG;AACf,KAAC,EAAI,CAAA,iBAAgB,EAAE,CAAC;AACxB,aAAS,IAAI,AAAC,CAAC,cAAa,CAAG,kBAAgB,CAAG,GAAC,CAAC,CAAC;EACvD;AAAA,AACA,OAAO,GAAC,CAAC;AACX;AAAA,AAzBA,KAAK,eAAe,AAAC,8BACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,eAAc,KAAO,UAC4B;EAAC,CAAC,CAAC,CAAC;AA0B9C,OAAS,sBAAoB,CAAE,OAAM,CAAG,CAAA,SAAQ,CAAG,CAAA,OAAM,CAAG;AACjE,KAAI,CAAC,UAAS,SAAS,AAAC,CAAC,iBAAgB,CAAG,QAAM,CAAC,CAAG;AAGpD,aAAS,IAAI,AAAC,CAAC,iBAAgB,CAAG,QAAM,CAAG,KAAG,CAAC,CAAC;AAChD,qBAAiB,AAAC,CAAC,SAAQ,CAAG,QAAM,CAAC,CAAC;EACxC;AAAA,AACF;AAAA,AAEO,OAAS,mBAAiB,CAAE,IAAG,CAAG,CAAA,OAAM,CAAG;AAChD,KAAI,OAAM,AAAC,CAAC,oBAAmB,CAAC,CAAG;AACjC,AAAI,MAAA,CAAA,UAAS,EAAI,CAAA,GAAE,WAAW,AAAC,CAAC,IAAG,CAAC,CAAC;AACrC,OAAI,SAAQ,AAAC,CAAC,UAAS,CAAC,CAAG;AACzB,QAAE,aAAa,AAAC,CAAC,UAAS,CAAG,QAAM,CAAC,CAAC;IACvC,KAAO;AACL,QAAE,YAAY,AAAC,CAAC,IAAG,CAAG,QAAM,CAAC,CAAC;IAChC;AAAA,EACF,KAAO;AACL,MAAE,YAAY,AAAC,CAAC,oBAAmB,CAAG,QAAM,CAAC,CAAC;EAChD;AAAA,AACA,qBAAmB,EAAI,QAAM,CAAC;AAChC;AAAA,AAGO,OAAS,iBAAe,CAAE,EAAC,AAAK,CAAG;AACxC,SAAO,UAAU,EAAC,GAAC,EAAG;AACxB;AAAA,AArDA,KAAK,eAAe,AAAC,gCACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAkDW,GAAE,GAlDU;EAAC,CAAC,CAAC,CAAC;AAuD9C,OAAS,oBAAkB,CAAE,EAAC,AAAK,CAAG;AAC3C,SAAO,aAAa,EAAC,GAAC,EAAG;AAC3B;AAAA,AA1DA,KAAK,eAAe,AAAC,mCACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAuDc,GAAE,GAvDO;EAAC,CAAC,CAAC,CAAC;AA2D9C,OAAS,oBAAkB,CAAE,OAAM,AAAQ,CAAG,CAAA,WAAU,AAAQ,CAAW;AAChF,AAAI,IAAA,CAAA,EAAC,EAAI,CAAA,cAAa,AAAC,CAAC,WAAU,CAAC,CAAC;AACpC,AAAI,IAAA,CAAA,SAAQ,EAAI,IAAI,UAAQ,AAAC,EAAC,CAAC;AAC/B,OAAO,CAAA,SAAQ,YAAY,AAAC,CAAC,OAAM,CAAG,CAAA,mBAAkB,AAAC,CAAC,EAAC,CAAC,CAAG,CAAA,gBAAe,AAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACtF;AAAA,AAhEA,KAAK,eAAe,AAAC,mCACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,eAAc,KAAO,WAArB,eAAc,KAAO,UAC4B;EAAC,CAAC,CAAC,CAAC;AAkE9C,OAAS,oBAAkB,CAAE,AAAD,CAAG;AACpC,WAAS,MAAM,AAAC,CAAC,cAAa,CAAC,CAAC;AAChC,kBAAgB,EAAI,EAAA,CAAC;AACrB,WAAS,MAAM,AAAC,CAAC,iBAAgB,CAAC,CAAC;AACnC,qBAAmB,EAAI,KAAG,CAAC;AAC7B;AAAA","file":"angular2/src/render/dom/shadow_dom/util.js","sourcesContent":["import {isBlank, isPresent, int} from 'angular2/src/facade/lang';\nimport {MapWrapper, Map} from 'angular2/src/facade/collection';\n\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport {ShadowCss} from './shadow_css';\n\nexport function moveViewNodesIntoParent(parent, view) {\n  for (var i = 0; i < view.rootNodes.length; ++i) {\n    DOM.appendChild(parent, view.rootNodes[i]);\n  }\n}\n\nvar _componentUIDs: Map<string, int> = MapWrapper.create();\nvar _nextComponentUID: int = 0;\nvar _sharedStyleTexts: Map<string, boolean> = MapWrapper.create();\nvar _lastInsertedStyleEl;\n\nexport function getComponentId(componentStringId: string) {\n  var id = MapWrapper.get(_componentUIDs, componentStringId);\n  if (isBlank(id)) {\n    id = _nextComponentUID++;\n    MapWrapper.set(_componentUIDs, componentStringId, id);\n  }\n  return id;\n}\n\nexport function insertSharedStyleText(cssText, styleHost, styleEl) {\n  if (!MapWrapper.contains(_sharedStyleTexts, cssText)) {\n    // Styles are unscoped and shared across components, only append them to the head\n    // when there are not present yet\n    MapWrapper.set(_sharedStyleTexts, cssText, true);\n    insertStyleElement(styleHost, styleEl);\n  }\n}\n\nexport function insertStyleElement(host, styleEl) {\n  if (isBlank(_lastInsertedStyleEl)) {\n    var firstChild = DOM.firstChild(host);\n    if (isPresent(firstChild)) {\n      DOM.insertBefore(firstChild, styleEl);\n    } else {\n      DOM.appendChild(host, styleEl);\n    }\n  } else {\n    DOM.insertAfter(_lastInsertedStyleEl, styleEl);\n  }\n  _lastInsertedStyleEl = styleEl;\n}\n\n// Return the attribute to be added to the component\nexport function getHostAttribute(id: int) {\n  return `_nghost-${id}`;\n}\n\n// Returns the attribute to be added on every single element nodes in the component\nexport function getContentAttribute(id: int) {\n  return `_ngcontent-${id}`;\n}\n\nexport function shimCssForComponent(cssText: string, componentId: string): string {\n  var id = getComponentId(componentId);\n  var shadowCss = new ShadowCss();\n  return shadowCss.shimCssText(cssText, getContentAttribute(id), getHostAttribute(id));\n}\n\n// Reset the caches - used for tests only\nexport function resetShadowDomCache() {\n  MapWrapper.clear(_componentUIDs);\n  _nextComponentUID = 0;\n  MapWrapper.clear(_sharedStyleTexts);\n  _lastInsertedStyleEl = null;\n}\n"]}