angularjs-tree 1.1.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +3 -0
- package/.github/workflows/publish.yml +8 -6
- package/README.md +1 -1
- package/dist/angularjs-tree.min.js +6 -7
- package/examples/demo1.html +1 -1
- package/examples/demo2.html +1 -1
- package/package.json +21 -4
- package/src/index.js +49 -0
- package/webpack.config.js +65 -0
- package/Gruntfile.js +0 -21
- package/src/angularjs-tree.js +0 -49
package/.babelrc
ADDED
|
@@ -2,17 +2,19 @@ on:
|
|
|
2
2
|
release:
|
|
3
3
|
types: [published]
|
|
4
4
|
name: Publish
|
|
5
|
+
permissions:
|
|
6
|
+
id-token: write
|
|
7
|
+
contents: read
|
|
5
8
|
jobs:
|
|
6
9
|
publish:
|
|
7
10
|
runs-on: ubuntu-latest
|
|
8
11
|
steps:
|
|
9
|
-
- uses: actions/checkout@
|
|
10
|
-
- uses: actions/setup-node@
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-node@v4
|
|
11
14
|
with:
|
|
12
|
-
node-version: '
|
|
15
|
+
node-version: '20'
|
|
13
16
|
registry-url: 'https://registry.npmjs.org'
|
|
14
|
-
|
|
17
|
+
- name: Update npm
|
|
18
|
+
run: npm install -g npm@latest
|
|
15
19
|
- run: npm ci
|
|
16
20
|
- run: npm publish
|
|
17
|
-
env:
|
|
18
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@ Angularjs tree
|
|
|
2
2
|
====
|
|
3
3
|
[](https://www.npmjs.com/package/angularjs-tree)
|
|
4
4
|
|
|
5
|
-
A simple directive for creating tree lists with
|
|
5
|
+
A simple directive for creating tree lists with Angularjs version 1.
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
* angularjs-tree -
|
|
3
|
-
* (c)
|
|
4
|
-
* License: MIT
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
!function(i){"use strict";i.module("angularjs.tree",[]).directive("tree",["$document",function(e){return{restrict:"A",scope:{callback:"&treeCallback"},link:function(a,e){i.forEach(i.element(e).children(),function(e,n){var l=i.element(e)[0].querySelector("a"),t=i.element(e)[0].querySelector(".treeview-menu"),c=i.element(e).hasClass("active");c?i.element(t).css("display","block"):i.element(t).css("display","none"),null!=t&&i.element(l).bind("click",function(e){e.preventDefault(),c?(i.element(t).css("display","none"),c=!1,i.element(l).parent("li").removeClass("active")):(i.element(t).css("display","block"),c=!0,i.element(l).parent("li").addClass("active")),a.callback({event:e})})})}}}])}((window,window.angular));
|
|
1
|
+
/*!
|
|
2
|
+
* angularjs-tree - v2.0.1
|
|
3
|
+
* (c) 2026. Amal Francis
|
|
4
|
+
* License: MIT
|
|
5
|
+
*/
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("angular")):"function"==typeof define&&define.amd?define(["angular"],t):"object"==typeof exports?exports["angularjs.tree"]=t(require("angular")):e["angularjs.tree"]=t(e.angular)}(this,e=>(()=>{"use strict";var t={526(t){t.exports=e}},r={};function n(e){var l=r[e];if(void 0!==l)return l.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};n.r(l),n.d(l,{default:()=>c});var o=n(526),a="angularjs.tree";o.module(a,[]).directive("tree",["$document",function(e){return{restrict:"A",scope:{callback:"&treeCallback"},link:function(e,t){o.forEach(o.element(t).children(),function(t,r){var n=o.element(t)[0].querySelector("a"),l=o.element(t)[0].querySelector(".treeview-menu"),a=o.element(t).hasClass("active");a?o.element(l).css("display","block"):o.element(l).css("display","none"),null!=l&&o.element(n).bind("click",function(t){t.preventDefault(),a?(o.element(l).css("display","none"),a=!1,o.element(n).parent("li").removeClass("active")):(o.element(l).css("display","block"),a=!0,o.element(n).parent("li").addClass("active")),e.callback({event:t})})})}}}]);const c=a;return l})());
|
package/examples/demo1.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
|
|
5
|
-
<script src="../
|
|
5
|
+
<script src="../dist/angularjs-tree.min.js"></script>
|
|
6
6
|
<title>Angular tree demo</title>
|
|
7
7
|
<script>
|
|
8
8
|
angular.module('demoApp', ['angularjs.tree']).controller('demoController', ['$scope', function($scope) {
|
package/examples/demo2.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
|
|
5
|
-
<script src="../
|
|
5
|
+
<script src="../dist/angularjs-tree.min.js"></script>
|
|
6
6
|
<title>Angular tree demo</title>
|
|
7
7
|
<script>
|
|
8
8
|
angular.module('demoApp', ['angularjs.tree']).controller('demoController', ['$scope', function($scope) {
|
package/package.json
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "angularjs-tree",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "A simple directive for creating tree lists with angularjs",
|
|
5
5
|
"author": "Amal Francis",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"bugs": {
|
|
7
8
|
"url": "https://github.com/amalfra/angularjs-tree/issues"
|
|
8
9
|
},
|
|
9
10
|
"repository": {
|
|
10
11
|
"type": "git",
|
|
11
|
-
"url": "
|
|
12
|
+
"url": "git@github.com:amalfra/angularjs-tree.git"
|
|
12
13
|
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "webpack --mode production",
|
|
16
|
+
"dev": "webpack --mode development"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"angularjs",
|
|
20
|
+
"tree",
|
|
21
|
+
"view"
|
|
22
|
+
],
|
|
13
23
|
"license": "MIT",
|
|
14
24
|
"devDependencies": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
25
|
+
"@babel/core": "^7.29.0",
|
|
26
|
+
"@babel/preset-env": "^7.29.2",
|
|
27
|
+
"babel-loader": "^10.1.1",
|
|
28
|
+
"terser-webpack-plugin": "^5.4.0",
|
|
29
|
+
"webpack": "^5.105.4",
|
|
30
|
+
"webpack-cli": "^7.0.2"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"angular": "^1.8.3"
|
|
17
34
|
}
|
|
18
35
|
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import angular from 'angular';
|
|
2
|
+
|
|
3
|
+
const moduleName = 'angularjs.tree';
|
|
4
|
+
|
|
5
|
+
const mod = angular.module(moduleName, []);
|
|
6
|
+
|
|
7
|
+
mod.directive('tree', ['$document', function($document) {
|
|
8
|
+
return {
|
|
9
|
+
restrict: 'A',
|
|
10
|
+
scope: {
|
|
11
|
+
callback: '&treeCallback'
|
|
12
|
+
},
|
|
13
|
+
link: function(scope, elem) {
|
|
14
|
+
angular.forEach(angular.element(elem).children(), function(value, key) {
|
|
15
|
+
var btn = angular.element(value)[0].querySelector('a');
|
|
16
|
+
var menu = angular.element(value)[0].querySelector('.treeview-menu');
|
|
17
|
+
var isActive = angular.element(value).hasClass('active');
|
|
18
|
+
|
|
19
|
+
// initialize already active menus
|
|
20
|
+
if (isActive) {
|
|
21
|
+
angular.element(menu).css('display', 'block');
|
|
22
|
+
} else {
|
|
23
|
+
angular.element(menu).css('display', 'none');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (menu != null) {
|
|
27
|
+
// open or close the sub menu on link click
|
|
28
|
+
angular.element(btn).bind("click", function(e){
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
if (isActive) {
|
|
31
|
+
// close sub menu
|
|
32
|
+
angular.element(menu).css('display', 'none');
|
|
33
|
+
isActive = false;
|
|
34
|
+
angular.element(btn).parent('li').removeClass('active');
|
|
35
|
+
} else {
|
|
36
|
+
// open sub menu
|
|
37
|
+
angular.element(menu).css('display', 'block');
|
|
38
|
+
isActive = true;
|
|
39
|
+
angular.element(btn).parent('li').addClass('active');
|
|
40
|
+
}
|
|
41
|
+
scope.callback({event: e});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}]);
|
|
48
|
+
|
|
49
|
+
export default moduleName;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
import TerserPlugin from 'terser-webpack-plugin';
|
|
4
|
+
import webpack from 'webpack';
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const pkg = require('./package.json');
|
|
9
|
+
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
|
+
|
|
13
|
+
export default (env, argv) => {
|
|
14
|
+
const isProd = argv.mode === 'production';
|
|
15
|
+
|
|
16
|
+
const banner = `
|
|
17
|
+
${pkg.name} - v${pkg.version}
|
|
18
|
+
(c) ${new Date().getFullYear()}. ${pkg.author || ''}
|
|
19
|
+
License: ${pkg.license || 'MIT'}
|
|
20
|
+
`.trim();
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
entry: './src/index.js',
|
|
24
|
+
output: {
|
|
25
|
+
path: path.resolve(__dirname, 'dist'),
|
|
26
|
+
filename: isProd
|
|
27
|
+
? 'angularjs-tree.min.js'
|
|
28
|
+
: 'angularjs-tree.js',
|
|
29
|
+
library: {
|
|
30
|
+
name: 'angularjs.tree',
|
|
31
|
+
type: 'umd'
|
|
32
|
+
},
|
|
33
|
+
globalObject: 'this'
|
|
34
|
+
},
|
|
35
|
+
externals: {
|
|
36
|
+
angular: 'angular'
|
|
37
|
+
},
|
|
38
|
+
module: {
|
|
39
|
+
rules: [
|
|
40
|
+
{
|
|
41
|
+
test: /\.js$/,
|
|
42
|
+
exclude: /node_modules/,
|
|
43
|
+
use: {
|
|
44
|
+
loader: 'babel-loader'
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
plugins: [
|
|
50
|
+
new webpack.BannerPlugin({
|
|
51
|
+
banner,
|
|
52
|
+
raw: false,
|
|
53
|
+
entryOnly: true
|
|
54
|
+
})
|
|
55
|
+
],
|
|
56
|
+
optimization: {
|
|
57
|
+
minimize: isProd,
|
|
58
|
+
minimizer: [new TerserPlugin({
|
|
59
|
+
extractComments: false // prevent separate LICENSE file
|
|
60
|
+
})]
|
|
61
|
+
},
|
|
62
|
+
devtool: isProd ? false : 'source-map',
|
|
63
|
+
mode: isProd ? 'production' : 'development'
|
|
64
|
+
};
|
|
65
|
+
};
|
package/Gruntfile.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module.exports = function(grunt) {
|
|
2
|
-
grunt.initConfig({
|
|
3
|
-
pkg: grunt.file.readJSON('package.json'),
|
|
4
|
-
uglify: {
|
|
5
|
-
options: {
|
|
6
|
-
banner: '/** \n'+
|
|
7
|
-
'* <%= pkg.name %> - v<%= pkg.version %> \n' +
|
|
8
|
-
'* (c) <%= grunt.template.today("yyyy-mm-dd") %>. <%= pkg.repository.url %> \n' +
|
|
9
|
-
'* License: <%= pkg.license %> \n*/\n'
|
|
10
|
-
},
|
|
11
|
-
my_target: {
|
|
12
|
-
files: {
|
|
13
|
-
'./dist/angularjs-tree.min.js': ['./src/angularjs-tree.js']
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
20
|
-
grunt.registerTask('default', ['uglify:my_target']);
|
|
21
|
-
}
|
package/src/angularjs-tree.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
(function(window, angular, undefined) {
|
|
2
|
-
'use strict';
|
|
3
|
-
angular.module("angularjs.tree",[]).directive('tree', ["$document", function($document) {
|
|
4
|
-
return {
|
|
5
|
-
restrict: 'A',
|
|
6
|
-
scope: {
|
|
7
|
-
callback: '&treeCallback'
|
|
8
|
-
},
|
|
9
|
-
link: function(scope, elem) {
|
|
10
|
-
angular.forEach(angular.element(elem).children(), function(value, key){
|
|
11
|
-
|
|
12
|
-
var btn = angular.element(value)[0].querySelector("a");
|
|
13
|
-
var menu = angular.element(value)[0].querySelector(".treeview-menu");
|
|
14
|
-
var isActive = angular.element(value).hasClass('active');
|
|
15
|
-
|
|
16
|
-
//initialize already active menus
|
|
17
|
-
if (isActive)
|
|
18
|
-
{
|
|
19
|
-
angular.element(menu).css('display', 'block');
|
|
20
|
-
}
|
|
21
|
-
else
|
|
22
|
-
{
|
|
23
|
-
angular.element(menu).css('display', 'none');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (menu != null)
|
|
27
|
-
{
|
|
28
|
-
//open or close the sub menu on link click
|
|
29
|
-
angular.element(btn).bind("click", function(e){
|
|
30
|
-
e.preventDefault();
|
|
31
|
-
if (isActive) {
|
|
32
|
-
//close sub menu
|
|
33
|
-
angular.element(menu).css('display', 'none');
|
|
34
|
-
isActive = false;
|
|
35
|
-
angular.element(btn).parent("li").removeClass("active");
|
|
36
|
-
} else {
|
|
37
|
-
//open sub menu
|
|
38
|
-
angular.element(menu).css('display', 'block');
|
|
39
|
-
isActive = true;
|
|
40
|
-
angular.element(btn).parent("li").addClass("active");
|
|
41
|
-
}
|
|
42
|
-
scope.callback({event: e});
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}]);
|
|
49
|
-
})(window, window.angular);
|