@sfxcode/formkit-primevue 3.3.8 → 4.1.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.
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @deprecated This function is deprecated. Use primeRepeater instead. It will be removed in a future version.
3
+ */
1
4
  export declare function useFormKitRepeater(): {
2
5
  addInsertButton: (label?: string, innerClass?: string, outerClass?: string, buttonClass?: string, iconClass?: string) => {
3
6
  $el: string;
@@ -55,7 +55,7 @@ function useFormKitSchema() {
55
55
  };
56
56
  const addElementsInOuterDiv = (children = [], innerClass = "", outerClass = "", label = "", help = "", render = true) => {
57
57
  const inner = addElement("div", children, {
58
- class: `formkit-inner ${innerClass}`,
58
+ class: innerClass,
59
59
  style: "position: relative;"
60
60
  });
61
61
  const labelDiv = addElement("label", [label], {
@@ -68,7 +68,7 @@ function useFormKitSchema() {
68
68
  class: "formkit-help"
69
69
  });
70
70
  return addElement("div", [wrapperDiv, helpDiv], {
71
- class: `formkit-outer ${outerClass}`,
71
+ class: outerClass,
72
72
  style: "position: relative;"
73
73
  }, render);
74
74
  };
@@ -48,11 +48,11 @@ export function useFormKitSchema() {
48
48
  };
49
49
  };
50
50
  const addElementsInOuterDiv = (children = [], innerClass = "", outerClass = "", label = "", help = "", render = true) => {
51
- const inner = addElement("div", children, { class: `formkit-inner ${innerClass}`, style: "position: relative;" });
51
+ const inner = addElement("div", children, { class: innerClass, style: "position: relative;" });
52
52
  const labelDiv = addElement("label", [label], { class: "formkit-label" });
53
53
  const wrapperDiv = addElement("div", [labelDiv, inner], { class: "formkit-wrapper" });
54
54
  const helpDiv = addElement("div", [help], { class: "formkit-help" });
55
- return addElement("div", [wrapperDiv, helpDiv], { class: `formkit-outer ${outerClass}`, style: "position: relative;" }, render);
55
+ return addElement("div", [wrapperDiv, helpDiv], { class: outerClass, style: "position: relative;" }, render);
56
56
  };
57
57
  return { addComponent, addElement, addGroup, addList, addListGroup, addElementsInOuterDiv };
58
58
  }
@@ -21,6 +21,7 @@ export declare const primeInputs: {
21
21
  primeCascadeSelect: import("@formkit/core").FormKitTypeDefinition;
22
22
  primeTreeSelect: import("@formkit/core").FormKitTypeDefinition;
23
23
  primeInputOtp: import("@formkit/core").FormKitTypeDefinition;
24
+ primeRepeater: import("@formkit/core").FormKitTypeDefinition;
24
25
  };
25
26
  export declare const primeOutputs: {
26
27
  primeOutputText: import("@formkit/core").FormKitTypeDefinition;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.primeOutputs = exports.primeInputs = void 0;
7
7
  var _input = require("./input");
8
8
  var _output = require("./output");
9
+ var _repeater = require("./repeater.ts");
9
10
  const primeInputs = exports.primeInputs = {
10
11
  primeAutoComplete: _input.primeAutoCompleteDefinition,
11
12
  primeInputText: _input.primeInputTextDefinition,
@@ -28,7 +29,8 @@ const primeInputs = exports.primeInputs = {
28
29
  primeSelectButton: _input.primeSelectButtonDefinition,
29
30
  primeCascadeSelect: _input.primeCascadeSelectDefinition,
30
31
  primeTreeSelect: _input.primeTreeSelectDefinition,
31
- primeInputOtp: _input.primeInputOtpDefinition
32
+ primeInputOtp: _input.primeInputOtpDefinition,
33
+ primeRepeater: _repeater.primeRepeaterDefinition
32
34
  };
33
35
  const primeOutputs = exports.primeOutputs = {
34
36
  primeOutputText: _output.primeOutputTextDefinition,
@@ -32,6 +32,7 @@ import {
32
32
  primeOutputReferenceDefinition,
33
33
  primeOutputTextDefinition
34
34
  } from "./output.mjs";
35
+ import { primeRepeaterDefinition } from "./repeater.ts";
35
36
  export const primeInputs = {
36
37
  primeAutoComplete: primeAutoCompleteDefinition,
37
38
  primeInputText: primeInputTextDefinition,
@@ -54,7 +55,8 @@ export const primeInputs = {
54
55
  primeSelectButton: primeSelectButtonDefinition,
55
56
  primeCascadeSelect: primeCascadeSelectDefinition,
56
57
  primeTreeSelect: primeTreeSelectDefinition,
57
- primeInputOtp: primeInputOtpDefinition
58
+ primeInputOtp: primeInputOtpDefinition,
59
+ primeRepeater: primeRepeaterDefinition
58
60
  };
59
61
  export const primeOutputs = {
60
62
  primeOutputText: primeOutputTextDefinition,
@@ -44,4 +44,5 @@ export declare const primeInputs: {
44
44
  primeCascadeSelect: FormKitTypeDefinition;
45
45
  primeTreeSelect: FormKitTypeDefinition;
46
46
  primeInputOtp: FormKitTypeDefinition;
47
+ primeRepeater: FormKitTypeDefinition;
47
48
  };
@@ -27,6 +27,7 @@ var _PrimeTextarea = _interopRequireDefault(require("../components/PrimeTextarea
27
27
  var _PrimeToggleButton = _interopRequireDefault(require("../components/PrimeToggleButton.vue"));
28
28
  var _PrimeToggleSwitch = _interopRequireDefault(require("../components/PrimeToggleSwitch.vue"));
29
29
  var _PrimeTreeSelect = _interopRequireDefault(require("../components/PrimeTreeSelect.vue"));
30
+ var _repeater = require("./repeater.ts");
30
31
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
32
  const primeAutoCompleteDefinition = exports.primeAutoCompleteDefinition = (0, _vue.createInput)(_PrimeAutoComplete.default, {
32
33
  props: ["pt", "ptOptions", "unstyled", "Select", "multiple", "typeahead", "optionLabel", "options", "size", "minLength", "placeholder", "fluid", "separators"],
@@ -138,5 +139,6 @@ const primeInputs = exports.primeInputs = {
138
139
  primeSelectButton: primeSelectButtonDefinition,
139
140
  primeCascadeSelect: primeCascadeSelectDefinition,
140
141
  primeTreeSelect: primeTreeSelectDefinition,
141
- primeInputOtp: primeInputOtpDefinition
142
+ primeInputOtp: primeInputOtpDefinition,
143
+ primeRepeater: _repeater.primeRepeaterDefinition
142
144
  };
@@ -21,6 +21,7 @@ import PrimeTextarea from "../components/PrimeTextarea.vue";
21
21
  import PrimeToggleButton from "../components/PrimeToggleButton.vue";
22
22
  import PrimeToggleSwitch from "../components/PrimeToggleSwitch.vue";
23
23
  import PrimeTreeSelect from "../components/PrimeTreeSelect.vue";
24
+ import { primeRepeaterDefinition } from "./repeater.ts";
24
25
  export const primeAutoCompleteDefinition = createInput(PrimeAutoComplete, {
25
26
  props: ["pt", "ptOptions", "unstyled", "Select", "multiple", "typeahead", "optionLabel", "options", "size", "minLength", "placeholder", "fluid", "separators"],
26
27
  family: "PrimeInput"
@@ -131,5 +132,6 @@ export const primeInputs = {
131
132
  primeSelectButton: primeSelectButtonDefinition,
132
133
  primeCascadeSelect: primeCascadeSelectDefinition,
133
134
  primeTreeSelect: primeTreeSelectDefinition,
134
- primeInputOtp: primeInputOtpDefinition
135
+ primeInputOtp: primeInputOtpDefinition,
136
+ primeRepeater: primeRepeaterDefinition
135
137
  };
@@ -0,0 +1,2 @@
1
+ import type { FormKitTypeDefinition } from '@formkit/core';
2
+ export declare const primeRepeaterDefinition: FormKitTypeDefinition;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.primeRepeaterDefinition = void 0;
7
+ var _vue = require("@formkit/vue");
8
+ var _useFormKitSchema = require("../composables/useFormKitSchema");
9
+ const {
10
+ addList,
11
+ addElement,
12
+ addListGroup,
13
+ addComponent,
14
+ addElementsInOuterDiv
15
+ } = (0, _useFormKitSchema.useFormKitSchema)();
16
+ function addActionButtons(innerClass = "", outerClass = "", label = "Actions", help = "", render = "true") {
17
+ const addButtonComponent = (onClick = "", label2 = "", icon = "", severity = "", render2 = "true", disabled = "false", styleClass = "p-button-sm") => {
18
+ return addComponent("Button", {
19
+ onClick,
20
+ label: label2,
21
+ icon,
22
+ class: styleClass,
23
+ severity,
24
+ disabled
25
+ }, render2);
26
+ };
27
+ return addElementsInOuterDiv([addButtonComponent("$removeNode($node.parent, $index)", "", "pi pi-times", "danger", "true", "$false"), addButtonComponent("$cloneNode($node.parent, $index)", "", "pi pi-clone", "", "$displayCloneButton", "$false"), addButtonComponent("$moveNodeDown($node.parent, $index)", "", "pi pi-arrow-down", "secondary", "true", "$index === $node.parent.value.length -1"), addButtonComponent("$moveNodeUp($node.parent, $index)", "", "pi pi-arrow-up", "secondary", "true", "$index === 0")], innerClass, outerClass, label, help, render);
28
+ }
29
+ const primeRepeaterDefinition = exports.primeRepeaterDefinition = (0, _vue.createInput)([addElement("div", [addList("$listName", [addComponent("Button", {
30
+ onClick: "$addNode($node)",
31
+ label: "$addButtonLabel",
32
+ size: "small",
33
+ icon: "pi pi-plus",
34
+ class: "$addButtonClass"
35
+ }, "$node.children.length == 0 || $alwaysDisplayAddButton"), addListGroup([addElement("div", [{
36
+ children: "$slots.default"
37
+ }, addActionButtons("$buttonsInnerClass", "$buttonsOuterClass", "$buttonsLabel")], {
38
+ class: "$itemClass"
39
+ })])], true, "true")], {
40
+ class: "$listClass"
41
+ })], {
42
+ props: ["buttonsOuterClass", "buttonsInnerClass", "buttonsLabel", "addButtonLabel", "addButtonClass", "newItem", "itemClass", "listClass", "displayCloneButton", "alwaysDisplayAddButton"],
43
+ features: [addRepeaterHandler]
44
+ });
45
+ function addRepeaterHandler(node) {
46
+ const swapElements = (array, index1, index2) => {
47
+ const newArray = [...array];
48
+ const temp = newArray[index1];
49
+ newArray[index1] = newArray[index2];
50
+ newArray[index2] = temp;
51
+ return newArray;
52
+ };
53
+ node.on("created", () => {
54
+ if (node.context) {
55
+ const newItem = node.context.newItem || {};
56
+ node.context.listName = node.name;
57
+ node.context.removeNode = (parentNode, index) => () => {
58
+ if (parentNode && Array.isArray(parentNode._value)) {
59
+ parentNode.input(parentNode._value.filter((_, i) => i !== index), false);
60
+ }
61
+ };
62
+ node.context.addNode = parentNode => () => {
63
+ if (parentNode && Array.isArray(parentNode._value)) {
64
+ const newArray = [...parentNode.value, newItem];
65
+ parentNode.input(newArray, false);
66
+ }
67
+ };
68
+ node.context.cloneNode = (parentNode, index) => () => {
69
+ if (parentNode && Array.isArray(parentNode._value)) {
70
+ const item = parentNode.value[index];
71
+ const newArray = [...parentNode.value.slice(0, index), {
72
+ ...item
73
+ }, ...parentNode.value.slice(index)];
74
+ parentNode.input([...newArray], false);
75
+ }
76
+ };
77
+ node.context.moveNodeUp = (parentNode, index) => () => {
78
+ if (parentNode && Array.isArray(parentNode._value)) {
79
+ const array = [...parentNode.value];
80
+ if (index > 0) parentNode.input(swapElements(array, index - 1, index), false);
81
+ }
82
+ };
83
+ node.context.moveNodeDown = (parentNode, index) => () => {
84
+ if (parentNode && Array.isArray(parentNode._value)) {
85
+ const array = [...parentNode.value];
86
+ if (index < array.length - 1) parentNode.input(swapElements(array, index, index + 1), false);
87
+ }
88
+ };
89
+ }
90
+ });
91
+ }
@@ -0,0 +1,82 @@
1
+ import { createInput } from "@formkit/vue";
2
+ import { useFormKitSchema } from "../composables/useFormKitSchema.mjs";
3
+ const { addList, addElement, addListGroup, addComponent, addElementsInOuterDiv } = useFormKitSchema();
4
+ function addActionButtons(innerClass = "", outerClass = "", label = "Actions", help = "", render = "true") {
5
+ const addButtonComponent = (onClick = "", label2 = "", icon = "", severity = "", render2 = "true", disabled = "false", styleClass = "p-button-sm") => {
6
+ return addComponent("Button", { onClick, label: label2, icon, class: styleClass, severity, disabled }, render2);
7
+ };
8
+ return addElementsInOuterDiv([
9
+ addButtonComponent("$removeNode($node.parent, $index)", "", "pi pi-times", "danger", "true", "$false"),
10
+ addButtonComponent("$cloneNode($node.parent, $index)", "", "pi pi-clone", "", "$displayCloneButton", "$false"),
11
+ addButtonComponent("$moveNodeDown($node.parent, $index)", "", "pi pi-arrow-down", "secondary", "true", "$index === $node.parent.value.length -1"),
12
+ addButtonComponent("$moveNodeUp($node.parent, $index)", "", "pi pi-arrow-up", "secondary", "true", "$index === 0")
13
+ ], innerClass, outerClass, label, help, render);
14
+ }
15
+ export const primeRepeaterDefinition = createInput(
16
+ [
17
+ addElement("div", [
18
+ addList("$listName", [
19
+ addComponent("Button", { onClick: "$addNode($node)", label: "$addButtonLabel", size: "small", icon: "pi pi-plus", class: "$addButtonClass" }, "$node.children.length == 0 || $alwaysDisplayAddButton"),
20
+ addListGroup([
21
+ addElement("div", [
22
+ {
23
+ children: "$slots.default"
24
+ },
25
+ addActionButtons("$buttonsInnerClass", "$buttonsOuterClass", "$buttonsLabel")
26
+ ], { class: "$itemClass" })
27
+ ])
28
+ ], true, "true")
29
+ ], { class: "$listClass" })
30
+ ],
31
+ {
32
+ props: ["buttonsOuterClass", "buttonsInnerClass", "buttonsLabel", "addButtonLabel", "addButtonClass", "newItem", "itemClass", "listClass", "displayCloneButton", "alwaysDisplayAddButton"],
33
+ features: [addRepeaterHandler]
34
+ }
35
+ );
36
+ function addRepeaterHandler(node) {
37
+ const swapElements = (array, index1, index2) => {
38
+ const newArray = [...array];
39
+ const temp = newArray[index1];
40
+ newArray[index1] = newArray[index2];
41
+ newArray[index2] = temp;
42
+ return newArray;
43
+ };
44
+ node.on("created", () => {
45
+ if (node.context) {
46
+ const newItem = node.context.newItem || {};
47
+ node.context.listName = node.name;
48
+ node.context.removeNode = (parentNode, index) => () => {
49
+ if (parentNode && Array.isArray(parentNode._value)) {
50
+ parentNode.input(parentNode._value.filter((_, i) => i !== index), false);
51
+ }
52
+ };
53
+ node.context.addNode = (parentNode) => () => {
54
+ if (parentNode && Array.isArray(parentNode._value)) {
55
+ const newArray = [...parentNode.value, newItem];
56
+ parentNode.input(newArray, false);
57
+ }
58
+ };
59
+ node.context.cloneNode = (parentNode, index) => () => {
60
+ if (parentNode && Array.isArray(parentNode._value)) {
61
+ const item = parentNode.value[index];
62
+ const newArray = [...parentNode.value.slice(0, index), { ...item }, ...parentNode.value.slice(index)];
63
+ parentNode.input([...newArray], false);
64
+ }
65
+ };
66
+ node.context.moveNodeUp = (parentNode, index) => () => {
67
+ if (parentNode && Array.isArray(parentNode._value)) {
68
+ const array = [...parentNode.value];
69
+ if (index > 0)
70
+ parentNode.input(swapElements(array, index - 1, index), false);
71
+ }
72
+ };
73
+ node.context.moveNodeDown = (parentNode, index) => () => {
74
+ if (parentNode && Array.isArray(parentNode._value)) {
75
+ const array = [...parentNode.value];
76
+ if (index < array.length - 1)
77
+ parentNode.input(swapElements(array, index, index + 1), false);
78
+ }
79
+ };
80
+ }
81
+ });
82
+ }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@sfxcode/formkit-primevue",
3
3
  "type": "module",
4
- "version": "3.3.8",
5
- "packageManager": "pnpm@10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017",
4
+ "version": "4.1.0",
5
+ "packageManager": "pnpm@11.0.9+sha512.34ce82e6780233cf9cad8685029a8f81d2e06196c5a9bad98879f7424940c6817c4e4524fb7d38b8553ceed48b9758b8ebaf1abd3600c232c4c8cf7366086f38",
6
6
  "author": {
7
7
  "name": "Tom",
8
8
  "email": "tom@sfxcode.com"
@@ -75,7 +75,7 @@
75
75
  "dev": "vite serve dev",
76
76
  "dev:build": "vite build dev",
77
77
  "dev:preview": "vite preview dev",
78
- "release": "npm run lint && npm run build && changelogen --patch --release && npm publish --access public && git push --follow-tags",
78
+ "release": "npm run lint && npm run build && changelogen --minor --release && npm publish --access public && git push --follow-tags",
79
79
  "lint": "eslint .",
80
80
  "lint:fix": "eslint . --fix",
81
81
  "prepublishOnly": "pnpm build",
@@ -90,59 +90,58 @@
90
90
  "vue": "^3.4.0"
91
91
  },
92
92
  "dependencies": {
93
- "@formkit/addons": "^1.7.2",
94
- "@formkit/core": "^1.7.2",
95
- "@formkit/i18n": "^1.7.2",
96
- "@formkit/inputs": "^1.7.2",
97
- "@formkit/vue": "^1.7.2",
98
- "@intlify/core": "^11.3.0",
93
+ "@formkit/addons": "^2.0.0",
94
+ "@formkit/core": "^2.0.0",
95
+ "@formkit/i18n": "^2.0.0",
96
+ "@formkit/inputs": "^2.0.0",
97
+ "@formkit/vue": "^2.0.0",
98
+ "@intlify/core": "^11.4.2",
99
99
  "primeicons": "^7.0.0",
100
- "primevue": "^4.5.4",
101
- "vue-i18n": "^11.3.0"
100
+ "primevue": "^4.5.5",
101
+ "vue-i18n": "^11.4.2"
102
102
  },
103
103
  "devDependencies": {
104
- "@antfu/eslint-config": "^7.7.2",
105
- "@formkit/core": "^1.6.9",
104
+ "@antfu/eslint-config": "^8.2.0",
106
105
  "@formkit/drag-and-drop": "^0.5.3",
107
106
  "@primeuix/themes": "^2.0.3",
108
- "@types/node": "^25.5.0",
109
- "@unocss/preset-icons": "66.6.6",
110
- "@unocss/preset-uno": "66.6.6",
111
- "@vitejs/plugin-vue": "^6.0.5",
112
- "@vitest/coverage-v8": "^4.1.0",
113
- "@vitest/ui": "^4.1.0",
114
- "@vue/compiler-sfc": "^3.5.30",
115
- "@vue/server-renderer": "^3.5.30",
116
- "@vue/test-utils": "^2.4.6",
117
- "@vue/tsconfig": "^0.9.0",
118
- "@vueuse/core": "^14.2.1",
107
+ "@types/node": "^25.6.2",
108
+ "@unocss/preset-icons": "66.6.8",
109
+ "@unocss/preset-uno": "66.6.8",
110
+ "@vitejs/plugin-vue": "^6.0.6",
111
+ "@vitest/coverage-v8": "^4.1.5",
112
+ "@vitest/ui": "^4.1.5",
113
+ "@vue/compiler-sfc": "^3.5.34",
114
+ "@vue/server-renderer": "^3.5.34",
115
+ "@vue/test-utils": "^2.4.10",
116
+ "@vue/tsconfig": "^0.9.1",
117
+ "@vueuse/core": "^14.3.0",
119
118
  "@vueuse/head": "^2.0.0",
120
119
  "changelogen": "^0.6.2",
121
120
  "chart.js": "^4.5.1",
122
121
  "consola": "^3.4.2",
123
122
  "cookie": "^1.1.1",
124
- "esbuild": "^0.27.4",
125
- "eslint": "^10.0.3",
126
- "happy-dom": "^20.8.4",
123
+ "esbuild": "^0.28.0",
124
+ "eslint": "^10.3.0",
125
+ "happy-dom": "^20.9.0",
127
126
  "json-editor-vue": "^0.18.1",
128
127
  "mkdist": "^2.4.1",
129
- "sass": "^1.98.0",
128
+ "sass": "^1.99.0",
130
129
  "tslib": "^2.8.1",
131
- "typescript": "^5.9.3",
130
+ "typescript": "^6.0.3",
132
131
  "unbuild": "^3.6.1",
133
- "unocss": "66.6.6",
132
+ "unocss": "66.6.8",
134
133
  "unplugin-auto-import": "^21.0.0",
135
- "unplugin-vue-components": "^31.0.0",
136
- "vite": "^8.0.0",
134
+ "unplugin-vue-components": "^32.0.0",
135
+ "vite": "^8.0.11",
137
136
  "vite-plugin-dts": "^4.5.4",
138
137
  "vite-plugin-eslint": "^1.8.1",
139
138
  "vite-plugin-pages": "^0.33.3",
140
139
  "vite-ssg": "^28.3.0",
141
140
  "vitepress": "2.0.0-alpha.16",
142
- "vitest": "^4.1.0",
143
- "vue": "^3.5.30",
141
+ "vitest": "^4.1.5",
142
+ "vue": "^3.5.34",
144
143
  "vue-demi": "^0.14.10",
145
- "vue-router": "^5.0.3",
146
- "vue-tsc": "^3.2.5"
144
+ "vue-router": "^5.0.6",
145
+ "vue-tsc": "^3.2.8"
147
146
  }
148
147
  }