Skip to content

Commit 7e74e36

Browse files
committed
Ensure DisableUpgradeMixin extends PropertiesMixin
1 parent b8c66de commit 7e74e36

3 files changed

Lines changed: 31 additions & 30 deletions

File tree

externs/closure-types.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1377,27 +1377,26 @@ Polymer_ArraySelectorMixin.prototype.select = function(item){};
13771377
Polymer_ArraySelectorMixin.prototype.selectIndex = function(idx){};
13781378
/**
13791379
* @interface
1380+
* @extends {Polymer_PropertiesChanged}
13801381
*/
13811382
function Polymer_DisableUpgradeMixin(){}
13821383
/**
1383-
* @param {*} name
1384-
* @param {*} old
1385-
* @param {*} value
1384+
* @override
13861385
*/
13871386
Polymer_DisableUpgradeMixin.prototype.attributeChangedCallback = function(name, old, value){};
13881387
/**
1389-
* @return {undefined}
1388+
* @override
13901389
*/
13911390
Polymer_DisableUpgradeMixin.prototype._initializeProperties = function(){};
13921391
/**
1393-
* @return {undefined}
1392+
* @override
13941393
*/
13951394
Polymer_DisableUpgradeMixin.prototype.connectedCallback = function(){};
13961395
/**
1397-
* @return {undefined}
1396+
* @override
13981397
*/
13991398
Polymer_DisableUpgradeMixin.prototype._enableProperties = function(){};
14001399
/**
1401-
* @return {undefined}
1400+
* @override
14021401
*/
14031402
Polymer_DisableUpgradeMixin.prototype.disconnectedCallback = function(){};

lib/mixins/disable-upgrade-mixin.html

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,30 @@
3535
*
3636
* @mixinFunction
3737
* @polymer
38+
* @appliesMixin Polymer.PropertiesChanged
3839
* @memberof Polymer
3940
*/
40-
Polymer.DisableUpgradeMixin = (base) => {
41+
Polymer.DisableUpgradeMixin = Polymer.dedupingMixin((base) => {
4142

42-
return class DisableUpgradeClass extends base {
43+
/**
44+
* @constructor
45+
* @extends {base}
46+
* @implements {Polymer_PropertiesMixin}
47+
*/
48+
const superClass = Polymer.PropertiesMixin(base);
49+
/**
50+
* @polymer
51+
* @mixinClass
52+
* @implements {Polymer_DisableUpgradeMixin}
53+
*/
54+
class DisableUpgradeClass extends superClass {
4355

56+
/** @override */
4457
static get observedAttributes() {
4558
return super.observedAttributes.concat(DISABLED_ATTR);
4659
}
4760

61+
/** @override */
4862
attributeChangedCallback(name, old, value) {
4963
if (name == DISABLED_ATTR) {
5064
if (!this.__dataEnabled && value == null && this.isConnected) {
@@ -60,16 +74,19 @@
6074
attributes are delivered. Therefore, we stub this out and
6175
call `super._initializeProperties()` manually.
6276
*/
77+
/** @override */
6378
_initializeProperties() {}
6479

6580
// prevent user code in connected from running
81+
/** @override */
6682
connectedCallback() {
6783
if (this.__dataEnabled || !this.hasAttribute(DISABLED_ATTR)) {
6884
super.connectedCallback();
6985
}
7086
}
7187

7288
// prevent element from turning on properties
89+
/** @override */
7390
_enableProperties() {
7491
if (!this.hasAttribute(DISABLED_ATTR)) {
7592
if (!this.__dataEnabled) {
@@ -80,15 +97,18 @@
8097
}
8198

8299
// only go if "enabled"
100+
/** @override */
83101
disconnectedCallback() {
84102
if (this.__dataEnabled) {
85103
super.disconnectedCallback();
86104
}
87105
}
88106

89-
};
107+
}
90108

91-
};
109+
return DisableUpgradeClass;
110+
111+
});
92112

93113
})();
94114

types/lib/mixins/disable-upgrade-mixin.d.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,35 +31,17 @@ declare namespace Polymer {
3131
*
3232
* MyClass = Polymer.DisableUpgradeMixin(class extends BaseClass {...});
3333
*/
34-
function DisableUpgradeMixin<T extends new (...args: any[]) => {}>(base: T): T & DisableUpgradeMixinConstructor;
34+
function DisableUpgradeMixin<T extends new (...args: any[]) => {}>(base: T): T & DisableUpgradeMixinConstructor & Polymer.PropertiesChangedConstructor;
3535

3636
interface DisableUpgradeMixinConstructor {
3737
new(...args: any[]): DisableUpgradeMixin;
3838
}
3939

4040
interface DisableUpgradeMixin {
4141
attributeChangedCallback(name: any, old: any, value: any): void;
42-
43-
/**
44-
* NOTE: cannot gate on attribute because this is called before
45-
* attributes are delivered. Therefore, we stub this out and
46-
* call `super._initializeProperties()` manually.
47-
*/
4842
_initializeProperties(): void;
49-
50-
/**
51-
* prevent user code in connected from running
52-
*/
5343
connectedCallback(): void;
54-
55-
/**
56-
* prevent element from turning on properties
57-
*/
5844
_enableProperties(): void;
59-
60-
/**
61-
* only go if "enabled"
62-
*/
6345
disconnectedCallback(): void;
6446
}
6547
}

0 commit comments

Comments
 (0)