UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 11 kB
{"version":3,"sources":["property_setter_factory.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/view/property_setter_factory.es6","sourcesContent":["import {StringWrapper, RegExpWrapper, BaseException, isPresent, isBlank, isString, stringify} from 'angular2/src/facade/lang';\nimport {ListWrapper, StringMapWrapper} from 'angular2/src/facade/collection';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\nimport {camelCaseToDashCase, dashCaseToCamelCase} from '../util';\nimport {reflector} from 'angular2/src/reflection/reflection';\n\nconst STYLE_SEPARATOR = '.';\nvar propertySettersCache = StringMapWrapper.create();\nvar innerHTMLSetterCache;\n\nexport function setterFactory(property: string): Function {\n var setterFn, styleParts, styleSuffix;\n if (StringWrapper.startsWith(property, ATTRIBUTE_PREFIX)) {\n setterFn = attributeSetterFactory(StringWrapper.substring(property, ATTRIBUTE_PREFIX.length));\n } else if (StringWrapper.startsWith(property, CLASS_PREFIX)) {\n setterFn = classSetterFactory(StringWrapper.substring(property, CLASS_PREFIX.length));\n } else if (StringWrapper.startsWith(property, STYLE_PREFIX)) {\n styleParts = property.split(STYLE_SEPARATOR);\n styleSuffix = styleParts.length > 2 ? ListWrapper.get(styleParts, 2) : '';\n setterFn = styleSetterFactory(ListWrapper.get(styleParts, 1), styleSuffix);\n } else if (StringWrapper.equals(property, 'innerHtml')) {\n if (isBlank(innerHTMLSetterCache)) {\n innerHTMLSetterCache = (el, value) => DOM.setInnerHTML(el, value);\n }\n setterFn = innerHTMLSetterCache;\n } else {\n property = resolvePropertyName(property);\n setterFn = StringMapWrapper.get(propertySettersCache, property);\n if (isBlank(setterFn)) {\n var propertySetterFn = reflector.setter(property);\n setterFn = function(receiver, value) {\n if (DOM.hasProperty(receiver, property)) {\n return propertySetterFn(receiver, value);\n }\n };\n StringMapWrapper.set(propertySettersCache, property, setterFn);\n }\n }\n return setterFn;\n}\n\nconst ATTRIBUTE_PREFIX = 'attr.';\nvar attributeSettersCache = StringMapWrapper.create();\n\nfunction _isValidAttributeValue(attrName:string, value: any): boolean {\n if (attrName == \"role\") {\n return isString(value);\n } else {\n return isPresent(value);\n }\n}\n\nfunction attributeSetterFactory(attrName:string): Function {\n var setterFn = StringMapWrapper.get(attributeSettersCache, attrName);\n var dashCasedAttributeName;\n\n if (isBlank(setterFn)) {\n dashCasedAttributeName = camelCaseToDashCase(attrName);\n setterFn = function(element, value) {\n if (_isValidAttributeValue(dashCasedAttributeName, value)) {\n DOM.setAttribute(element, dashCasedAttributeName, stringify(value));\n } else {\n if (isPresent(value)) {\n throw new BaseException(\"Invalid \" + dashCasedAttributeName +\n \" attribute, only string values are allowed, got '\" + stringify(value) + \"'\");\n }\n DOM.removeAttribute(element, dashCasedAttributeName);\n }\n };\n StringMapWrapper.set(attributeSettersCache, attrName, setterFn);\n }\n\n return setterFn;\n}\n\nconst CLASS_PREFIX = 'class.';\nvar classSettersCache = StringMapWrapper.create();\n\nfunction classSetterFactory(className:string): Function {\n var setterFn = StringMapWrapper.get(classSettersCache, className);\n var dashCasedClassName;\n if (isBlank(setterFn)) {\n dashCasedClassName = camelCaseToDashCase(className);\n setterFn = function(element, value) {\n if (value) {\n DOM.addClass(element, dashCasedClassName);\n } else {\n DOM.removeClass(element, dashCasedClassName);\n }\n };\n StringMapWrapper.set(classSettersCache, className, setterFn);\n }\n\n return setterFn;\n}\n\nconst STYLE_PREFIX = 'style.';\nvar styleSettersCache = StringMapWrapper.create();\n\nfunction styleSetterFactory(styleName:string, styleSuffix:string): Function {\n var cacheKey = styleName + styleSuffix;\n var setterFn = StringMapWrapper.get(styleSettersCache, cacheKey);\n var dashCasedStyleName;\n\n if (isBlank(setterFn)) {\n dashCasedStyleName = camelCaseToDashCase(styleName);\n setterFn = function(element, value) {\n var valAsStr;\n if (isPresent(value)) {\n valAsStr = stringify(value);\n DOM.setStyle(element, dashCasedStyleName, valAsStr + styleSuffix);\n } else {\n DOM.removeStyle(element, dashCasedStyleName);\n }\n };\n StringMapWrapper.set(styleSettersCache, cacheKey, setterFn);\n }\n\n return setterFn;\n}\n\nfunction resolvePropertyName(attrName:string): string {\n var mappedPropName = StringMapWrapper.get(DOM.attrToPropMap, attrName);\n return isPresent(mappedPropName) ? mappedPropName : attrName;\n}\n"]}