Skip to content

Stable Release v1.3.0

Compare
Choose a tag to compare
@dfreedm dfreedm released this 22 Feb 19:39
· 6886 commits to master since this release

Big Changes

  • [New Feature] ::content works standalone when styling (used to require something in front, like ::host)

  • Attributes bound that are not in the properties block will not make a property (previously, a property would be made, but not kept up to date with the attribute changing)

  • [New Feature] Newlines now supported in computed bindings

    • Example
    <div hidden$="[[_someVeryLongFunctionName(
                    someVeryLongArg,
                    anotherCrazyLongArg)]]">
  • [New Feature] CSS Custom properties now work in @keyframe rules

  • Polymer is now using ESLint

  • [New Feature] Allow [attribute ~= "value"] selectors

  • Equalize styling specificity of CSS Custom Properties and ::host rules

  • Deduplicate behaviors (prevent weird behaviors when multiple behaviors try to override each other because they are duplicated).

  • [New Feature] Bindings of style {{ foo.bar-baz }} now work

  • CSS Variables with values that contain parens like url() now work

  • [New Feature] Add support for dynamic functions in bindings

    • computedBindings and observers will trigger when a function changes
    • computedBindings on functions can be used to lazily trigger bindings on external changes, or encapsulate dependencies
    • A good example is a translate function for i18n that depends on external translation tables
    • Example
    <i18n-string>[[translate('hi!')]]</i18n-string>
    <script>
    Polymer({
      is: 'i18n-string',
      properties: {
        translate: {
          type: Function,
          computed: '_computeTranslateFn(translationService)'
        },
        translationService: {
          type: Function,
          value: function(str){ return str; }
        }
      },
      _computeTranslateFn: function(ts) {
        return function(str) {
          return ts(str);
        }
      }
    });
    </script>

    In this example, i18n-string can wait for translationService to be set before attempting translations, will update translations when translationService is changed, and encapsulates the dependency on translationService in the computed translate function, removing it from the binding.

  • Setting properties on un-upgraded elements is now supported.

    • Properties will be pushed into the data binding system when the element upgrades.

Raw Notes

  • [ci skip] Add instructions to pull request template (commit)
  • [ci skip] markdown fail (commit)
  • [ci skip] Add instructions to issue template (commit)
  • Make sure to configure properties on polymer elements that do not have property effects. (commit)
  • Fix lint errors. (commit)
  • Add comment. Ensure Date deserializes to String for correctness. (commit)
  • Serialize before deserialize when configuring attrs. Fixes #3433. (commit)
  • Restrict early property set to properties that have accessors. This allows users to set properties in created which are listed in properties but which have no accessor. (commit)
  • fix crlf once and for all (commit)
  • fix test linting from #3350 (commit)
  • Use the new .github folder for issue and pull request templates (commit)
  • [ci skip] Use https for jsbin (commit)
  • [ci skip] Add issue and pr template (commit)
  • Update to gulp-eslint v2 (commit)
  • fix lint errors (commit)
  • Minor fixes based on review. (commit)
  • Undo fix on IE10 where the custom elements polyfill's mixin strategy makes this unfeasible. (commit)
  • Update comments. (commit)
  • Add test that late resolved functions don't warn (commit)
  • Add support for properties defined in a behavior. (commit)
  • Generalized approach supporting compute and observers (commit)
  • Proper implementation (commit)
  • Support dynamic functions for computed annotations. (commit)
  • ordering issue for when assert is defined in native html imports (commit)
  • Lint the tests (commit)
  • Add support for one-of attribute selector while not breaking support for general sibling combinator. Fixes #3023. Fix taken from #3067. (commit)
  • Fix bindings with special characters (commit)
  • [ci skip] move linting into before_script stage (commit)
  • Fix lint error and uncomment test. (commit)
  • Add test for overriding property based :host selector from outside. (commit)
  • Add comment and fix typo (commit)
  • Ensure _propertySetter is installed first. Fixes #3063 (commit)
  • Disable tap gesture when track gesture is firing for ancestor node (commit)
  • Fix parsing of parenthesis in default of variable declaration (commit)
  • Rename _mapRule to _mapRuleOntoParent (commit)
  • Test with ESLint enabled (commit)
  • Make behaviors array unique (commit)
  • Use deserialize from the node. (commit)
  • Actually execute case-map (commit)
  • [ci skip] .eslintrc is deprecated, add .json suffix (commit)
  • Make the test more look like a spec (commit)
  • Configure attr's with property effects. More robust fix for #3288. (commit)
  • Use ESLint for Polymer (commit)
  • Add test suite for effects order (commit)
  • Fix negation when a negated binding is changed (commit)
  • Add unit test suite for CaseMap (commit)
  • Fixes for IE style ordering issue. (commit)
  • Fixes #3326. Changes inspired by #3276 and #3344 (commit)
  • Fix for getters/setters for property become inaccessible when property set on element before it is ready (commit)
  • Non-destructive @keyframes rule transformation. (commit)
  • Fix test regression from PR 3289 (commit)
  • Move test and add to runner. (commit)
  • make isDebouncerActive actually return a bool (commit)
  • Lint the javascript code with eslint (commit)
  • i suck at git (commit)
  • Fix for scoping when class is not specified on element (null was prepended instead of empty string) (commit)
  • Using constant rather than plain :host and ::content, also create regexp object only once (commit)
  • Eliminate the need to write :host ::content instead of just ::content, while keeping the same processing under the hood (commit)
  • Fix: There is no effect of kind 'computedAnnotation' (commit)
  • fix test case in 5d17efc (commit)
  • add test for 3326 (commit)
  • [ci skip] update CHANGELOG (commit)
  • Exclude attribute bindings from configuration. Fixes #3288. (commit)
  • Doubled Polymer.CaseMap.dashToCamelCase performance with simplified and once compiled RegExp. 5 times faster Polymer.CaseMap.camelToDashCase using simplified replace part, simplified and once compiled RegExp. (commit)
  • Update PRIMER.md (commit)
  • Unit tests (commit)
  • Allow newlines in computed binding argument list (commit)
  • Remove redundant assign to window.Polymer (commit)
  • parentProps should not override argument based props (commit)