@memberjunction/ng-tasks 4.2.0 → 4.3.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @memberjunction/ng-tasks@4.2.0 build
2
+ > @memberjunction/ng-tasks@4.3.1 build
3
3
  > ngc
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @memberjunction/ng-tasks
2
2
 
3
+ ## 4.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @memberjunction/ai-engine-base@4.3.1
8
+ - @memberjunction/ai-core-plus@4.3.1
9
+ - @memberjunction/core@4.3.1
10
+ - @memberjunction/core-entities@4.3.1
11
+
12
+ ## 4.3.0
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies [564e1af]
17
+ - @memberjunction/core@4.3.0
18
+ - @memberjunction/core-entities@4.3.0
19
+ - @memberjunction/ai-engine-base@4.3.0
20
+ - @memberjunction/ai-core-plus@4.3.0
21
+
3
22
  ## 4.2.0
4
23
 
5
24
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ describe('@memberjunction/ng-tasks', () => {
3
+ it('should have a passing test', () => {
4
+ expect(true).toBe(true);
5
+ });
6
+ });
7
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task-models.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-models.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/task-models.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ describe('TaskViewMode', () => {
3
+ it('should accept simple mode', () => {
4
+ const mode = 'simple';
5
+ expect(mode).toBe('simple');
6
+ });
7
+ it('should accept gantt mode', () => {
8
+ const mode = 'gantt';
9
+ expect(mode).toBe('gantt');
10
+ });
11
+ });
12
+ describe('GanttTask', () => {
13
+ it('should construct a basic gantt task', () => {
14
+ const task = {
15
+ id: 'task-1',
16
+ name: 'Design Phase',
17
+ start: '2026-01-01',
18
+ end: '2026-01-15',
19
+ progress: 75
20
+ };
21
+ expect(task.id).toBe('task-1');
22
+ expect(task.progress).toBe(75);
23
+ expect(task.dependencies).toBeUndefined();
24
+ });
25
+ it('should support dependencies and custom class', () => {
26
+ const task = {
27
+ id: 'task-2',
28
+ name: 'Implementation',
29
+ start: '2026-01-16',
30
+ end: '2026-02-15',
31
+ progress: 30,
32
+ dependencies: 'task-1',
33
+ custom_class: 'critical-task'
34
+ };
35
+ expect(task.dependencies).toBe('task-1');
36
+ expect(task.custom_class).toBe('critical-task');
37
+ });
38
+ it('should handle zero progress', () => {
39
+ const task = {
40
+ id: 'task-3',
41
+ name: 'Future Task',
42
+ start: '2026-03-01',
43
+ end: '2026-03-30',
44
+ progress: 0
45
+ };
46
+ expect(task.progress).toBe(0);
47
+ });
48
+ });
49
+ //# sourceMappingURL=task-models.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-models.test.js","sourceRoot":"","sources":["../../src/__tests__/task-models.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAiB,QAAQ,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,IAAI,GAAiB,OAAO,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAc;YACtB,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAc;YACtB,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,eAAe;SAC9B,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAc;YACtB,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,22 +1,24 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-tasks",
3
- "version": "4.2.0",
3
+ "version": "4.3.1",
4
4
  "description": "MemberJunction: Angular components for task visualization and management with Gantt chart support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "ngc",
9
- "watch": "ngc --watch"
9
+ "watch": "ngc --watch",
10
+ "test": "vitest run",
11
+ "test:watch": "vitest"
10
12
  },
11
13
  "dependencies": {
12
14
  "@angular/animations": "21.1.3",
13
15
  "@angular/common": "21.1.3",
14
16
  "@angular/core": "21.1.3",
15
17
  "@angular/platform-browser": "21.1.3",
16
- "@memberjunction/core": "4.2.0",
17
- "@memberjunction/core-entities": "4.2.0",
18
- "@memberjunction/ai-core-plus": "4.2.0",
19
- "@memberjunction/ai-engine-base": "4.2.0",
18
+ "@memberjunction/core": "4.3.1",
19
+ "@memberjunction/core-entities": "4.3.1",
20
+ "@memberjunction/ai-core-plus": "4.3.1",
21
+ "@memberjunction/ai-engine-base": "4.3.1",
20
22
  "dhtmlx-gantt": "^9.1.1",
21
23
  "rxjs": "^7.8.2"
22
24
  },
@@ -29,5 +31,8 @@
29
31
  "repository": {
30
32
  "type": "git",
31
33
  "url": "https://github.com/MemberJunction/MJ"
34
+ },
35
+ "devDependencies": {
36
+ "vitest": "^4.0.18"
32
37
  }
33
38
  }
@@ -0,0 +1,7 @@
1
+ import { describe, it, expect } from 'vitest';
2
+
3
+ describe('@memberjunction/ng-tasks', () => {
4
+ it('should have a passing test', () => {
5
+ expect(true).toBe(true);
6
+ });
7
+ });
@@ -0,0 +1,54 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import type { TaskViewMode, GanttTask } from '../lib/models/task-view.models';
3
+
4
+ describe('TaskViewMode', () => {
5
+ it('should accept simple mode', () => {
6
+ const mode: TaskViewMode = 'simple';
7
+ expect(mode).toBe('simple');
8
+ });
9
+
10
+ it('should accept gantt mode', () => {
11
+ const mode: TaskViewMode = 'gantt';
12
+ expect(mode).toBe('gantt');
13
+ });
14
+ });
15
+
16
+ describe('GanttTask', () => {
17
+ it('should construct a basic gantt task', () => {
18
+ const task: GanttTask = {
19
+ id: 'task-1',
20
+ name: 'Design Phase',
21
+ start: '2026-01-01',
22
+ end: '2026-01-15',
23
+ progress: 75
24
+ };
25
+ expect(task.id).toBe('task-1');
26
+ expect(task.progress).toBe(75);
27
+ expect(task.dependencies).toBeUndefined();
28
+ });
29
+
30
+ it('should support dependencies and custom class', () => {
31
+ const task: GanttTask = {
32
+ id: 'task-2',
33
+ name: 'Implementation',
34
+ start: '2026-01-16',
35
+ end: '2026-02-15',
36
+ progress: 30,
37
+ dependencies: 'task-1',
38
+ custom_class: 'critical-task'
39
+ };
40
+ expect(task.dependencies).toBe('task-1');
41
+ expect(task.custom_class).toBe('critical-task');
42
+ });
43
+
44
+ it('should handle zero progress', () => {
45
+ const task: GanttTask = {
46
+ id: 'task-3',
47
+ name: 'Future Task',
48
+ start: '2026-03-01',
49
+ end: '2026-03-30',
50
+ progress: 0
51
+ };
52
+ expect(task.progress).toBe(0);
53
+ });
54
+ });
@@ -0,0 +1,11 @@
1
+ import { defineProject, mergeConfig } from 'vitest/config';
2
+ import sharedConfig from '../../../../vitest.shared';
3
+
4
+ export default mergeConfig(
5
+ sharedConfig,
6
+ defineProject({
7
+ test: {
8
+ environment: 'node',
9
+ },
10
+ })
11
+ );