1234567891011121314151617181920212223242526272829303132333435363738394041 |
- var compactable = require('../compactable');
-
- function findComponentIn(shorthand, longhand) {
- var comparator = nameComparator(longhand);
-
- return findInDirectComponents(shorthand, comparator) || findInSubComponents(shorthand, comparator);
- }
-
- function nameComparator(to) {
- return function (property) {
- return to.name === property.name;
- };
- }
-
- function findInDirectComponents(shorthand, comparator) {
- return shorthand.components.filter(comparator)[0];
- }
-
- function findInSubComponents(shorthand, comparator) {
- var shorthandComponent;
- var longhandMatch;
- var i, l;
-
- if (!compactable[shorthand.name].shorthandComponents) {
- return;
- }
-
- for (i = 0, l = shorthand.components.length; i < l; i++) {
- shorthandComponent = shorthand.components[i];
- longhandMatch = findInDirectComponents(shorthandComponent, comparator);
-
- if (longhandMatch) {
- return longhandMatch;
- }
- }
-
- return;
- }
-
- module.exports = findComponentIn;
|