var component = components[i];
var descriptor = compactable[component.name];
- if (component.value[0][1] != descriptor.defaultValue)
+ if (component.value[0][1] != descriptor.defaultValue || ('keepUnlessDefault' in descriptor) && !isDefault(components, compactable, descriptor.keepUnlessDefault)) {
restored.unshift(component.value[0]);
+ }
}
if (restored.length === 0)
return restored;
}
+function isDefault(components, compactable, propertyName) {
+ var component;
+ var i, l;
+
+ for (i = 0, l = components.length; i < l; i++) {
+ component = components[i];
+
+ if (component.name == propertyName && component.value[0][1] == compactable[propertyName].defaultValue) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
module.exports = {
background: background,
borderRadius: borderRadius,
]);
}
}
+ },
+ 'animation': {
+ 'with two time units where both are default': {
+ 'topic': function () {
+ return _restore(
+ _breakUp([
+ 'property',
+ ['property-name', 'animation'],
+ ['property-value', '0s'],
+ ['property-value', 'ease-out'],
+ ['property-value', '0s'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ])
+ );
+ },
+ 'gives right value back': function (restoredValue) {
+ assert.deepEqual(restoredValue, [
+ ['property-value', 'ease-out'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ]);
+ }
+ },
+ 'with two time units where first is default': {
+ 'topic': function () {
+ return _restore(
+ _breakUp([
+ 'property',
+ ['property-name', 'animation'],
+ ['property-value', '0s'],
+ ['property-value', 'ease-out'],
+ ['property-value', '5s'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ])
+ );
+ },
+ 'gives right value back': function (restoredValue) {
+ assert.deepEqual(restoredValue, [
+ ['property-value', '0s'],
+ ['property-value', 'ease-out'],
+ ['property-value', '5s'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ]);
+ }
+ },
+ 'with two vendor-prefixed time units where first is default': {
+ 'topic': function () {
+ return _restore(
+ _breakUp([
+ 'property',
+ ['property-name', '-webkit-animation'],
+ ['property-value', '0s'],
+ ['property-value', 'ease-out'],
+ ['property-value', '5s'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ])
+ );
+ },
+ 'gives right value back': function (restoredValue) {
+ assert.deepEqual(restoredValue, [
+ ['property-value', '0s'],
+ ['property-value', 'ease-out'],
+ ['property-value', '5s'],
+ ['property-value', 'forwards'],
+ ['property-value', 'test-name']
+ ]);
+ }
+ }
}
})
.export(module);