/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ /** @import {SettingGroupConfig} from "chrome://browser/content/preferences/widgets/setting-group.mjs" */ export const SettingGroupManager = { /** @type {Map} */ _data: new Map(), /** * @param {string} id */ get(id) { if (!this._data.has(id)) { throw new Error(`Setting group "${id}" not found`); } return this._data.get(id); }, /** * @param {string} id * @param {SettingGroupConfig} config */ registerGroup(id, config) { if (this._data.has(id)) { throw new Error(`Setting group "${id}" already registered`); } this._data.set(id, config); }, /** * @param {Record} groupConfigs */ registerGroups(groupConfigs) { for (let id in groupConfigs) { this.registerGroup(id, groupConfigs[id]); } }, };