@openframe-org/criteria-set-protocol 2.7.4 → 2.7.6
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/v1/utils.d.ts +4 -2
- package/dist/v1/utils.js +12 -22
- package/package.json +1 -1
package/dist/v1/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Color, CriteriaTree, CriteriaTreeElement, Theme, Criterion, Task, TaskGroup, TaskItem, CertificationDefinition, TaskItemValueReference, TaskItemData, ElementData, TreeResult } from "./types";
|
|
1
|
+
import { Color, CriteriaTree, CriteriaTreeElement, Theme, Criterion, Task, TaskGroup, TaskItem, CertificationDefinition, TaskItemValueReference, TaskItemData, ElementData, TreeResult, CriteriaTreeElementType } from "./types";
|
|
2
2
|
interface ApplyBreadcrumbTextFormattingPlaceholdersFunction {
|
|
3
3
|
(options: {
|
|
4
4
|
breadcrumbTextFormat: string | undefined;
|
|
@@ -83,5 +83,7 @@ export declare const getCertificationsByValue: (certificationDefinitions: Certif
|
|
|
83
83
|
* - If it is a different type, throw an error
|
|
84
84
|
* In all cases, the data should contain 'text' and 'readOnly' properties
|
|
85
85
|
*/
|
|
86
|
-
export declare
|
|
86
|
+
export declare function validateData(data: TaskItemData | ElementData | TreeResult, dataType: Exclude<CriteriaTreeElementType, "task-group" | "task-item">): data is ElementData;
|
|
87
|
+
export declare function validateData(data: TaskItemData | ElementData | TreeResult, dataType: Extract<CriteriaTreeElementType, "task-item">): data is TaskItemData;
|
|
88
|
+
export declare function validateData(data: TaskItemData | ElementData | TreeResult, dataType: "tree-result"): data is TreeResult;
|
|
87
89
|
export {};
|
package/dist/v1/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getCertificationsByValue = exports.isNil = exports.applyReportTitleTextFormatFormattingPlaceholders = exports.applyCriteriaTreeElementTextFormatFormattingPlaceholders = exports.applyDocumentTreeFolderTextFormattingPlaceholders = exports.applyBreadcrumbTextFormattingPlaceholders = exports.findInTree = exports.toColorHexString = exports.isTaskItem = exports.isTask = exports.isTaskGroup = exports.isCriterion = exports.isTheme = void 0;
|
|
4
|
+
exports.validateData = validateData;
|
|
4
5
|
const isTheme = (element) => element.type === "theme";
|
|
5
6
|
exports.isTheme = isTheme;
|
|
6
7
|
const isCriterion = (element) => element.type === "criterion";
|
|
@@ -91,25 +92,9 @@ const getCertificationsByValue = (certificationDefinitions, value) => {
|
|
|
91
92
|
});
|
|
92
93
|
};
|
|
93
94
|
exports.getCertificationsByValue = getCertificationsByValue;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
* - If the data is a number/<undefined> type, ensure that it has a numeric value and total
|
|
98
|
-
* - If the data is a percentage type, ensure that it has a numeric value
|
|
99
|
-
* - If the data is a boolean type, ensure that it has a boolean value
|
|
100
|
-
* - If it is a different type, throw an error
|
|
101
|
-
* In all cases, the data should contain 'text' and 'readOnly' properties
|
|
102
|
-
*/
|
|
103
|
-
const validateData = (dataOrTreeElement) => {
|
|
104
|
-
if ("type" in dataOrTreeElement && dataOrTreeElement.type === "task-group") {
|
|
105
|
-
throw new Error("Task groups cannot have data");
|
|
106
|
-
}
|
|
107
|
-
if (("type" in dataOrTreeElement) && dataOrTreeElement.type === "task-item" && !("readOnly" in dataOrTreeElement)) {
|
|
108
|
-
throw new Error("Data is missing 'readOnly' property");
|
|
109
|
-
}
|
|
110
|
-
const data = "data" in dataOrTreeElement ? dataOrTreeElement.data : dataOrTreeElement;
|
|
111
|
-
if (!data) {
|
|
112
|
-
throw new Error("Invalid data object");
|
|
95
|
+
function validateData(data, dataType) {
|
|
96
|
+
if (!["theme", "criterion", "task", "task-item", "tree-result"].includes(dataType)) {
|
|
97
|
+
throw new Error(`Invalid element type: '${dataType}'`);
|
|
113
98
|
}
|
|
114
99
|
["value", "text"].forEach((property) => {
|
|
115
100
|
if (!(property in data)) {
|
|
@@ -142,5 +127,10 @@ const validateData = (dataOrTreeElement) => {
|
|
|
142
127
|
default:
|
|
143
128
|
throw new Error(`Data has an invalid 'type' property: ${data.type}`);
|
|
144
129
|
}
|
|
145
|
-
|
|
146
|
-
|
|
130
|
+
if (dataType === 'task-item') {
|
|
131
|
+
if (!("readOnly" in data)) {
|
|
132
|
+
throw new Error("Data is missing 'readOnly' property");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
package/package.json
CHANGED