mirror of
https://github.com/Karaka-Management/oms-Navigation.git
synced 2026-01-14 17:48:40 +00:00
146 lines
3.4 KiB
JavaScript
146 lines
3.4 KiB
JavaScript
/**
|
|
* Navigation class.
|
|
*
|
|
* @copyright Dennis Eichhorn
|
|
* @license OMS License 1.0
|
|
* @version 1.0.0
|
|
* @since 1.0.0
|
|
*/
|
|
(function (jsOMS)
|
|
{
|
|
"use strict";
|
|
|
|
/** @namespace jsOMS.Modules.Navigation.Models */
|
|
jsOMS.Autoloader.defineNamespace('jsOMS.Modules.Navigation.Models');
|
|
|
|
/**
|
|
* Construct
|
|
*
|
|
* @param {Object} data Initialization (optional)
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation = function (data)
|
|
{
|
|
if (typeof data === 'undefined') {
|
|
this.scrollPosition = {x: 0, y: 0};
|
|
this.activeLinks = {};
|
|
this.visible = true;
|
|
this.openCategories = {};
|
|
} else {
|
|
this.scrollPosition = typeof data.scrollPosition === 'undefined' ? {x : 0, y : 0} : data.scrollPosition;
|
|
this.activeLinks = typeof data.activeLinks === 'undefined' ? {} : data.activeLinks;
|
|
this.visible = typeof data.visible === 'undefined' ? true : data.visible;
|
|
this.openCategories = typeof data.openCategories === 'undefined' ? {} : data.openCategories;
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Set scroll position
|
|
*
|
|
* @param {int} x Horizontal position
|
|
* @param {int} y Vertical position
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.setScrollPosition = function (x, y)
|
|
{
|
|
this.scrollPosition.x = x;
|
|
this.scrollPosition.y = y;
|
|
};
|
|
|
|
/**
|
|
* Get scroll position
|
|
*
|
|
* @return {Object}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.getScrollPosition = function ()
|
|
{
|
|
return this.scrollPosition;
|
|
};
|
|
|
|
/**
|
|
* Open navigation category
|
|
*
|
|
* @param {string} id Category id
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.setOpen = function (id)
|
|
{
|
|
this.openCategories[id] = true;
|
|
};
|
|
|
|
/**
|
|
* Close navigation category
|
|
*
|
|
* @param {string} id Category id
|
|
*
|
|
* @return {void}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.setClose = function (id)
|
|
{
|
|
delete this.openCategories[id];
|
|
};
|
|
|
|
/**
|
|
* Get open navigation elements
|
|
*
|
|
* @return {Object}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.getOpen = function ()
|
|
{
|
|
return this.openCategories;
|
|
};
|
|
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.active = function (id)
|
|
{
|
|
this.allInactive();
|
|
};
|
|
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.allInactive = function ()
|
|
{
|
|
|
|
};
|
|
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.inactive = function (id)
|
|
{
|
|
};
|
|
|
|
/**
|
|
* Set navigation visibility
|
|
*
|
|
* @param {bool} visible Visibility
|
|
*
|
|
* @return {bool}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.setVisible = function (visible)
|
|
{
|
|
this.visible = visible;
|
|
};
|
|
|
|
/**
|
|
* Is navigation visible
|
|
*
|
|
* @return {bool}
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
jsOMS.Modules.Navigation.Models.Navigation.prototype.isVisible = function ()
|
|
{
|
|
return this.visible;
|
|
};
|
|
}(window.jsOMS = window.jsOMS || {}));
|