保誠-保戶業務員媒合平台
Tomas
2022-05-19 957a1f10a06fdbb76f1a0ba94fe44126c613fee3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var compactable = require('../compactable');
 
function isComponentOf(property1, property2, shallow) {
  return isDirectComponentOf(property1, property2) ||
    !shallow && !!compactable[property1.name].shorthandComponents && isSubComponentOf(property1, property2);
}
 
function isDirectComponentOf(property1, property2) {
  var descriptor = compactable[property1.name];
 
  return 'components' in descriptor && descriptor.components.indexOf(property2.name) > -1;
}
 
function isSubComponentOf(property1, property2) {
  return property1
    .components
    .some(function (component) {
      return isDirectComponentOf(component, property2);
    });
}
 
module.exports = isComponentOf;