"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const immutable_1 = __importDefault(require("immutable")); const file_1 = __importDefault(require("./file")); const language_1 = __importDefault(require("./language")); class Languages extends immutable_1.default.Record({ file: new file_1.default(), list: immutable_1.default.OrderedMap() }) { getFile() { return this.get("file"); } getList() { return this.get("list"); } /** Get default languages @return {Language} */ getDefaultLanguage() { return this.getList().first(); } /** Get a language by its ID @param {string} lang @return {Language} */ getLanguage(lang) { return this.getList().get(lang); } /** Return count of langs @return {number} */ getCount() { return this.getList().size; } /** Create a languages list from a JS object @return {Language} */ static createFromList(file, langs) { let list = immutable_1.default.OrderedMap(); langs.forEach((lang) => { lang = new language_1.default({ title: lang.title, path: lang.ref }); list = list.set(lang.getID(), lang); }); return new Languages({ file: file, list: list }); } } exports.default = Languages;