%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/js/landing/collection/ |
Current File : /home/bitrix/www/bitrix/js/landing/collection/card_collection.js |
;(function() { "use strict"; BX.namespace("BX.Landing.Collection"); /** * Implements interface for works with cards collection * * @extends {BX.Landing.Collection.BaseCollection} * @constructor */ BX.Landing.Collection.CardCollection = function() { BX.Landing.Collection.BaseCollection.apply(this, arguments); }; BX.Landing.Collection.CardCollection.prototype = { constructor: BX.Landing.Collection.CardCollection, __proto__: BX.Landing.Collection.BaseCollection.prototype, /** * Gets card by node * @param {HTMLElement} node * @return {?BX.Landing.Block.Card} */ getByNode: function(node) { var result = null; this.some(function(item) { if (item.node === node) { result = item; return true; } }); return result; }, /** * Gets card by node * @param {string} selector * @return {?BX.Landing.Block.Card} */ getBySelector: function(selector) { var result = null; this.some(function(item) { if (item.selector === selector) { result = item; return true; } }); return result; }, /** * Adds card to collection * @param {BX.Landing.Block.Card} card */ add: function(card) { if (!!card && card instanceof BX.Landing.Block.Card && !this.contains(card)) { this.push(card); } }, /** * Gets nodes matching selector * @param selector * @return {Array|Array.<BX.Landing.Block.Node>} */ matches: function(selector) { return this.filter(function(item) { return item.node.matches(selector); }); }, /** * Gets nodes not matching selector * @param selector * @return {Array|Array.<BX.Landing.Block.Node>} */ notMatches: function(selector) { return this.filter(function(item) { return !item.node.matches(selector); }); } }; })();