UNPKG

aurelia-bootstrap

Version:
55 lines (43 loc) 1.82 kB
/* */ define(['exports', './null-repeat-strategy', './array-repeat-strategy', './map-repeat-strategy', './set-repeat-strategy', './number-repeat-strategy'], function (exports, _nullRepeatStrategy, _arrayRepeatStrategy, _mapRepeatStrategy, _setRepeatStrategy, _numberRepeatStrategy) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.RepeatStrategyLocator = undefined; var RepeatStrategyLocator = exports.RepeatStrategyLocator = function () { function RepeatStrategyLocator() { this.matchers = []; this.strategies = []; this.addStrategy(function (items) { return items === null || items === undefined; }, new _nullRepeatStrategy.NullRepeatStrategy()); this.addStrategy(function (items) { return items instanceof Array; }, new _arrayRepeatStrategy.ArrayRepeatStrategy()); this.addStrategy(function (items) { return items instanceof Map; }, new _mapRepeatStrategy.MapRepeatStrategy()); this.addStrategy(function (items) { return items instanceof Set; }, new _setRepeatStrategy.SetRepeatStrategy()); this.addStrategy(function (items) { return typeof items === 'number'; }, new _numberRepeatStrategy.NumberRepeatStrategy()); } RepeatStrategyLocator.prototype.addStrategy = function addStrategy(matcher, strategy) { this.matchers.push(matcher); this.strategies.push(strategy); }; RepeatStrategyLocator.prototype.getStrategy = function getStrategy(items) { var matchers = this.matchers; for (var i = 0, ii = matchers.length; i < ii; ++i) { if (matchers[i](items)) { return this.strategies[i]; } } return null; }; return RepeatStrategyLocator; }(); });