@dnncommunity/dnn-elements 0.24.4-beta.7 → 0.24.4-beta.9
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/eslint-plugin/dist/index.d.ts +13 -0
- package/eslint-plugin/dist/index.js +18 -0
- package/eslint-plugin/dist/index.js.map +1 -0
- package/eslint-plugin/dist/rules/index.d.ts +3 -0
- package/eslint-plugin/dist/rules/index.js +8 -0
- package/eslint-plugin/dist/rules/index.js.map +1 -0
- package/eslint-plugin/dist/rules/no-label-slot-in-checkbox.d.ts +1 -0
- package/eslint-plugin/dist/rules/no-label-slot-in-checkbox.js +47 -0
- package/eslint-plugin/dist/rules/no-label-slot-in-checkbox.js.map +1 -0
- package/eslint-plugin/dist/rules/no-label-slot-in-checkbox.tests.js +30 -0
- package/eslint-plugin/dist/rules/no-label-slot-in-checkbox.tests.js.map +1 -0
- package/eslint-plugin/dist/utils.d.ts +7 -0
- package/eslint-plugin/dist/utils.js +7 -0
- package/eslint-plugin/dist/utils.js.map +1 -0
- package/package.json +15 -6
- package/dist/collection/eslint-plugin/__tests__/no-label-slot-in-checkbox.tests.js +0 -26
- package/dist/collection/eslint-plugin/__tests__/no-label-slot-in-checkbox.tests.js.map +0 -1
- package/dist/collection/eslint-plugin/src/index.js +0 -17
- package/dist/collection/eslint-plugin/src/index.js.map +0 -1
- package/dist/collection/eslint-plugin/src/rules/no-label-slot-in-checkbox.js +0 -45
- package/dist/collection/eslint-plugin/src/rules/no-label-slot-in-checkbox.js.map +0 -1
- package/dist/types/eslint-plugin/src/index.d.ts +0 -17
- package/dist/types/eslint-plugin/src/rules/no-label-slot-in-checkbox.d.ts +0 -2
- package/eslint-plugin/index.d.ts +0 -17
- package/eslint-plugin/index.js +0 -20
- package/eslint-plugin/index.js.map +0 -1
- package/eslint-plugin/rules/no-label-slot-in-checkbox.d.ts +0 -2
- package/eslint-plugin/rules/no-label-slot-in-checkbox.js +0 -48
- package/eslint-plugin/rules/no-label-slot-in-checkbox.js.map +0 -1
- /package/{dist/types/eslint-plugin/__tests__ → eslint-plugin/dist/rules}/no-label-slot-in-checkbox.tests.d.ts +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const plugin: {
|
|
2
|
+
configs: {
|
|
3
|
+
readonly recommended: {
|
|
4
|
+
plugins: {
|
|
5
|
+
"dnn-elements": any;
|
|
6
|
+
};
|
|
7
|
+
rules: {
|
|
8
|
+
"no-label-slot-in-checkbox": import("@typescript-eslint/utils/ts-eslint").RuleModule<"noLabelSlotInCheckbox", [], import("./utils").TypedLintingRuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export default plugin;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const rules_1 = require("./rules");
|
|
4
|
+
const plugin = {
|
|
5
|
+
configs: {
|
|
6
|
+
get recommended() {
|
|
7
|
+
return recommended;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
const recommended = {
|
|
12
|
+
plugins: {
|
|
13
|
+
"dnn-elements": plugin,
|
|
14
|
+
},
|
|
15
|
+
rules: rules_1.rules,
|
|
16
|
+
};
|
|
17
|
+
exports.default = plugin;
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAEhC,MAAM,MAAM,GAAG;IACX,OAAO,EAAE;QACL,IAAI,WAAW;YACX,OAAO,WAAW,CAAC;QACvB,CAAC;KACJ;CACJ,CAAA;AACD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE;QACL,cAAc,EAAE,MAAM;KACzB;IACD,KAAK,EAAL,aAAK;CACR,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rules = void 0;
|
|
4
|
+
const no_label_slot_in_checkbox_1 = require("./no-label-slot-in-checkbox");
|
|
5
|
+
exports.rules = {
|
|
6
|
+
"no-label-slot-in-checkbox": no_label_slot_in_checkbox_1.rule,
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;AAAA,2EAA4E;AAE/D,QAAA,KAAK,GAAG;IACjB,2BAA2B,EAAE,gCAAqB;CACrD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const rule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"noLabelSlotInCheckbox", [], import("../utils").TypedLintingRuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rule = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
exports.rule = (0, utils_1.createRule)({
|
|
6
|
+
name: "no-label-slot-in-checkbox",
|
|
7
|
+
defaultOptions: [],
|
|
8
|
+
meta: {
|
|
9
|
+
docs: {
|
|
10
|
+
description: "Disallow label slot in checkbox",
|
|
11
|
+
recommended: true,
|
|
12
|
+
url: "https://github.com/DNNCommunity/dnn-elements/releases/tag/v0.24.0",
|
|
13
|
+
},
|
|
14
|
+
type: "problem",
|
|
15
|
+
messages: {
|
|
16
|
+
noLabelSlotInCheckbox: "Label slot is not allowed in dnn-checkbox, wrap dnn-checkbox with a label instead."
|
|
17
|
+
},
|
|
18
|
+
fixable: "code",
|
|
19
|
+
schema: [], // Ensure schema is defined as an empty array or with the appropriate schema definition
|
|
20
|
+
},
|
|
21
|
+
create(context) {
|
|
22
|
+
return {
|
|
23
|
+
JSXElement(node) {
|
|
24
|
+
if (node.openingElement.name.type === "JSXIdentifier" &&
|
|
25
|
+
node.openingElement.name.name === "dnn-checkbox") {
|
|
26
|
+
const innerContent = node.children
|
|
27
|
+
.map(child => context.sourceCode.getText(child))
|
|
28
|
+
.join("")
|
|
29
|
+
.trim();
|
|
30
|
+
if (innerContent) {
|
|
31
|
+
context.report({
|
|
32
|
+
node,
|
|
33
|
+
messageId: "noLabelSlotInCheckbox",
|
|
34
|
+
fix: fixer => {
|
|
35
|
+
const checkboxText = context.sourceCode.getText(node.openingElement);
|
|
36
|
+
const selfClosing = checkboxText.replace(/>$/, " />");
|
|
37
|
+
const replacement = `<label>\n${selfClosing}\n${innerContent}\n</label>`;
|
|
38
|
+
return fixer.replaceText(node, replacement);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=no-label-slot-in-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-label-slot-in-checkbox.js","sourceRoot":"","sources":["../../src/rules/no-label-slot-in-checkbox.ts"],"names":[],"mappings":";;;AAAA,oCAAsC;AAEzB,QAAA,IAAI,GAAG,IAAA,kBAAU,EAAC;IAC3B,IAAI,EAAE,2BAA2B;IACjC,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,IAAI,EAAE;YACF,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,mEAAmE;SAC3E;QACD,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE;YACN,qBAAqB,EAAE,oFAAoF;SAC9G;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE,EAAE,uFAAuF;KACtG;IACD,MAAM,CAAC,OAAO;QACV,OAAO;YACH,UAAU,CAAC,IAAI;gBACX,IACI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;oBACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAClD,CAAC;oBACC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;yBAC7B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;yBAC/C,IAAI,CAAC,EAAE,CAAC;yBACR,IAAI,EAAE,CAAC;oBAEZ,IAAI,YAAY,EAAE,CAAC;wBACf,OAAO,CAAC,MAAM,CAAC;4BACX,IAAI;4BACJ,SAAS,EAAE,uBAAuB;4BAClC,GAAG,EAAE,KAAK,CAAC,EAAE;gCACT,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCACrE,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gCAEtD,MAAM,WAAW,GAAG,YAAY,WAAW,KAAK,YAAY,YAAY,CAAC;gCACzE,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;4BAChD,CAAC;yBACJ,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const rule_tester_1 = require("@typescript-eslint/rule-tester");
|
|
4
|
+
const no_label_slot_in_checkbox_1 = require("./no-label-slot-in-checkbox");
|
|
5
|
+
const ruleTester = new rule_tester_1.RuleTester();
|
|
6
|
+
// Define a reusable configuration for JSX parser options
|
|
7
|
+
const jsxParserOptions = {
|
|
8
|
+
parserOptions: {
|
|
9
|
+
ecmaFeatures: {
|
|
10
|
+
jsx: true,
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
ruleTester.run("no-label-slot-in-checkbox", no_label_slot_in_checkbox_1.rule, {
|
|
15
|
+
valid: [
|
|
16
|
+
{
|
|
17
|
+
code: "<dnn-checkbox></dnn-checkbox>",
|
|
18
|
+
languageOptions: jsxParserOptions,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
invalid: [
|
|
22
|
+
{
|
|
23
|
+
code: "<dnn-checkbox onClick={e => console.log(e)}>Something</dnn-checkbox>",
|
|
24
|
+
languageOptions: jsxParserOptions,
|
|
25
|
+
errors: [{ messageId: "noLabelSlotInCheckbox" }],
|
|
26
|
+
output: "<label>\n<dnn-checkbox onClick={e => console.log(e)} />\nSomething\n</label>",
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=no-label-slot-in-checkbox.tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-label-slot-in-checkbox.tests.js","sourceRoot":"","sources":["../../src/rules/no-label-slot-in-checkbox.tests.ts"],"names":[],"mappings":";;AAAA,gEAA4D;AAC5D,2EAAmD;AAEnD,MAAM,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAC;AAEpC,yDAAyD;AACzD,MAAM,gBAAgB,GAAG;IACrB,aAAa,EAAE;QACX,YAAY,EAAE;YACV,GAAG,EAAE,IAAI;SACZ;KACJ;CACJ,CAAC;AAEF,UAAU,CAAC,GAAG,CAAC,2BAA2B,EAAE,gCAAI,EAAE;IAC9C,KAAK,EAAE;QACH;YACI,IAAI,EAAE,+BAA+B;YACrC,eAAe,EAAE,gBAAgB;SACpC;KACJ;IACD,OAAO,EAAE;QACL;YACI,IAAI,EAAE,sEAAsE;YAC5E,eAAe,EAAE,gBAAgB;YACjC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;YAChD,MAAM,EAAE,8EAA8E;SACzF;KACJ;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
export interface TypedLintingRuleDocs {
|
|
3
|
+
description: string;
|
|
4
|
+
recommended?: boolean;
|
|
5
|
+
requiresTyepeChecking?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const createRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, TypedLintingRuleDocs>>) => ESLintUtils.RuleModule<MessageIds, Options, TypedLintingRuleDocs, ESLintUtils.RuleListener>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRule = void 0;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
;
|
|
6
|
+
exports.createRule = utils_1.ESLintUtils.RuleCreator(name => `https://github.com/DNNCommunity/dnn-elements/tree/main/packages/stencil-library/eslint-plugin/docs/${name}.md`);
|
|
7
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAMtD,CAAC;AAEW,QAAA,UAAU,GAAG,mBAAW,CAAC,WAAW,CAC7C,IAAI,CAAC,EAAE,CAAC,sGAAsG,IAAI,KAAK,CAC1H,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dnncommunity/dnn-elements",
|
|
3
|
-
"version": "0.24.4-beta.
|
|
3
|
+
"version": "0.24.4-beta.9",
|
|
4
4
|
"description": "Dnn themed custom elements.",
|
|
5
5
|
"repository": "https://github.com/dnncommunity/dnn-elements",
|
|
6
6
|
"homepage": "https://dnncommunity.github.io/dnn-elements",
|
|
@@ -16,8 +16,13 @@
|
|
|
16
16
|
"files": [
|
|
17
17
|
"dist/",
|
|
18
18
|
"loader/",
|
|
19
|
-
"eslint-plugin/"
|
|
19
|
+
"eslint-plugin/dist"
|
|
20
20
|
],
|
|
21
|
+
"exports": {
|
|
22
|
+
"./eslint": {
|
|
23
|
+
"import": "./eslint-plugin/dist/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
21
26
|
"scripts": {
|
|
22
27
|
"build": "npm run build:eslint-plugin && npm run eslint && stencil build --docs",
|
|
23
28
|
"postbuild": "license-checker-rseidelsohn --out licenses.json --json --direct --relativeLicensePath --relativeModulePath",
|
|
@@ -28,12 +33,13 @@
|
|
|
28
33
|
"test": "stencil test --spec --e2e",
|
|
29
34
|
"test.watch": "stencil test --spec --e2e --watchAll",
|
|
30
35
|
"test.eslint": "jest --config jest.eslint.config.js",
|
|
36
|
+
"test.eslint.watch": "jest --config jest.eslint.config.js --watchAll",
|
|
31
37
|
"generate": "stencil generate",
|
|
32
38
|
"eslint": "eslint",
|
|
33
39
|
"storybook": "storybook dev -p 6006",
|
|
34
40
|
"build-storybook": "echo 'Storybook build is disabled for this release.'",
|
|
35
41
|
"deploy-storybook": "gh-pages -d storybook-static --branch site",
|
|
36
|
-
"build:eslint-plugin": "tsc -p
|
|
42
|
+
"build:eslint-plugin": "tsc -p eslint-plugin/tsconfig.json"
|
|
37
43
|
},
|
|
38
44
|
"devDependencies": {
|
|
39
45
|
"@chromatic-com/storybook": "^3.1.0",
|
|
@@ -53,8 +59,10 @@
|
|
|
53
59
|
"@timkendrick/monaco-editor": "^0.0.9",
|
|
54
60
|
"@types/estree-jsx": "^1.0.5",
|
|
55
61
|
"@types/jest": "^29.5.10",
|
|
56
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
57
|
-
"@typescript-eslint/parser": "^8.
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.30.1",
|
|
63
|
+
"@typescript-eslint/parser": "^8.30.1",
|
|
64
|
+
"@typescript-eslint/rule-tester": "^8.30.1",
|
|
65
|
+
"@typescript-eslint/utils": "^8.30.1",
|
|
58
66
|
"axe-playwright": "^2.0.1",
|
|
59
67
|
"babel-loader": "^9.1.2",
|
|
60
68
|
"eslint": "^8.57.0",
|
|
@@ -72,7 +80,8 @@
|
|
|
72
80
|
"rollup-plugin-node-polyfills": "^0.2.1",
|
|
73
81
|
"storybook": "^8.3.2",
|
|
74
82
|
"ts-jest": "^29.3.2",
|
|
75
|
-
"typescript": "5.6.3"
|
|
83
|
+
"typescript": "5.6.3",
|
|
84
|
+
"typescript-eslint": "^8.30.1"
|
|
76
85
|
},
|
|
77
86
|
"dependencies": {
|
|
78
87
|
"jodit": "^4.2.27"
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { RuleTester } from "eslint";
|
|
2
|
-
import { noLabelSlotInCheckbox } from "../src/rules/no-label-slot-in-checkbox";
|
|
3
|
-
const tsParser = require.resolve("@typescript-eslint/parser");
|
|
4
|
-
const ruleTester = new RuleTester({
|
|
5
|
-
parser: tsParser,
|
|
6
|
-
parserOptions: {
|
|
7
|
-
ecmaVersion: 2022,
|
|
8
|
-
ecmaFeatures: {
|
|
9
|
-
jsx: true,
|
|
10
|
-
},
|
|
11
|
-
sourceType: "module",
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
ruleTester.run("no-label-slot-in-checkbox", noLabelSlotInCheckbox, {
|
|
15
|
-
valid: [
|
|
16
|
-
{ code: "<dnn-checkbox></dnn-checkbox>" },
|
|
17
|
-
],
|
|
18
|
-
invalid: [
|
|
19
|
-
{
|
|
20
|
-
code: "<dnn-checkbox onClick={e => console.log(e)}>Something</dnn-checkbox>",
|
|
21
|
-
errors: [{ messageId: "noLabelSlotInCheckbox" }],
|
|
22
|
-
output: "<label>\n<dnn-checkbox onClick={e => console.log(e)}></dnn-checkbox>\nSomething\n</label>",
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
});
|
|
26
|
-
//# sourceMappingURL=no-label-slot-in-checkbox.tests.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-label-slot-in-checkbox.tests.js","sourceRoot":"","sources":["../../../src/eslint-plugin/__tests__/no-label-slot-in-checkbox.tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAE9D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IAC9B,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE;QACX,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE;YACV,GAAG,EAAE,IAAI;SACZ;QACD,UAAU,EAAE,QAAQ;KACvB;CACJ,CAAC,CAAC;AAEH,UAAU,CAAC,GAAG,CAAC,2BAA2B,EAAE,qBAAqB,EAAE;IAC/D,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,+BAA+B,EAAE;KAC5C;IACD,OAAO,EAAE;QACL;YACI,IAAI,EAAE,sEAAsE;YAC5E,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;YAChD,MAAM,EAAE,2FAA2F;SACtG;KACJ;CACJ,CAAC,CAAC","sourcesContent":["import { RuleTester } from \"eslint\";\r\nimport { noLabelSlotInCheckbox } from \"../src/rules/no-label-slot-in-checkbox\";\r\nconst tsParser = require.resolve(\"@typescript-eslint/parser\");\r\n\r\nconst ruleTester = new RuleTester({\r\n parser: tsParser,\r\n parserOptions: {\r\n ecmaVersion: 2022,\r\n ecmaFeatures: {\r\n jsx: true,\r\n },\r\n sourceType: \"module\",\r\n },\r\n});\r\n\r\nruleTester.run(\"no-label-slot-in-checkbox\", noLabelSlotInCheckbox, {\r\n valid: [\r\n { code: \"<dnn-checkbox></dnn-checkbox>\" },\r\n ],\r\n invalid: [\r\n {\r\n code: \"<dnn-checkbox onClick={e => console.log(e)}>Something</dnn-checkbox>\",\r\n errors: [{ messageId: \"noLabelSlotInCheckbox\" }],\r\n output: \"<label>\\n<dnn-checkbox onClick={e => console.log(e)}></dnn-checkbox>\\nSomething\\n</label>\",\r\n }\r\n ],\r\n});"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { noLabelSlotInCheckbox } from "./rules/no-label-slot-in-checkbox";
|
|
2
|
-
export const rules = {
|
|
3
|
-
"no-label-slot-in-checkbox": noLabelSlotInCheckbox
|
|
4
|
-
};
|
|
5
|
-
const plugin = {
|
|
6
|
-
rules,
|
|
7
|
-
configs: {
|
|
8
|
-
recommended: {
|
|
9
|
-
plugins: ["@dnn-community/eslint-plugin"],
|
|
10
|
-
rules: {
|
|
11
|
-
"@dnn-community/no-label-slot-in-checkbox": "error"
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
export default plugin;
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eslint-plugin/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,2BAA2B,EAAE,qBAAqB;CACrD,CAAC;AAEF,MAAM,MAAM,GAAG;IACX,KAAK;IACL,OAAO,EAAE;QACL,WAAW,EAAE;YACT,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACzC,KAAK,EAAE;gBACH,0CAA0C,EAAE,OAAO;aACtD;SACJ;KACJ;CACJ,CAAA;AAED,eAAe,MAAM,CAAC","sourcesContent":["import { noLabelSlotInCheckbox } from \"./rules/no-label-slot-in-checkbox\";\r\n\r\nexport const rules = {\r\n \"no-label-slot-in-checkbox\": noLabelSlotInCheckbox\r\n};\r\n\r\nconst plugin = {\r\n rules,\r\n configs: {\r\n recommended: {\r\n plugins: [\"@dnn-community/eslint-plugin\"],\r\n rules: {\r\n \"@dnn-community/no-label-slot-in-checkbox\": \"error\"\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default plugin;"]}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export const noLabelSlotInCheckbox = {
|
|
2
|
-
meta: {
|
|
3
|
-
type: "problem",
|
|
4
|
-
docs: {
|
|
5
|
-
description: "Disallow label slot in checkbox",
|
|
6
|
-
recommended: true,
|
|
7
|
-
url: "https://github.com/DNNCommunity/dnn-elements/releases/tag/v0.24.0",
|
|
8
|
-
},
|
|
9
|
-
messages: {
|
|
10
|
-
noLabelSlotInCheckbox: "Label slot is not allowed in dnn-checkbox, wrap dnn-checkbox with a label instead."
|
|
11
|
-
},
|
|
12
|
-
fixable: "code",
|
|
13
|
-
},
|
|
14
|
-
create(context) {
|
|
15
|
-
return {
|
|
16
|
-
JSXOpeningElement(node) {
|
|
17
|
-
if (node.type === "JSXOpeningElement") {
|
|
18
|
-
const jsxNode = node;
|
|
19
|
-
if (jsxNode.name.type === "JSXIdentifier" && jsxNode.name.name === "dnn-checkbox") {
|
|
20
|
-
const parent = context.getAncestors().find(ancestor => ancestor.type === "JSXElement");
|
|
21
|
-
if (parent && parent.type === "JSXElement") {
|
|
22
|
-
const parentElement = parent; // Cast to access children
|
|
23
|
-
const innerContent = parentElement.children
|
|
24
|
-
.map((child) => context.sourceCode.getText(child))
|
|
25
|
-
.join("")
|
|
26
|
-
.trim();
|
|
27
|
-
if (innerContent) {
|
|
28
|
-
context.report({
|
|
29
|
-
node: node,
|
|
30
|
-
messageId: "noLabelSlotInCheckbox",
|
|
31
|
-
fix: (fixer) => {
|
|
32
|
-
const checkboxText = context.sourceCode.getText(node);
|
|
33
|
-
const fixedText = `<label>\n${checkboxText.replace(innerContent, "").trim()}</dnn-checkbox>\n${innerContent}\n</label>`;
|
|
34
|
-
return fixer.replaceText(parent, fixedText);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=no-label-slot-in-checkbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-label-slot-in-checkbox.js","sourceRoot":"","sources":["../../../../src/eslint-plugin/src/rules/no-label-slot-in-checkbox.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAoB;IAClD,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACF,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,mEAAmE;SAC3E;QACD,QAAQ,EAAE;YACN,qBAAqB,EAAE,oFAAoF;SAC9G;QACD,OAAO,EAAE,MAAM;KAClB;IACD,MAAM,CAAC,OAAyB;QAC5B,OAAO;YACH,iBAAiB,CAAC,IAAe;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,IAAyB,CAAC;oBAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAChF,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;wBACvF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BACzC,MAAM,aAAa,GAAG,MAAa,CAAC,CAAC,0BAA0B;4BAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ;iCACtC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iCACtD,IAAI,CAAC,EAAE,CAAC;iCACR,IAAI,EAAE,CAAC;4BAEZ,IAAI,YAAY,EAAE,CAAC;gCACf,OAAO,CAAC,MAAM,CAAC;oCACX,IAAI,EAAE,IAAI;oCACV,SAAS,EAAE,uBAAuB;oCAClC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;wCACX,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wCACtD,MAAM,SAAS,GAAG,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,oBAAoB,YAAY,YAAY,CAAC;wCACxH,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oCAChD,CAAC;iCACJ,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;CACJ,CAAC","sourcesContent":["import type { Rule } from 'eslint';\r\nimport type { JSXOpeningElement } from \"estree-jsx\";\r\n\r\nexport const noLabelSlotInCheckbox: Rule.RuleModule = {\r\n meta: {\r\n type: \"problem\",\r\n docs: {\r\n description: \"Disallow label slot in checkbox\",\r\n recommended: true,\r\n url: \"https://github.com/DNNCommunity/dnn-elements/releases/tag/v0.24.0\",\r\n },\r\n messages: {\r\n noLabelSlotInCheckbox: \"Label slot is not allowed in dnn-checkbox, wrap dnn-checkbox with a label instead.\"\r\n },\r\n fixable: \"code\",\r\n },\r\n create(context: Rule.RuleContext): Rule.RuleListener {\r\n return {\r\n JSXOpeningElement(node: Rule.Node) {\r\n if (node.type === \"JSXOpeningElement\") {\r\n const jsxNode = node as JSXOpeningElement;\r\n if (jsxNode.name.type === \"JSXIdentifier\" && jsxNode.name.name === \"dnn-checkbox\") {\r\n const parent = context.getAncestors().find(ancestor => ancestor.type === \"JSXElement\");\r\n if (parent && parent.type === \"JSXElement\") {\r\n const parentElement = parent as any; // Cast to access children\r\n const innerContent = parentElement.children\r\n .map((child: any) => context.sourceCode.getText(child))\r\n .join(\"\")\r\n .trim();\r\n\r\n if (innerContent) {\r\n context.report({\r\n node: node,\r\n messageId: \"noLabelSlotInCheckbox\",\r\n fix: (fixer) => {\r\n const checkboxText = context.sourceCode.getText(node);\r\n const fixedText = `<label>\\n${checkboxText.replace(innerContent, \"\").trim()}</dnn-checkbox>\\n${innerContent}\\n</label>`;\r\n return fixer.replaceText(parent, fixedText);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\r\n};\r\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const rules: {
|
|
2
|
-
"no-label-slot-in-checkbox": import("eslint").Rule.RuleModule;
|
|
3
|
-
};
|
|
4
|
-
declare const plugin: {
|
|
5
|
-
rules: {
|
|
6
|
-
"no-label-slot-in-checkbox": import("eslint").Rule.RuleModule;
|
|
7
|
-
};
|
|
8
|
-
configs: {
|
|
9
|
-
recommended: {
|
|
10
|
-
plugins: string[];
|
|
11
|
-
rules: {
|
|
12
|
-
"@dnn-community/no-label-slot-in-checkbox": string;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export default plugin;
|
package/eslint-plugin/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const rules: {
|
|
2
|
-
"no-label-slot-in-checkbox": import("eslint").Rule.RuleModule;
|
|
3
|
-
};
|
|
4
|
-
declare const plugin: {
|
|
5
|
-
rules: {
|
|
6
|
-
"no-label-slot-in-checkbox": import("eslint").Rule.RuleModule;
|
|
7
|
-
};
|
|
8
|
-
configs: {
|
|
9
|
-
recommended: {
|
|
10
|
-
plugins: string[];
|
|
11
|
-
rules: {
|
|
12
|
-
"@dnn-community/no-label-slot-in-checkbox": string;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export default plugin;
|
package/eslint-plugin/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rules = void 0;
|
|
4
|
-
const no_label_slot_in_checkbox_1 = require("./rules/no-label-slot-in-checkbox");
|
|
5
|
-
exports.rules = {
|
|
6
|
-
"no-label-slot-in-checkbox": no_label_slot_in_checkbox_1.noLabelSlotInCheckbox
|
|
7
|
-
};
|
|
8
|
-
const plugin = {
|
|
9
|
-
rules: exports.rules,
|
|
10
|
-
configs: {
|
|
11
|
-
recommended: {
|
|
12
|
-
plugins: ["@dnn-community/eslint-plugin"],
|
|
13
|
-
rules: {
|
|
14
|
-
"@dnn-community/no-label-slot-in-checkbox": "error"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
exports.default = plugin;
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/eslint-plugin/src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA0E;AAE7D,QAAA,KAAK,GAAG;IACjB,2BAA2B,EAAE,iDAAqB;CACrD,CAAC;AAEF,MAAM,MAAM,GAAG;IACX,KAAK,EAAL,aAAK;IACL,OAAO,EAAE;QACL,WAAW,EAAE;YACT,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACzC,KAAK,EAAE;gBACH,0CAA0C,EAAE,OAAO;aACtD;SACJ;KACJ;CACJ,CAAA;AAED,kBAAe,MAAM,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.noLabelSlotInCheckbox = void 0;
|
|
4
|
-
exports.noLabelSlotInCheckbox = {
|
|
5
|
-
meta: {
|
|
6
|
-
type: "problem",
|
|
7
|
-
docs: {
|
|
8
|
-
description: "Disallow label slot in checkbox",
|
|
9
|
-
recommended: true,
|
|
10
|
-
url: "https://github.com/DNNCommunity/dnn-elements/releases/tag/v0.24.0",
|
|
11
|
-
},
|
|
12
|
-
messages: {
|
|
13
|
-
noLabelSlotInCheckbox: "Label slot is not allowed in dnn-checkbox, wrap dnn-checkbox with a label instead."
|
|
14
|
-
},
|
|
15
|
-
fixable: "code",
|
|
16
|
-
},
|
|
17
|
-
create(context) {
|
|
18
|
-
return {
|
|
19
|
-
JSXOpeningElement(node) {
|
|
20
|
-
if (node.type === "JSXOpeningElement") {
|
|
21
|
-
const jsxNode = node;
|
|
22
|
-
if (jsxNode.name.type === "JSXIdentifier" && jsxNode.name.name === "dnn-checkbox") {
|
|
23
|
-
const parent = context.getAncestors().find(ancestor => ancestor.type === "JSXElement");
|
|
24
|
-
if (parent && parent.type === "JSXElement") {
|
|
25
|
-
const parentElement = parent; // Cast to access children
|
|
26
|
-
const innerContent = parentElement.children
|
|
27
|
-
.map((child) => context.sourceCode.getText(child))
|
|
28
|
-
.join("")
|
|
29
|
-
.trim();
|
|
30
|
-
if (innerContent) {
|
|
31
|
-
context.report({
|
|
32
|
-
node: node,
|
|
33
|
-
messageId: "noLabelSlotInCheckbox",
|
|
34
|
-
fix: (fixer) => {
|
|
35
|
-
const checkboxText = context.sourceCode.getText(node);
|
|
36
|
-
const fixedText = `<label>\n${checkboxText.replace(innerContent, "").trim()}</dnn-checkbox>\n${innerContent}\n</label>`;
|
|
37
|
-
return fixer.replaceText(parent, fixedText);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=no-label-slot-in-checkbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-label-slot-in-checkbox.js","sourceRoot":"","sources":["../../src/eslint-plugin/src/rules/no-label-slot-in-checkbox.ts"],"names":[],"mappings":";;;AAGa,QAAA,qBAAqB,GAAoB;IAClD,IAAI,EAAE;QACF,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACF,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,mEAAmE;SAC3E;QACD,QAAQ,EAAE;YACN,qBAAqB,EAAE,oFAAoF;SAC9G;QACD,OAAO,EAAE,MAAM;KAClB;IACD,MAAM,CAAC,OAAyB;QAC5B,OAAO;YACH,iBAAiB,CAAC,IAAe;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,IAAyB,CAAC;oBAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAChF,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;wBACvF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BACzC,MAAM,aAAa,GAAG,MAAa,CAAC,CAAC,0BAA0B;4BAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ;iCACtC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iCACtD,IAAI,CAAC,EAAE,CAAC;iCACR,IAAI,EAAE,CAAC;4BAEZ,IAAI,YAAY,EAAE,CAAC;gCACf,OAAO,CAAC,MAAM,CAAC;oCACX,IAAI,EAAE,IAAI;oCACV,SAAS,EAAE,uBAAuB;oCAClC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;wCACX,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wCACtD,MAAM,SAAS,GAAG,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,oBAAoB,YAAY,YAAY,CAAC;wCACxH,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oCAChD,CAAC;iCACJ,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
File without changes
|