New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

can-view-model

Package Overview
Dependencies
Maintainers
6
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

can-view-model - npm Package Compare versions

Comparing version 3.3.0-pre.1 to 3.3.0-pre.2

59

can-view-model_test.js
var QUnit = require('steal-qunit');
var viewModel = require('can-view-model');
var SimpleMap = require('can-simple-map');
var CanMap = require('can-map');
var DefineMap = require("can-define/map/map");
var types = require('can-types');

@@ -29,1 +31,58 @@

});
QUnit.test('set custom can-simple-map on element (#5)', function(){
var vm, elVm;
var CustomMap = SimpleMap.extend({});
var el = document.createElement('div');
document.getElementById('qunit-fixture').appendChild(el);
vm = new CustomMap({ foo: 'bar' });
elVm = viewModel(el, vm);
QUnit.equal(viewModel(el,'foo'), 'bar');
});
QUnit.test('set custom can-map on element (#5)', function(){
var vm, elVm;
var CustomMap = CanMap.extend({});
var el = document.createElement('div');
document.getElementById('qunit-fixture').appendChild(el);
vm = new CustomMap({ foo: 'bar' });
elVm = viewModel(el, vm);
QUnit.equal(viewModel(el,'foo'), 'bar');
});
QUnit.test('set custom can-define-map on element (#5)', function(){
var vm, elVm;
var CustomMap = DefineMap.extend({});
var el = document.createElement('div');
document.getElementById('qunit-fixture').appendChild(el);
vm = new CustomMap({ foo: 'bar' });
elVm = viewModel(el, vm);
QUnit.equal(viewModel(el,'foo'), 'bar');
});
QUnit.test('Allow passing array like (jQuery) element', function(){
var DefaultMap = types.DefaultMap;
var $el = {};
types.DefaultMap = undefined;
var el = document.createElement('div');
el.className = 'the-el';
$el[0] = el;
$el.length = 1;
document.getElementById('qunit-fixture').appendChild(el);
viewModel($el, 'foo', 'bar');
QUnit.equal(viewModel('.the-el', 'foo'), 'bar', 'It reads view scope from html element');
QUnit.equal(viewModel($el, 'foo'), 'bar', 'It reads view scope from array like (jQuery) element');
QUnit.ok(viewModel(el) instanceof SimpleMap, 'is can-map');
types.DefaultMap = DefaultMap;
});
QUnit.test('elements with length property not treated as arraylikes (#31)', function() {
var el = document.createElement('select');
document.getElementById('qunit-fixture').appendChild(el);
QUnit.equal(el.length, 0, "Select has length property (0 for empty)");
QUnit.deepEqual(viewModel(el).get(), {}, "viewModel created on empty select");
var opt = document.createElement('option');
el.appendChild(opt);
QUnit.equal(el.length, 1, "Select has length 1");
QUnit.deepEqual(viewModel(el).get(), {}, "viewModel created on non-empty select");
});

15

can-view-model.js

@@ -7,7 +7,16 @@ "use strict";

var getDocument = require("can-util/dom/document/document");
var isArrayLike = require('can-util/js/is-array-like/is-array-like');
module.exports = ns.viewModel = function (el, attr, val) {
el = typeof el === 'string' ? getDocument().querySelector(el) : el;
var scope ;
if (typeof el === 'string') {
el = getDocument().querySelector(el);
} else if (isArrayLike(el) && !el.nodeType) {
el= el[0];
}
var scope = domData.get.call(el, "viewModel");
if (types.isMapLike(attr)) {
return domData.set.call( el, "viewModel", attr);
}
scope = domData.get.call(el, "viewModel");
if(!scope) {

@@ -14,0 +23,0 @@ scope = types.DefaultMap ? new types.DefaultMap() : new SimpleMap();

4

package.json
{
"name": "can-view-model",
"version": "3.3.0-pre.1",
"version": "3.3.0-pre.2",
"description": "gets or sets the view model of an element",

@@ -38,5 +38,5 @@ "homepage": "http://canjs.com",

"devDependencies": {
"bit-docs": "0.0.7",
"can-define": "^1.2.0-pre.1",
"can-map": "^3.1.0-pre.2",
"bit-docs": "0.0.7",
"done-serve": "^0.2.0",

@@ -43,0 +43,0 @@ "donejs-cli": "^0.9.5",

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc