form-payload 0.0.8 → 1.0.3

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.
Files changed (129) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +68 -56
  3. package/readme.md +62 -96
  4. package/src/index.d.ts +5 -0
  5. package/src/index.d.ts.map +1 -0
  6. package/src/index.js +4 -0
  7. package/src/libs/constants/banned-control-types.constant.d.ts +2 -0
  8. package/src/libs/constants/banned-control-types.constant.d.ts.map +1 -0
  9. package/src/libs/constants/banned-control-types.constant.js +10 -0
  10. package/src/libs/constants/constants.d.ts +2 -0
  11. package/src/libs/constants/constants.d.ts.map +1 -0
  12. package/src/libs/constants/constants.js +1 -0
  13. package/src/libs/enums/control-type.enum.d.ts +30 -0
  14. package/src/libs/enums/control-type.enum.d.ts.map +1 -0
  15. package/src/libs/enums/control-type.enum.js +40 -0
  16. package/src/libs/enums/enums.d.ts +2 -0
  17. package/src/libs/enums/enums.d.ts.map +1 -0
  18. package/src/libs/enums/enums.js +1 -0
  19. package/src/libs/exceptions/exceptions.d.ts +2 -0
  20. package/src/libs/exceptions/exceptions.d.ts.map +1 -0
  21. package/src/libs/exceptions/exceptions.js +1 -0
  22. package/src/libs/exceptions/form-payload-error.exception.d.ts +11 -0
  23. package/src/libs/exceptions/form-payload-error.exception.d.ts.map +1 -0
  24. package/src/libs/exceptions/form-payload-error.exception.js +14 -0
  25. package/src/libs/maps/element-name-to-element-instance.map.d.ts +11 -0
  26. package/src/libs/maps/element-name-to-element-instance.map.d.ts.map +1 -0
  27. package/src/libs/maps/element-name-to-element-instance.map.js +6 -0
  28. package/src/libs/maps/maps.d.ts +2 -0
  29. package/src/libs/maps/maps.d.ts.map +1 -0
  30. package/src/libs/maps/maps.js +1 -0
  31. package/src/libs/types/html-form-control-element.type.d.ts +4 -0
  32. package/src/libs/types/html-form-control-element.type.d.ts.map +1 -0
  33. package/src/libs/types/html-form-control-element.type.js +9 -0
  34. package/src/libs/types/html-form-non-operational-control-element.type.d.ts +2 -0
  35. package/src/libs/types/html-form-non-operational-control-element.type.d.ts.map +1 -0
  36. package/src/libs/types/html-form-non-operational-control-element.type.js +3 -0
  37. package/src/libs/types/html-form-operational-control-element.type.d.ts +2 -0
  38. package/src/libs/types/html-form-operational-control-element.type.d.ts.map +1 -0
  39. package/src/libs/types/html-form-operational-control-element.type.js +9 -0
  40. package/src/libs/types/types.d.ts +4 -0
  41. package/src/libs/types/types.d.ts.map +1 -0
  42. package/src/libs/types/types.js +5 -0
  43. package/src/packages/get-form-control-payload/get-form-control-payload.d.ts +17 -0
  44. package/src/packages/get-form-control-payload/get-form-control-payload.d.ts.map +1 -0
  45. package/src/packages/get-form-control-payload/get-form-control-payload.js +120 -0
  46. package/src/packages/get-form-control-payload/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.d.ts +10 -0
  47. package/src/packages/get-form-control-payload/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.d.ts.map +1 -0
  48. package/src/packages/get-form-control-payload/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.js +24 -0
  49. package/src/packages/get-form-control-payload/helpers/get-allowed-elements/get-allowed-elements.helper.d.ts +8 -0
  50. package/src/packages/get-form-control-payload/helpers/get-allowed-elements/get-allowed-elements.helper.d.ts.map +1 -0
  51. package/src/packages/get-form-control-payload/helpers/get-allowed-elements/get-allowed-elements.helper.js +61 -0
  52. package/src/packages/get-form-control-payload/helpers/get-checkbox-value/get-checkbox-value.helper.d.ts +6 -0
  53. package/src/packages/get-form-control-payload/helpers/get-checkbox-value/get-checkbox-value.helper.d.ts.map +1 -0
  54. package/src/packages/get-form-control-payload/helpers/get-checkbox-value/get-checkbox-value.helper.js +9 -0
  55. package/src/packages/get-form-control-payload/helpers/get-control-value/get-control-value.helper.d.ts +9 -0
  56. package/src/packages/get-form-control-payload/helpers/get-control-value/get-control-value.helper.d.ts.map +1 -0
  57. package/src/packages/get-form-control-payload/helpers/get-control-value/get-control-value.helper.js +12 -0
  58. package/src/packages/get-form-control-payload/helpers/get-input-date-value/get-input-date-value.helper.d.ts +6 -0
  59. package/src/packages/get-form-control-payload/helpers/get-input-date-value/get-input-date-value.helper.d.ts.map +1 -0
  60. package/src/packages/get-form-control-payload/helpers/get-input-date-value/get-input-date-value.helper.js +9 -0
  61. package/src/packages/get-form-control-payload/helpers/get-input-file-value/get-input-file-value.helper.d.ts +6 -0
  62. package/src/packages/get-form-control-payload/helpers/get-input-file-value/get-input-file-value.helper.d.ts.map +1 -0
  63. package/src/packages/get-form-control-payload/helpers/get-input-file-value/get-input-file-value.helper.js +16 -0
  64. package/src/packages/get-form-control-payload/helpers/get-input-numeric-value/get-input-numeric-value.helper.d.ts +6 -0
  65. package/src/packages/get-form-control-payload/helpers/get-input-numeric-value/get-input-numeric-value.helper.d.ts.map +1 -0
  66. package/src/packages/get-form-control-payload/helpers/get-input-numeric-value/get-input-numeric-value.helper.js +9 -0
  67. package/src/packages/get-form-control-payload/helpers/get-multi-select-values/get-multi-select-values.helper.d.ts +6 -0
  68. package/src/packages/get-form-control-payload/helpers/get-multi-select-values/get-multi-select-values.helper.d.ts.map +1 -0
  69. package/src/packages/get-form-control-payload/helpers/get-multi-select-values/get-multi-select-values.helper.js +9 -0
  70. package/src/packages/get-form-control-payload/helpers/helpers.d.ts +9 -0
  71. package/src/packages/get-form-control-payload/helpers/helpers.d.ts.map +1 -0
  72. package/src/packages/get-form-control-payload/helpers/helpers.js +8 -0
  73. package/src/packages/get-form-payload/get-form-payload.d.ts +9 -0
  74. package/src/packages/get-form-payload/get-form-payload.d.ts.map +1 -0
  75. package/src/packages/get-form-payload/get-form-payload.js +18 -0
  76. package/common/constants/banned-control-types.constant.d.ts +0 -2
  77. package/common/constants/banned-control-types.constant.js +0 -11
  78. package/common/constants/index.d.ts +0 -1
  79. package/common/constants/index.js +0 -13
  80. package/common/enums/dom/element-name.enum.d.ts +0 -9
  81. package/common/enums/dom/element-name.enum.js +0 -12
  82. package/common/enums/dom/index.d.ts +0 -1
  83. package/common/enums/dom/index.js +0 -13
  84. package/common/enums/exception/custom-exception-name.enum.d.ts +0 -4
  85. package/common/enums/exception/custom-exception-name.enum.js +0 -7
  86. package/common/enums/exception/error-message.enum.d.ts +0 -5
  87. package/common/enums/exception/error-message.enum.js +0 -8
  88. package/common/enums/exception/index.d.ts +0 -2
  89. package/common/enums/exception/index.js +0 -14
  90. package/common/enums/form/control-type.enum.d.ts +0 -30
  91. package/common/enums/form/control-type.enum.js +0 -33
  92. package/common/enums/form/index.d.ts +0 -1
  93. package/common/enums/form/index.js +0 -13
  94. package/common/enums/index.d.ts +0 -3
  95. package/common/enums/index.js +0 -15
  96. package/common/types/dom/child-element.type.d.ts +0 -2
  97. package/common/types/dom/child-element.type.js +0 -2
  98. package/common/types/dom/control-collection.type.d.ts +0 -2
  99. package/common/types/dom/control-collection.type.js +0 -2
  100. package/common/types/dom/control-element.type.d.ts +0 -2
  101. package/common/types/dom/control-element.type.js +0 -2
  102. package/common/types/dom/index.d.ts +0 -3
  103. package/common/types/dom/index.js +0 -15
  104. package/common/types/index.d.ts +0 -2
  105. package/common/types/index.js +0 -14
  106. package/common/types/object/custom-object.type.d.ts +0 -2
  107. package/common/types/object/custom-object.type.js +0 -2
  108. package/common/types/object/index.d.ts +0 -1
  109. package/common/types/object/index.js +0 -13
  110. package/exceptions/form-payload-error/form-payload-error.exception.d.ts +0 -7
  111. package/exceptions/form-payload-error/form-payload-error.exception.js +0 -12
  112. package/exceptions/index.d.ts +0 -1
  113. package/exceptions/index.js +0 -13
  114. package/helpers/get-control-value/get-control-value.helper.d.ts +0 -4
  115. package/helpers/get-control-value/get-control-value.helper.js +0 -70
  116. package/helpers/get-control-value/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.d.ts +0 -3
  117. package/helpers/get-control-value/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.js +0 -10
  118. package/helpers/get-control-value/helpers/get-allowed-elements/get-allowed-elements.helper.d.ts +0 -3
  119. package/helpers/get-control-value/helpers/get-allowed-elements/get-allowed-elements.helper.js +0 -23
  120. package/helpers/get-control-value/helpers/get-input-file-value/get-input-file-value.helper.d.ts +0 -2
  121. package/helpers/get-control-value/helpers/get-input-file-value/get-input-file-value.helper.js +0 -11
  122. package/helpers/get-control-value/helpers/get-multi-select-values/get-multi-select-values.helper.d.ts +0 -2
  123. package/helpers/get-control-value/helpers/get-multi-select-values/get-multi-select-values.helper.js +0 -7
  124. package/helpers/get-control-value/helpers/index.d.ts +0 -4
  125. package/helpers/get-control-value/helpers/index.js +0 -16
  126. package/helpers/index.d.ts +0 -1
  127. package/helpers/index.js +0 -13
  128. package/index.d.ts +0 -7
  129. package/index.js +0 -15
@@ -0,0 +1,4 @@
1
+ export type HTMLFormNonOperationalControlElement = import('./html-form-non-operational-control-element.type.js').HTMLFormNonOperationalControlElement;
2
+ export type HTMLFormOperationalControlElement = import('./html-form-operational-control-element.type.js').HTMLFormOperationalControlElement;
3
+ export type HTMLFormControlElement = import('./html-form-control-element.type.js').HTMLFormControlElement;
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/libs/types/types.js"],"names":[],"mappings":"mDAAc,OAAO,qDAAqD,EAAE,oCAAoC;gDAClG,OAAO,iDAAiD,EAAE,iCAAiC;qCAC3F,OAAO,qCAAqC,EAAE,sBAAsB"}
@@ -0,0 +1,5 @@
1
+ /** @typedef {import('./html-form-non-operational-control-element.type.js').HTMLFormNonOperationalControlElement} HTMLFormNonOperationalControlElement */
2
+ /** @typedef {import('./html-form-operational-control-element.type.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
3
+ /** @typedef {import('./html-form-control-element.type.js').HTMLFormControlElement} HTMLFormControlElement */
4
+
5
+ export {};
@@ -0,0 +1,17 @@
1
+ export type HTMLFormControlElement = import('../../libs/types/types.js').HTMLFormControlElement;
2
+ export type HTMLFormOperationalControlElement = import('../../libs/types/types.js').HTMLFormOperationalControlElement;
3
+ /**
4
+ * @param {HTMLFormOperationalControlElement} controlNode
5
+ * @returns {unknown}
6
+ * @throws {FormPayloadError}
7
+ */
8
+ export function getFormControlPayload(controlNode: HTMLFormOperationalControlElement): unknown;
9
+ /** @typedef {import('../../libs/types/types.js').HTMLFormControlElement} HTMLFormControlElement */
10
+ /** @typedef {import('../../libs/types/types.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
11
+ /**
12
+ * @template {Record<string, unknown>} T
13
+ * @param {...HTMLFormControlElement} controlElements
14
+ * @returns {T}
15
+ */
16
+ export function getFormControlsPayload<T extends Record<string, unknown>>(...controlElements: HTMLFormControlElement[]): T;
17
+ //# sourceMappingURL=get-form-control-payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-form-control-payload.d.ts","sourceRoot":"","sources":["../../../../src/packages/get-form-control-payload/get-form-control-payload.js"],"names":[],"mappings":"qCAac,OAAO,2BAA2B,EAAE,sBAAsB;gDAC1D,OAAO,2BAA2B,EAAE,iCAAiC;AA+BnF;;;;GAIG;AACH,mDAJW,iCAAiC,GAC/B,OAAO,CAsEnB;AAxGD,mGAAmG;AACnG,yHAAyH;AAEzH;;;;GAIG;AACH,8FAHc,sBAAsB,OAyBnC"}
@@ -0,0 +1,120 @@
1
+ import { ControlType } from '../../libs/enums/enums.js';
2
+ import { FormPayloadError } from '../../libs/exceptions/exceptions.js';
3
+ import {
4
+ checkIsReferToAnotherNode,
5
+ getAllowedElements,
6
+ getCheckboxValue,
7
+ getFormControlValue,
8
+ getInputDateValue,
9
+ getInputFileValue,
10
+ getInputNumericValue,
11
+ getMultiSelectValues,
12
+ } from './helpers/helpers.js';
13
+
14
+ /** @typedef {import('../../libs/types/types.js').HTMLFormControlElement} HTMLFormControlElement */
15
+ /** @typedef {import('../../libs/types/types.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
16
+
17
+ /**
18
+ * @template {Record<string, unknown>} T
19
+ * @param {...HTMLFormControlElement} controlElements
20
+ * @returns {T}
21
+ */
22
+ const getFormControlsPayload = (...controlElements) => {
23
+ const allowedElements = getAllowedElements(controlElements);
24
+
25
+ let elementsValues = /** @type {T} */ ({});
26
+
27
+ for (const element of allowedElements) {
28
+ const isReferToAnotherNode = checkIsReferToAnotherNode(
29
+ element,
30
+ ...allowedElements,
31
+ );
32
+
33
+ if (isReferToAnotherNode) {
34
+ continue;
35
+ }
36
+
37
+ elementsValues = {
38
+ ...elementsValues,
39
+ [element.name]: getFormControlPayload(element),
40
+ };
41
+ }
42
+
43
+ return elementsValues;
44
+ };
45
+
46
+ /**
47
+ * @param {HTMLFormOperationalControlElement} controlNode
48
+ * @returns {unknown}
49
+ * @throws {FormPayloadError}
50
+ */
51
+ const getFormControlPayload = (controlNode) => {
52
+ switch (controlNode.type) {
53
+ case ControlType.TEXT:
54
+ case ControlType.PASSWORD:
55
+ case ControlType.EMAIL:
56
+ case ControlType.SEARCH:
57
+ case ControlType.URL:
58
+ case ControlType.TEL:
59
+ case ControlType.COLOR:
60
+ case ControlType.DATETIME_LOCAL:
61
+ case ControlType.RADIO:
62
+ case ControlType.HIDDEN:
63
+ case ControlType.TEXTAREA:
64
+ case ControlType.SELECT_ONE:
65
+ case ControlType.OUTPUT: {
66
+ return getFormControlValue(
67
+ /**
68
+ * @type {HTMLInputElement
69
+ * | HTMLOutputElement
70
+ * | HTMLTextAreaElement
71
+ * | HTMLSelectElement}
72
+ */ (controlNode),
73
+ );
74
+ }
75
+ case ControlType.NUMBER:
76
+ case ControlType.RANGE: {
77
+ return getInputNumericValue(
78
+ /** @type {HTMLInputElement} */ (controlNode),
79
+ );
80
+ }
81
+ case ControlType.CHECKBOX: {
82
+ return getCheckboxValue(
83
+ /** @type {HTMLInputElement} */ (controlNode),
84
+ );
85
+ }
86
+ case ControlType.DATE:
87
+ case ControlType.TIME:
88
+ case ControlType.MONTH:
89
+ case ControlType.WEEK: {
90
+ return getInputDateValue(
91
+ /** @type {HTMLInputElement} */ (controlNode),
92
+ );
93
+ }
94
+ case ControlType.FILE: {
95
+ return getInputFileValue(
96
+ /** @type {HTMLInputElement} */ (controlNode),
97
+ );
98
+ }
99
+ case ControlType.SELECT_MULTIPLE: {
100
+ return getMultiSelectValues(
101
+ /** @type {HTMLSelectElement} */ (controlNode),
102
+ );
103
+ }
104
+ case ControlType.FIELDSET: {
105
+ const elements = [
106
+ .../** @type {HTMLFieldSetElement} */ (controlNode).elements,
107
+ ];
108
+
109
+ return getFormControlsPayload(
110
+ .../** @type {HTMLFormControlElement[]} */ (elements),
111
+ );
112
+ }
113
+ }
114
+
115
+ throw new FormPayloadError({
116
+ message: `Unsupported control type – ${controlNode.type}.`,
117
+ });
118
+ };
119
+
120
+ export { getFormControlPayload, getFormControlsPayload };
@@ -0,0 +1,10 @@
1
+ export type HTMLFormOperationalControlElement = import('../../../../libs/types/types.js').HTMLFormOperationalControlElement;
2
+ /** @typedef {import('../../../../libs/types/types.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
3
+ /**
4
+ * @template {HTMLFormOperationalControlElement} T
5
+ * @param {T} currentNode
6
+ * @param {...T} checkNodes
7
+ * @returns {boolean}
8
+ */
9
+ export function checkIsReferToAnotherNode<T extends import("../../../../libs/types/html-form-operational-control-element.type.js").HTMLFormOperationalControlElement>(currentNode: T, ...checkNodes: T[]): boolean;
10
+ //# sourceMappingURL=check-is-refer-to-another-node.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-is-refer-to-another-node.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/check-is-refer-to-another-node/check-is-refer-to-another-node.helper.js"],"names":[],"mappings":"gDAAc,OAAO,iCAAiC,EAAE,iCAAiC;AAAzF,+HAA+H;AAE/H;;;;;GAKG;AACH,2MAFa,OAAO,CAenB"}
@@ -0,0 +1,24 @@
1
+ /** @typedef {import('../../../../libs/types/types.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
2
+
3
+ /**
4
+ * @template {HTMLFormOperationalControlElement} T
5
+ * @param {T} currentNode
6
+ * @param {...T} checkNodes
7
+ * @returns {boolean}
8
+ */
9
+ const checkIsReferToAnotherNode = (currentNode, ...checkNodes) => {
10
+ return checkNodes.some((checkNode) => {
11
+ const hasElements =
12
+ 'elements' in checkNode && checkNode.elements.length > 0;
13
+
14
+ if (!hasElements) {
15
+ return false;
16
+ }
17
+
18
+ return [...checkNode.elements].some((element) =>
19
+ element.contains(currentNode),
20
+ );
21
+ });
22
+ };
23
+
24
+ export { checkIsReferToAnotherNode };
@@ -0,0 +1,8 @@
1
+ export type HTMLFormControlElement = import('../../../../libs/types/types.js').HTMLFormControlElement;
2
+ export type HTMLFormOperationalControlElement = import('../../../../libs/types/types.js').HTMLFormOperationalControlElement;
3
+ /**
4
+ * @param {HTMLFormControlElement[]} elements
5
+ * @returns {HTMLFormOperationalControlElement[]}
6
+ */
7
+ export function getAllowedElements(elements: HTMLFormControlElement[]): HTMLFormOperationalControlElement[];
8
+ //# sourceMappingURL=get-allowed-elements.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-allowed-elements.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-allowed-elements/get-allowed-elements.helper.js"],"names":[],"mappings":"qCAGc,OAAO,iCAAiC,EAAE,sBAAsB;gDAChE,OAAO,iCAAiC,EAAE,iCAAiC;AAoCzF;;;GAGG;AACH,6CAHW,sBAAsB,EAAE,GACtB,iCAAiC,EAAE,CAgB/C"}
@@ -0,0 +1,61 @@
1
+ import { BANNED_CONTROL_TYPES } from '../../../../libs/constants/constants.js';
2
+ import { bannedElementNameToElementInstance } from '../../../../libs/maps/maps.js';
3
+
4
+ /** @typedef {import('../../../../libs/types/types.js').HTMLFormControlElement} HTMLFormControlElement */
5
+ /** @typedef {import('../../../../libs/types/types.js').HTMLFormOperationalControlElement} HTMLFormOperationalControlElement */
6
+
7
+ const checkControlFunctionMap = /** @type {const} */ ({
8
+ /**
9
+ * @param {HTMLFormControlElement} element
10
+ * @returns {boolean}
11
+ */
12
+ checkHasControlName(element) {
13
+ return Boolean(element.name);
14
+ },
15
+ /**
16
+ * @param {HTMLFormControlElement} element
17
+ * @returns {boolean}
18
+ */
19
+ checkIsAllowedControl(element) {
20
+ const isBannedType = /** @type {readonly string[]} */ (
21
+ BANNED_CONTROL_TYPES
22
+ ).includes(element.type);
23
+
24
+ return !isBannedType;
25
+ },
26
+ /**
27
+ * @param {HTMLFormControlElement} element
28
+ * @returns {boolean}
29
+ */
30
+ checkIsAllowedElement(element) {
31
+ const isSameNode = Object.values(
32
+ bannedElementNameToElementInstance,
33
+ ).some((node) => {
34
+ return element instanceof node;
35
+ });
36
+
37
+ return !isSameNode;
38
+ },
39
+ });
40
+
41
+ /**
42
+ * @param {HTMLFormControlElement[]} elements
43
+ * @returns {HTMLFormOperationalControlElement[]}
44
+ */
45
+ const getAllowedElements = (elements) => {
46
+ return elements.filter(
47
+ /**
48
+ * @type {(
49
+ * element: HTMLFormControlElement,
50
+ * ) => element is HTMLFormOperationalControlElement}
51
+ */ (element) => {
52
+ return Object.values(checkControlFunctionMap).every(
53
+ (checkFunction) => {
54
+ return checkFunction(element);
55
+ },
56
+ );
57
+ },
58
+ );
59
+ };
60
+
61
+ export { getAllowedElements };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {boolean}
4
+ */
5
+ export function getCheckboxValue(element: HTMLInputElement): boolean;
6
+ //# sourceMappingURL=get-checkbox-value.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-checkbox-value.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-checkbox-value/get-checkbox-value.helper.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,0CAHW,gBAAgB,GACd,OAAO,CAInB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {boolean}
4
+ */
5
+ const getCheckboxValue = (element) => {
6
+ return element.checked;
7
+ };
8
+
9
+ export { getCheckboxValue };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {HTMLInputElement
3
+ * | HTMLOutputElement
4
+ * | HTMLTextAreaElement
5
+ * | HTMLSelectElement} element
6
+ * @returns {string}
7
+ */
8
+ export function getFormControlValue(element: HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement | HTMLSelectElement): string;
9
+ //# sourceMappingURL=get-control-value.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-control-value.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-control-value/get-control-value.helper.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,6CANW,gBAAgB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACV,MAAM,CAIlB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @param {HTMLInputElement
3
+ * | HTMLOutputElement
4
+ * | HTMLTextAreaElement
5
+ * | HTMLSelectElement} element
6
+ * @returns {string}
7
+ */
8
+ const getFormControlValue = (element) => {
9
+ return element.value;
10
+ };
11
+
12
+ export { getFormControlValue };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {Date | null}
4
+ */
5
+ export function getInputDateValue(element: HTMLInputElement): Date | null;
6
+ //# sourceMappingURL=get-input-date-value.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-date-value.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-input-date-value/get-input-date-value.helper.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,2CAHW,gBAAgB,GACd,IAAI,GAAG,IAAI,CAIvB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {Date | null}
4
+ */
5
+ const getInputDateValue = (element) => {
6
+ return element.valueAsDate;
7
+ };
8
+
9
+ export { getInputDateValue };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {HTMLInputElement} inputNode
3
+ * @returns {File[] | File | null}
4
+ */
5
+ export function getInputFileValue(inputNode: HTMLInputElement): File[] | File | null;
6
+ //# sourceMappingURL=get-input-file-value.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-file-value.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-input-file-value/get-input-file-value.helper.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,6CAHW,gBAAgB,GACd,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAWhC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @param {HTMLInputElement} inputNode
3
+ * @returns {File[] | File | null}
4
+ */
5
+ const getInputFileValue = (inputNode) => {
6
+ const inputFiles = inputNode.files ?? [];
7
+
8
+ if (inputNode.multiple) {
9
+ return [...inputFiles];
10
+ }
11
+ const [file] = inputFiles;
12
+
13
+ return file ?? null;
14
+ };
15
+
16
+ export { getInputFileValue };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {number}
4
+ */
5
+ export function getInputNumericValue(element: HTMLInputElement): number;
6
+ //# sourceMappingURL=get-input-numeric-value.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-numeric-value.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-input-numeric-value/get-input-numeric-value.helper.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8CAHW,gBAAgB,GACd,MAAM,CAIlB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {HTMLInputElement} element
3
+ * @returns {number}
4
+ */
5
+ const getInputNumericValue = (element) => {
6
+ return element.valueAsNumber;
7
+ };
8
+
9
+ export { getInputNumericValue };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {HTMLSelectElement} selectNode
3
+ * @returns {string[]}
4
+ */
5
+ export function getMultiSelectValues(selectNode: HTMLSelectElement): string[];
6
+ //# sourceMappingURL=get-multi-select-values.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-multi-select-values.helper.d.ts","sourceRoot":"","sources":["../../../../../../src/packages/get-form-control-payload/helpers/get-multi-select-values/get-multi-select-values.helper.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,iDAHW,iBAAiB,GACf,MAAM,EAAE,CAIpB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {HTMLSelectElement} selectNode
3
+ * @returns {string[]}
4
+ */
5
+ const getMultiSelectValues = (selectNode) => {
6
+ return Array.from(selectNode.selectedOptions, (opt) => opt.value);
7
+ };
8
+
9
+ export { getMultiSelectValues };
@@ -0,0 +1,9 @@
1
+ export { checkIsReferToAnotherNode } from "./check-is-refer-to-another-node/check-is-refer-to-another-node.helper.js";
2
+ export { getAllowedElements } from "./get-allowed-elements/get-allowed-elements.helper.js";
3
+ export { getCheckboxValue } from "./get-checkbox-value/get-checkbox-value.helper.js";
4
+ export { getFormControlValue } from "./get-control-value/get-control-value.helper.js";
5
+ export { getInputDateValue } from "./get-input-date-value/get-input-date-value.helper.js";
6
+ export { getInputFileValue } from "./get-input-file-value/get-input-file-value.helper.js";
7
+ export { getInputNumericValue } from "./get-input-numeric-value/get-input-numeric-value.helper.js";
8
+ export { getMultiSelectValues } from "./get-multi-select-values/get-multi-select-values.helper.js";
9
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/packages/get-form-control-payload/helpers/helpers.js"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export { checkIsReferToAnotherNode } from './check-is-refer-to-another-node/check-is-refer-to-another-node.helper.js';
2
+ export { getAllowedElements } from './get-allowed-elements/get-allowed-elements.helper.js';
3
+ export { getCheckboxValue } from './get-checkbox-value/get-checkbox-value.helper.js';
4
+ export { getFormControlValue } from './get-control-value/get-control-value.helper.js';
5
+ export { getInputDateValue } from './get-input-date-value/get-input-date-value.helper.js';
6
+ export { getInputFileValue } from './get-input-file-value/get-input-file-value.helper.js';
7
+ export { getInputNumericValue } from './get-input-numeric-value/get-input-numeric-value.helper.js';
8
+ export { getMultiSelectValues } from './get-multi-select-values/get-multi-select-values.helper.js';
@@ -0,0 +1,9 @@
1
+ export type HTMLFormControlElement = import('../../libs/types/types.js').HTMLFormControlElement;
2
+ /** @typedef {import('../../libs/types/types.js').HTMLFormControlElement} HTMLFormControlElement */
3
+ /**
4
+ * @template {Record<string, unknown>} T
5
+ * @param {HTMLFormElement} formNode
6
+ * @returns {T}
7
+ */
8
+ export function getFormPayload<T extends Record<string, unknown>>(formNode: HTMLFormElement): T;
9
+ //# sourceMappingURL=get-form-payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-form-payload.d.ts","sourceRoot":"","sources":["../../../../src/packages/get-form-payload/get-form-payload.js"],"names":[],"mappings":"qCAEc,OAAO,2BAA2B,EAAE,sBAAsB;AAAxE,mGAAmG;AAEnG;;;;GAIG;AACH,4EAHW,eAAe,KASzB"}
@@ -0,0 +1,18 @@
1
+ import { getFormControlsPayload } from '../get-form-control-payload/get-form-control-payload.js';
2
+
3
+ /** @typedef {import('../../libs/types/types.js').HTMLFormControlElement} HTMLFormControlElement */
4
+
5
+ /**
6
+ * @template {Record<string, unknown>} T
7
+ * @param {HTMLFormElement} formNode
8
+ * @returns {T}
9
+ */
10
+ const getFormPayload = (formNode) => {
11
+ const elements = /** @type {HTMLFormControlElement[]} */ ([
12
+ ...formNode.elements,
13
+ ]);
14
+
15
+ return getFormControlsPayload(...elements);
16
+ };
17
+
18
+ export { getFormPayload };
@@ -1,2 +0,0 @@
1
- declare const BANNED_CONTROL_TYPES: readonly ["button", "image", "reset", "submit"];
2
- export { BANNED_CONTROL_TYPES };
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BANNED_CONTROL_TYPES = void 0;
4
- const enums_1 = require("../enums");
5
- const BANNED_CONTROL_TYPES = [
6
- enums_1.ControlType.BUTTON,
7
- enums_1.ControlType.IMAGE,
8
- enums_1.ControlType.RESET,
9
- enums_1.ControlType.SUBMIT,
10
- ];
11
- exports.BANNED_CONTROL_TYPES = BANNED_CONTROL_TYPES;
@@ -1 +0,0 @@
1
- export * from './banned-control-types.constant';
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./banned-control-types.constant"), exports);
@@ -1,9 +0,0 @@
1
- declare const ElementName: {
2
- readonly FORM: "form";
3
- readonly LABEL: "label";
4
- readonly INPUT: "input";
5
- readonly SELECT: "select";
6
- readonly OPTION: "option";
7
- readonly FIELDSET: "fieldset";
8
- };
9
- export { ElementName };
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ElementName = void 0;
4
- const ElementName = {
5
- FORM: 'form',
6
- LABEL: 'label',
7
- INPUT: 'input',
8
- SELECT: 'select',
9
- OPTION: 'option',
10
- FIELDSET: 'fieldset',
11
- };
12
- exports.ElementName = ElementName;
@@ -1 +0,0 @@
1
- export * from './element-name.enum';
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./element-name.enum"), exports);
@@ -1,4 +0,0 @@
1
- declare const CustomExceptionName: {
2
- readonly FORM_PAYLOAD_ERROR: "formPayloadError";
3
- };
4
- export { CustomExceptionName };
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomExceptionName = void 0;
4
- const CustomExceptionName = {
5
- FORM_PAYLOAD_ERROR: 'formPayloadError',
6
- };
7
- exports.CustomExceptionName = CustomExceptionName;
@@ -1,5 +0,0 @@
1
- declare const ErrorMessage: {
2
- readonly UNKNOWN_CONTROL_TYPE: "Unknown control type";
3
- readonly BANNED_TYPE: "Banned type control: ";
4
- };
5
- export { ErrorMessage };
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorMessage = void 0;
4
- const ErrorMessage = {
5
- UNKNOWN_CONTROL_TYPE: 'Unknown control type',
6
- BANNED_TYPE: 'Banned type control: ',
7
- };
8
- exports.ErrorMessage = ErrorMessage;
@@ -1,2 +0,0 @@
1
- export * from './custom-exception-name.enum';
2
- export * from './error-message.enum';
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./custom-exception-name.enum"), exports);
14
- __exportStar(require("./error-message.enum"), exports);