This repository was archived by the owner on Feb 4, 2018. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -310,6 +310,30 @@ class BemEntityName {
310
310
return entityName && ( this . id === entityName . id ) ;
311
311
}
312
312
313
+ /**
314
+ * Determines whether specified entity belongs to this.
315
+ *
316
+ * @example
317
+ * const BemEntityName = require('@bem/entity-name');
318
+ *
319
+ * const buttonName = new BemEntityName({ block: 'button' });
320
+ * const buttonTextName = new BemEntityName({ block: 'button', elem: 'text' });
321
+ *
322
+ * buttonTextName.belongsTo(buttonName); // true
323
+ * buttonName.belongsTo(buttonTextName); // false
324
+ *
325
+ * @param {BemEntityName } entityName - the entity to compare.
326
+ *
327
+ * @returns {boolean }
328
+ */
329
+ belongsTo ( entityName ) {
330
+ return entityName && entityName . id !== this . id && this . id . startsWith ( entityName . id ) &&
331
+ ( entityName . type !== 'block' || this . type !== 'elemMod' ) &&
332
+ ( ! entityName . elem || this . elem === entityName . elem ) &&
333
+ ( ! entityName . modName || this . modName === entityName . modName ) &&
334
+ ( ! entityName . modVal || entityName . modVal === true || this . modVal === entityName . modVal ) ;
335
+ }
336
+
313
337
/**
314
338
* Determines whether specified entity is instance of BemEntityName.
315
339
*
You can’t perform that action at this time.
0 commit comments