Socket
Socket
Sign inDemoInstall

navigation-knockout

Package Overview
Dependencies
2
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.0 to 2.0.0

38

lib/LinkUtility.js

@@ -1,4 +0,2 @@

/// <reference path="navigation.d.ts" />
/// <reference path="knockout.d.ts" />
var Navigation = require('navigation');
"use strict";
var ko = require('knockout');

@@ -8,5 +6,5 @@ var LinkUtility = (function () {

}
LinkUtility.setLink = function (element, linkAccessor) {
LinkUtility.setLink = function (stateNavigator, element, linkAccessor) {
try {
element.href = Navigation.settings.historyManager.getHref(linkAccessor());
element.href = stateNavigator.historyManager.getHref(linkAccessor());
}

@@ -17,15 +15,15 @@ catch (e) {

};
LinkUtility.getData = function (toData, includeCurrentData, currentDataKeys) {
LinkUtility.getData = function (stateNavigator, navigationData, includeCurrentData, currentDataKeys) {
if (currentDataKeys)
toData = Navigation.StateContext.includeCurrentData(toData, currentDataKeys.trim().split(/\s*,\s*/));
navigationData = stateNavigator.stateContext.includeCurrentData(navigationData, currentDataKeys.trim().split(/\s*,\s*/));
if (includeCurrentData)
toData = Navigation.StateContext.includeCurrentData(toData);
return toData;
navigationData = stateNavigator.stateContext.includeCurrentData(navigationData);
return navigationData;
};
LinkUtility.isActive = function (key, val) {
if (!Navigation.StateContext.state)
LinkUtility.isActive = function (stateNavigator, key, val) {
if (!stateNavigator.stateContext.state)
return false;
if (val != null) {
var trackTypes = Navigation.StateContext.state.trackTypes;
var currentVal = Navigation.StateContext.data[key];
var trackTypes = stateNavigator.stateContext.state.trackTypes;
var currentVal = stateNavigator.stateContext.data[key];
if (currentVal != null)

@@ -46,2 +44,3 @@ return trackTypes ? val === currentVal : val.toString() == currentVal.toString();

var lazy = !!allBindings.get('lazy');
var stateNavigator = allBindings.get('stateNavigator');
ko.utils.registerEventHandler(element, 'click', function (e) {

@@ -52,3 +51,3 @@ if (lazy)

if (element.href) {
var link = Navigation.settings.historyManager.getUrl(element);
var link = stateNavigator.historyManager.getUrl(element);
var navigating = _this.getNavigating(allBindings, viewModel);

@@ -60,6 +59,3 @@ if (navigating(e, link)) {

e['returnValue'] = false;
var historyAction = ko.unwrap(allBindings.get('historyAction'));
if (typeof historyAction === 'string')
historyAction = Navigation.HistoryAction[historyAction];
Navigation.StateController.navigateLink(link, false, historyAction);
stateNavigator.navigateLink(link, ko.unwrap(allBindings.get('historyAction')));
}

@@ -70,4 +66,4 @@ }

if (!lazy) {
Navigation.StateController.onNavigate(setLink);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () { return Navigation.StateController.offNavigate(setLink); });
stateNavigator.onNavigate(setLink);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () { return stateNavigator.offNavigate(setLink); });
}

@@ -88,3 +84,3 @@ else {

return LinkUtility;
})();
}());
module.exports = LinkUtility;

@@ -0,15 +1,16 @@

"use strict";
var LinkUtility = require('./LinkUtility');
var Navigation = require('navigation');
var ko = require('knockout');
var NavigationBackLink = ko.bindingHandlers['navigationBackLink'] = {
init: function (element, valueAccessor, allBindings, viewModel) {
LinkUtility.addListeners(element, function () { return setNavigationBackLink(element, valueAccessor); }, allBindings, viewModel);
LinkUtility.addListeners(element, function () { return setNavigationBackLink(element, valueAccessor, allBindings); }, allBindings, viewModel);
},
update: function (element, valueAccessor) {
setNavigationBackLink(element, valueAccessor);
update: function (element, valueAccessor, allBindings) {
setNavigationBackLink(element, valueAccessor, allBindings);
}
};
function setNavigationBackLink(element, valueAccessor) {
LinkUtility.setLink(element, function () { return Navigation.StateController.getNavigationBackLink(ko.unwrap(valueAccessor())); });
function setNavigationBackLink(element, valueAccessor, allBindings) {
var stateNavigator = allBindings.get('stateNavigator');
LinkUtility.setLink(stateNavigator, element, function () { return stateNavigator.getNavigationBackLink(ko.unwrap(valueAccessor())); });
}
module.exports = NavigationBackLink;

@@ -0,1 +1,2 @@

"use strict";
var NavigationBackLink = require('./NavigationBackLink');

@@ -11,3 +12,3 @@ var NavigationLink = require('./NavigationLink');

return NavigationKnockout;
})();
}());
module.exports = NavigationKnockout;

@@ -0,3 +1,3 @@

"use strict";
var LinkUtility = require('./LinkUtility');
var Navigation = require('navigation');
var ko = require('knockout');

@@ -13,19 +13,16 @@ var NavigationLink = ko.bindingHandlers['navigationLink'] = {

function setNavigationLink(element, valueAccessor, allBindings) {
var action = ko.unwrap(valueAccessor());
var stateKey = ko.unwrap(valueAccessor());
var data = {};
var toData = ko.unwrap(allBindings.get('toData'));
var navigationData = ko.unwrap(allBindings.get('navigationData'));
var active = true;
for (var key in toData) {
var val = ko.unwrap(toData[key]);
var stateNavigator = allBindings.get('stateNavigator');
for (var key in navigationData) {
var val = ko.unwrap(navigationData[key]);
data[key] = val;
active = active && LinkUtility.isActive(key, val);
active = active && LinkUtility.isActive(stateNavigator, key, val);
}
LinkUtility.setLink(element, function () { return Navigation.StateController.getNavigationLink(action, LinkUtility.getData(data, ko.unwrap(allBindings.get('includeCurrentData')), ko.unwrap(allBindings.get('currentDataKeys')))); });
active = active && !!element.href && isActive(action);
LinkUtility.setLink(stateNavigator, element, function () { return stateNavigator.getNavigationLink(stateKey, LinkUtility.getData(stateNavigator, data, ko.unwrap(allBindings.get('includeCurrentData')), ko.unwrap(allBindings.get('currentDataKeys')))); });
active = active && !!element.href && stateNavigator.stateContext.state && stateNavigator.stateContext.state.key === stateKey;
LinkUtility.setActive(element, active, ko.unwrap(allBindings.get('activeCssClass')), ko.unwrap(allBindings.get('disableActive')));
}
function isActive(action) {
var nextState = Navigation.StateController.getNextState(action);
return nextState === nextState.parent.initial && nextState.parent === Navigation.StateContext.dialog;
}
module.exports = NavigationLink;

@@ -0,3 +1,3 @@

"use strict";
var LinkUtility = require('./LinkUtility');
var Navigation = require('navigation');
var ko = require('knockout');

@@ -14,10 +14,11 @@ var RefreshLink = ko.bindingHandlers['refreshLink'] = {

var data = {};
var toData = ko.unwrap(valueAccessor());
var navigationData = ko.unwrap(valueAccessor());
var active = true;
for (var key in toData) {
var val = ko.unwrap(toData[key]);
var stateNavigator = allBindings.get('stateNavigator');
for (var key in navigationData) {
var val = ko.unwrap(navigationData[key]);
data[key] = val;
active = active && LinkUtility.isActive(key, val);
active = active && LinkUtility.isActive(stateNavigator, key, val);
}
LinkUtility.setLink(element, function () { return Navigation.StateController.getRefreshLink(LinkUtility.getData(data, ko.unwrap(allBindings.get('includeCurrentData')), ko.unwrap(allBindings.get('currentDataKeys')))); });
LinkUtility.setLink(stateNavigator, element, function () { return stateNavigator.getRefreshLink(LinkUtility.getData(stateNavigator, data, ko.unwrap(allBindings.get('includeCurrentData')), ko.unwrap(allBindings.get('currentDataKeys')))); });
active = active && !!element.href;

@@ -24,0 +25,0 @@ LinkUtility.setActive(element, active, ko.unwrap(allBindings.get('activeCssClass')), ko.unwrap(allBindings.get('disableActive')));

{
"name": "navigation-knockout",
"version": "1.2.0",
"description": "A plugin for the Navigation routing library that lets you build Hyperlinks using Knockout's binding syntax",
"version": "2.0.0",
"description": "Knockout plugin for the Navigation router",
"main": "navigation-knockout.js",

@@ -20,7 +20,7 @@ "repository": {

"author": "Graham Mendick",
"license": "Apache License 2.0",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/grahammendick/navigation/issues"
},
"homepage": "http://grahammendick.github.io/navigation/example/knockout/navigation.html"
"homepage": "http://grahammendick.github.io/navigation/"
}
# navigation-knockout
[Navigation Knockout](http://grahammendick.github.io/navigation/example/knockout/navigation.html) is a plugin for the Navigation routing library that lets you build Hyperlinks using Knockout's binding syntax.
[Navigation Knockout](http://grahammendick.github.io/navigation/) is the Knockout plugin for the Navigation router.
var NavigationKnockout = require('navigation-knockout');
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc