@mypolis.eu/action-controller 0.1.0 → 1.0.0

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/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Controller } from "./controller";
2
- export { query, queryAll, target, targets } from "./query";
2
+ export { target, targets } from "./query";
3
3
  export { register } from "./register";
4
4
  export { parseAttributes } from "./attributes";
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAc,MAAM,cAAc,CAAC;AAErD,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAc,MAAM,cAAc,CAAC;AAErD,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC"}
package/dist/query.js CHANGED
@@ -21,63 +21,41 @@ export function findElements(controller, query) {
21
21
  }
22
22
  return elements;
23
23
  }
24
- export function queryAll(target, propertyKey) {
25
- const ctor = target.constructor;
26
- ctor.addInitializer((instance) => {
27
- const getter = function () {
28
- const controller = this.tagName.toLowerCase();
29
- const query = `[data-query~="${controller}.${propertyKey}"]`;
30
- return findElements(this, query);
31
- };
24
+ /**
25
+ * Decorator to find a single element with data-target.
26
+ * @example @target myTarget;
27
+ */
28
+ export function target(_value, context) {
29
+ const propertyKey = context.name;
30
+ context.addInitializer(function () {
31
+ const instance = this;
32
32
  Object.defineProperty(instance, propertyKey, {
33
- get: getter,
33
+ get: function () {
34
+ const controller = this.tagName.toLowerCase();
35
+ const query = `[data-target~="${controller}.${propertyKey}"]`;
36
+ return findElements(this, query)?.[0];
37
+ },
34
38
  enumerable: true,
35
- configurable: true,
39
+ configurable: true
36
40
  });
37
41
  });
38
42
  }
39
- export function query(target, propertyKey) {
40
- const ctor = target.constructor;
41
- ctor.addInitializer((instance) => {
42
- const getter = function () {
43
- const controller = this.tagName.toLowerCase();
44
- const query = `[data-query~="${controller}.${propertyKey}"]`;
45
- return findElements(this, query)?.[0];
46
- };
43
+ /**
44
+ * Decorator to find all elements with data-target.
45
+ * @example @targets myTargets;
46
+ */
47
+ export function targets(_value, context) {
48
+ const propertyKey = context.name;
49
+ context.addInitializer(function () {
50
+ const instance = this;
47
51
  Object.defineProperty(instance, propertyKey, {
48
- get: getter,
52
+ get: function () {
53
+ const controller = this.tagName.toLowerCase();
54
+ const query = `[data-target~="${controller}.${propertyKey}"]`;
55
+ return findElements(this, query);
56
+ },
49
57
  enumerable: true,
50
- configurable: true,
51
- });
52
- });
53
- }
54
- export function target(target, propertyKey) {
55
- const ctor = target.constructor;
56
- ctor.addInitializer((instance) => {
57
- const getter = function () {
58
- const controller = this.tagName.toLowerCase();
59
- const query = `[data-target~="${controller}.${propertyKey}"]`;
60
- return findElements(this, query)?.[0];
61
- };
62
- Object.defineProperty(instance, propertyKey, {
63
- get: getter,
64
- enumerable: true,
65
- configurable: true,
66
- });
67
- });
68
- }
69
- export function targets(target, propertyKey) {
70
- const ctor = target.constructor;
71
- ctor.addInitializer((instance) => {
72
- const getter = function () {
73
- const controller = this.tagName.toLowerCase();
74
- const query = `[data-target~="${controller}.${propertyKey}"]`;
75
- return findElements(this, query);
76
- };
77
- Object.defineProperty(instance, propertyKey, {
78
- get: getter,
79
- enumerable: true,
80
- configurable: true,
58
+ configurable: true
81
59
  });
82
60
  });
83
61
  }
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAoB,UAAuB,EAAE,KAAa;IACrF,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAQ,EAAE,CAAC;IAEzB,oBAAoB;IACpB,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,EAAO,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;IACF,CAAC;IAED,mBAAmB;IACnB,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,EAAO,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,MAAiB,EAAE,OAAmC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAc,CAAC;IAE3C,OAAO,CAAC,cAAc,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAmB,CAAC;QAErC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC5C,GAAG,EAAE;gBACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,kBAAkB,UAAU,IAAI,WAAW,IAAI,CAAC;gBAC9D,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAiB,EAAE,OAAmC;IAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAc,CAAC;IAE3C,OAAO,CAAC,cAAc,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAmB,CAAC;QAErC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC5C,GAAG,EAAE;gBACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,kBAAkB,UAAU,IAAI,WAAW,IAAI,CAAC;gBAC9D,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { Controller, type Action } from "./controller";
2
- export { query, queryAll, target, targets } from "./query";
2
+ export { target, targets } from "./query";
3
3
  export { register } from "./register";
4
4
  export { parseAttributes } from "./attributes";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,KAAK,MAAM,EAAC,MAAM,cAAc,CAAC;AAErD,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,KAAK,MAAM,EAAC,MAAM,cAAc,CAAC;AAErD,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC"}
@@ -1,7 +1,12 @@
1
- import type { Controller } from "./controller";
2
1
  export declare function findElements<T extends Element>(controller: HTMLElement, query: string): T[];
3
- export declare function queryAll(target: Controller, propertyKey: string): void;
4
- export declare function query(target: Controller, propertyKey: string): void;
5
- export declare function target(target: Controller, propertyKey: string): void;
6
- export declare function targets(target: Controller, propertyKey: string): void;
2
+ /**
3
+ * Decorator to find a single element with data-target.
4
+ * @example @target myTarget;
5
+ */
6
+ export declare function target(_value: undefined, context: ClassFieldDecoratorContext): void;
7
+ /**
8
+ * Decorator to find all elements with data-target.
9
+ * @example @targets myTargets;
10
+ */
11
+ export declare function targets(_value: undefined, context: ClassFieldDecoratorContext): void;
7
12
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5C,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,GACZ,CAAC,EAAE,CAyBL;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAgB/D;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAgB5D;AAGD,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAgB7D;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAgB9D"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAyB3F;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,QAgB5E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,QAgB7E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mypolis.eu/action-controller",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -24,14 +24,18 @@
24
24
  },
25
25
  "devDependencies": {
26
26
  "@open-wc/testing": "^4.0.0",
27
- "@tsconfig/node22": "^22.0.2",
28
27
  "@types/mocha": "^10.0.10",
29
28
  "@web/dev-server-esbuild": "^1.0.4",
30
- "@web/test-runner": "^0.20.1",
31
- "typescript": "^5.8.3",
32
- "lit": "^3.2.1"
29
+ "@web/test-runner": "^0.20.2",
30
+ "lit": "^3.3.1",
31
+ "typescript": "^5.9.3",
32
+ "vite": "^7.2.2"
33
+ },
34
+ "dependencies": {
35
+ "@tsconfig/node24": "^24.0.1"
33
36
  },
34
37
  "scripts": {
35
- "build": "tsc -p tsconfig.json"
38
+ "build": "tsc -p tsconfig.json",
39
+ "dev": "vite ./playground"
36
40
  }
37
41
  }