@jbouduin/holidays-lib
Version:
Get World-Wide Holidays
39 lines (38 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HierarchyFilter = void 0;
var HierarchyFilter = /** @class */ (function () {
// <editor-fold desc='Constructor & Co°'>
function HierarchyFilter() {
}
// </editor-fold>
// <editor-fold desc='IHierarchyFilter interface methods'>
HierarchyFilter.prototype.filterConfigurationByHierarchy = function (configuration, hierarchy, deep) {
var _this = this;
var result;
var pathElements = hierarchy.split('/');
var currentRoot = pathElements.shift();
if (currentRoot === configuration.hierarchy) {
result = configuration.holidays;
if (pathElements.length === 0) {
if (deep) {
configuration.subConfigurations.forEach(function (sub) {
return result = result.concat(_this.filterConfigurationByHierarchy(sub, sub.hierarchy, true));
});
}
}
else {
var subConfiguration = configuration.subConfigurations.filter(function (sub) { return sub.hierarchy === pathElements[0]; });
if (subConfiguration.length > 0) {
result = result.concat(this.filterConfigurationByHierarchy(subConfiguration[0], pathElements.join('/'), deep));
}
}
}
else {
result = new Array();
}
return result;
};
return HierarchyFilter;
}());
exports.HierarchyFilter = HierarchyFilter;