@oneblink/sdk-core 8.0.0-beta.2 → 8.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/freshdeskService.js
CHANGED
|
@@ -83,12 +83,6 @@ function generateFreshdeskTicketFieldDefinitions(fields) {
|
|
|
83
83
|
type: 'CHOICE_SINGLE',
|
|
84
84
|
...baseField,
|
|
85
85
|
choices: freshdeskField.options,
|
|
86
|
-
checkIsFormElementSupported(formElementWithOptions) {
|
|
87
|
-
if (freshdeskField.type === 'nested_field') {
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
return (formElementWithOptions.freshdeskFieldName === freshdeskField.name);
|
|
91
|
-
},
|
|
92
86
|
});
|
|
93
87
|
}
|
|
94
88
|
else if (freshdeskField.type === 'nested_field' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freshdeskService.js","sourceRoot":"","sources":["../src/freshdeskService.ts"],"names":[],"mappings":"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","sourcesContent":["import { FreshdeskTypes, SubmissionEventTypes } from '@oneblink/types'\nimport {\n ResourceDefinition,\n ResourceDefinitionChoice,\n} from './types/resource-definitions'\n\nexport const multilineFieldType = 'custom_paragraph'\nexport const emailFieldType = 'default_requester'\nexport const textFieldTypes = [\n multilineFieldType,\n 'custom_text',\n 'default_subject',\n emailFieldType,\n]\n\nexport const numberFieldTypes = ['custom_number', 'custom_decimal']\n\nexport const dateFieldType = 'custom_date'\nexport const checkboxFieldType = 'custom_checkbox'\nexport const choiceFieldTypes = [\n 'custom_dropdown',\n checkboxFieldType,\n 'default_priority',\n 'default_status',\n 'default_source',\n 'default_ticket_type',\n 'default_agent',\n 'default_group',\n]\n\nexport type FreshdeskFieldDefinition =\n | ResourceDefinition<SubmissionEventTypes.BaseFreshdeskSubmissionEventFieldMapping>\n | FreshdeskDependentField\n\nexport type FreshdeskFieldCategory = ResourceDefinitionChoice & {\n subCategories: Array<\n ResourceDefinitionChoice & {\n items: Array<ResourceDefinitionChoice>\n }\n >\n}\n\nexport type FreshdeskDependentField = {\n type: 'DEPENDENT_FIELD'\n id: string\n isRequired: boolean\n displayName: string\n freshdeskFieldName: string\n choices: FreshdeskFieldCategory[]\n}\n\nexport function generateFreshdeskTicketFieldDefinitions(\n fields: FreshdeskTypes.FreshdeskField[],\n) {\n return setFreshdeskFieldOptions(fields).reduce<FreshdeskFieldDefinition[]>(\n (memo, freshdeskField) => {\n const isCheckboxField = freshdeskField.type === checkboxFieldType\n const isRequired =\n freshdeskField.required_for_customers ||\n freshdeskField.name === 'ticket_type'\n const isTextField = textFieldTypes.includes(freshdeskField.type)\n const isMultilineTextField = freshdeskField.type === multilineFieldType\n const isEmailField = freshdeskField.type === emailFieldType\n const isDateField = freshdeskField.type === dateFieldType\n const isNumberField = numberFieldTypes.includes(freshdeskField.type)\n const isChoiceField = choiceFieldTypes.includes(freshdeskField.type)\n\n const baseField = {\n id: freshdeskField.id.toString(),\n displayName: freshdeskField.label_for_customers,\n isRequired,\n freshdeskFieldName: freshdeskField.name,\n }\n if (isCheckboxField) {\n memo.push({\n type: 'BOOLEAN',\n ...baseField,\n })\n } else if (isDateField) {\n memo.push({\n type: 'DATE',\n ...baseField,\n })\n } else if (isNumberField) {\n memo.push({\n type: 'NUMBER',\n ...baseField,\n })\n } else if (isEmailField) {\n memo.push({\n type: 'EMAIL',\n ...baseField,\n })\n } else if (isMultilineTextField) {\n memo.push({\n type: 'TEXT_MULTI_LINE',\n ...baseField,\n })\n } else if (isTextField) {\n memo.push({\n type: 'TEXT_SINGLE_LINE',\n ...baseField,\n })\n } else if (freshdeskField.options && isChoiceField) {\n memo.push({\n type: 'CHOICE_SINGLE',\n ...baseField,\n choices: freshdeskField.options,\n checkIsFormElementSupported(formElementWithOptions) {\n if (freshdeskField.type === 'nested_field') {\n return false\n }\n\n return (\n formElementWithOptions.freshdeskFieldName === freshdeskField.name\n )\n },\n })\n } else if (\n freshdeskField.type === 'nested_field' &&\n freshdeskField.options?.length\n ) {\n const choices = freshdeskField.options.reduce<FreshdeskFieldCategory[]>(\n (categoriesMemo, category) => {\n const subCategories = category.options?.reduce<\n FreshdeskFieldCategory['subCategories']\n >((subCategoriesMemo, subCategory) => {\n if (subCategory.options?.length) {\n subCategoriesMemo.push({\n value: subCategory.value,\n label: subCategory.label,\n items: subCategory.options.map(({ value, label }) => ({\n value,\n label,\n })),\n })\n }\n\n return subCategoriesMemo\n }, [])\n\n if (subCategories?.length) {\n categoriesMemo.push({\n value: category.value,\n label: category.label,\n subCategories,\n })\n }\n\n return categoriesMemo\n },\n [],\n )\n\n if (choices.length) {\n memo.push({\n type: 'DEPENDENT_FIELD',\n ...baseField,\n choices,\n })\n }\n }\n\n return memo\n },\n [],\n )\n}\n\n/**\n * This function is used to transform the `choices` property into the `options`\n * property for freshdesk fields.\n *\n * @param fields\n * @returns\n */\nexport function setFreshdeskFieldOptions(\n fields: FreshdeskTypes.FreshdeskField[],\n): FreshdeskTypes.FreshdeskField[] {\n for (const field of fields) {\n const choices = field.choices\n if (!choices) {\n continue\n }\n if (Array.isArray(choices)) {\n field.options = choices.map((choice) => ({\n label: choice,\n value: choice,\n }))\n } else if (typeof choices === 'object') {\n field.options = Object.entries(choices).map(([key, value]) => {\n if (typeof value === 'number') {\n return {\n label: key,\n value,\n }\n } else if (Array.isArray(value)) {\n return {\n label: value[0],\n value: parseInt(key),\n }\n } else {\n return {\n label: key,\n value: key,\n options: Object.entries(value).map(([subCategory, items]) => ({\n label: subCategory,\n value: subCategory,\n options: items.map((item) => ({\n label: item,\n value: item,\n })),\n })),\n }\n }\n })\n }\n }\n return fields\n}\n"]}
|
|
1
|
+
{"version":3,"file":"freshdeskService.js","sourceRoot":"","sources":["../src/freshdeskService.ts"],"names":[],"mappings":"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","sourcesContent":["import { FreshdeskTypes, SubmissionEventTypes } from '@oneblink/types'\nimport {\n ResourceDefinition,\n ResourceDefinitionChoice,\n} from './types/resource-definitions'\n\nexport const multilineFieldType = 'custom_paragraph'\nexport const emailFieldType = 'default_requester'\nexport const textFieldTypes = [\n multilineFieldType,\n 'custom_text',\n 'default_subject',\n emailFieldType,\n]\n\nexport const numberFieldTypes = ['custom_number', 'custom_decimal']\n\nexport const dateFieldType = 'custom_date'\nexport const checkboxFieldType = 'custom_checkbox'\nexport const choiceFieldTypes = [\n 'custom_dropdown',\n checkboxFieldType,\n 'default_priority',\n 'default_status',\n 'default_source',\n 'default_ticket_type',\n 'default_agent',\n 'default_group',\n]\n\nexport type FreshdeskFieldDefinition =\n | ResourceDefinition<SubmissionEventTypes.BaseFreshdeskSubmissionEventFieldMapping>\n | FreshdeskDependentField\n\nexport type FreshdeskFieldCategory = ResourceDefinitionChoice & {\n subCategories: Array<\n ResourceDefinitionChoice & {\n items: Array<ResourceDefinitionChoice>\n }\n >\n}\n\nexport type FreshdeskDependentField = {\n type: 'DEPENDENT_FIELD'\n id: string\n isRequired: boolean\n displayName: string\n freshdeskFieldName: string\n choices: FreshdeskFieldCategory[]\n}\n\nexport function generateFreshdeskTicketFieldDefinitions(\n fields: FreshdeskTypes.FreshdeskField[],\n) {\n return setFreshdeskFieldOptions(fields).reduce<FreshdeskFieldDefinition[]>(\n (memo, freshdeskField) => {\n const isCheckboxField = freshdeskField.type === checkboxFieldType\n const isRequired =\n freshdeskField.required_for_customers ||\n freshdeskField.name === 'ticket_type'\n const isTextField = textFieldTypes.includes(freshdeskField.type)\n const isMultilineTextField = freshdeskField.type === multilineFieldType\n const isEmailField = freshdeskField.type === emailFieldType\n const isDateField = freshdeskField.type === dateFieldType\n const isNumberField = numberFieldTypes.includes(freshdeskField.type)\n const isChoiceField = choiceFieldTypes.includes(freshdeskField.type)\n\n const baseField = {\n id: freshdeskField.id.toString(),\n displayName: freshdeskField.label_for_customers,\n isRequired,\n freshdeskFieldName: freshdeskField.name,\n }\n if (isCheckboxField) {\n memo.push({\n type: 'BOOLEAN',\n ...baseField,\n })\n } else if (isDateField) {\n memo.push({\n type: 'DATE',\n ...baseField,\n })\n } else if (isNumberField) {\n memo.push({\n type: 'NUMBER',\n ...baseField,\n })\n } else if (isEmailField) {\n memo.push({\n type: 'EMAIL',\n ...baseField,\n })\n } else if (isMultilineTextField) {\n memo.push({\n type: 'TEXT_MULTI_LINE',\n ...baseField,\n })\n } else if (isTextField) {\n memo.push({\n type: 'TEXT_SINGLE_LINE',\n ...baseField,\n })\n } else if (freshdeskField.options && isChoiceField) {\n memo.push({\n type: 'CHOICE_SINGLE',\n ...baseField,\n choices: freshdeskField.options,\n })\n } else if (\n freshdeskField.type === 'nested_field' &&\n freshdeskField.options?.length\n ) {\n const choices = freshdeskField.options.reduce<FreshdeskFieldCategory[]>(\n (categoriesMemo, category) => {\n const subCategories = category.options?.reduce<\n FreshdeskFieldCategory['subCategories']\n >((subCategoriesMemo, subCategory) => {\n if (subCategory.options?.length) {\n subCategoriesMemo.push({\n value: subCategory.value,\n label: subCategory.label,\n items: subCategory.options.map(({ value, label }) => ({\n value,\n label,\n })),\n })\n }\n\n return subCategoriesMemo\n }, [])\n\n if (subCategories?.length) {\n categoriesMemo.push({\n value: category.value,\n label: category.label,\n subCategories,\n })\n }\n\n return categoriesMemo\n },\n [],\n )\n\n if (choices.length) {\n memo.push({\n type: 'DEPENDENT_FIELD',\n ...baseField,\n choices,\n })\n }\n }\n\n return memo\n },\n [],\n )\n}\n\n/**\n * This function is used to transform the `choices` property into the `options`\n * property for freshdesk fields.\n *\n * @param fields\n * @returns\n */\nexport function setFreshdeskFieldOptions(\n fields: FreshdeskTypes.FreshdeskField[],\n): FreshdeskTypes.FreshdeskField[] {\n for (const field of fields) {\n const choices = field.choices\n if (!choices) {\n continue\n }\n if (Array.isArray(choices)) {\n field.options = choices.map((choice) => ({\n label: choice,\n value: choice,\n }))\n } else if (typeof choices === 'object') {\n field.options = Object.entries(choices).map(([key, value]) => {\n if (typeof value === 'number') {\n return {\n label: key,\n value,\n }\n } else if (Array.isArray(value)) {\n return {\n label: value[0],\n value: parseInt(key),\n }\n } else {\n return {\n label: key,\n value: key,\n options: Object.entries(value).map(([subCategory, items]) => ({\n label: subCategory,\n value: subCategory,\n options: items.map((item) => ({\n label: item,\n value: item,\n })),\n })),\n }\n }\n })\n }\n }\n return fields\n}\n"]}
|
|
@@ -38,16 +38,6 @@ function generateSharepointColumnResourceDefinitions(columnDefinitions) {
|
|
|
38
38
|
label: choice,
|
|
39
39
|
value: choice,
|
|
40
40
|
})),
|
|
41
|
-
checkIsFormElementSupported(formElementWithOptions, { formsAppEnvironmentId, formElementOptionsSets }) {
|
|
42
|
-
const formElementOptionsSetId = formElementWithOptions.dynamicOptionSetId;
|
|
43
|
-
return (!!formElementOptionsSetId &&
|
|
44
|
-
formElementWithOptions.optionsType === 'DYNAMIC' &&
|
|
45
|
-
formElementOptionsSets.some((formElementOptionsSet) => {
|
|
46
|
-
return (formElementOptionsSet.type === 'SHAREPOINT_LIST_COLUMN' &&
|
|
47
|
-
formElementOptionsSet.environments.some((env) => env.formsAppEnvironmentId === formsAppEnvironmentId &&
|
|
48
|
-
env.sharepointColumn.id === columnDefinition.id));
|
|
49
|
-
}));
|
|
50
|
-
},
|
|
51
41
|
});
|
|
52
42
|
}
|
|
53
43
|
else if (((_d = columnDefinition.dateTime) === null || _d === void 0 ? void 0 : _d.format) === 'dateOnly') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharepointService.js","sourceRoot":"","sources":["../src/sharepointService.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"sharepointService.js","sourceRoot":"","sources":["../src/sharepointService.ts"],"names":[],"mappings":"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","sourcesContent":["import { ColumnDefinition } from '@microsoft/microsoft-graph-types'\nimport { SubmissionEventTypes } from '@oneblink/types'\nimport { ResourceDefinition } from './types/resource-definitions'\n\nexport type SharepointColumnResourceDefinition =\n ResourceDefinition<SubmissionEventTypes.SharepointColumnResourceDefinitionBase>\n\nexport function generateSharepointColumnResourceDefinitions(\n columnDefinitions: ColumnDefinition[],\n) {\n return columnDefinitions.reduce<SharepointColumnResourceDefinition[]>(\n (memo, columnDefinition) => {\n if (\n !columnDefinition.readOnly &&\n columnDefinition.columnGroup !== '_Hidden' &&\n columnDefinition.name &&\n columnDefinition.id &&\n columnDefinition.displayName\n ) {\n if (columnDefinition.text?.allowMultipleLines) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'TEXT_MULTI_LINE',\n })\n } else if (columnDefinition.text) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'TEXT_SINGLE_LINE',\n })\n } else if (columnDefinition.choice?.choices?.length) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'CHOICE_SINGLE',\n choices: columnDefinition.choice.choices.map((choice) => ({\n label: choice,\n value: choice,\n })),\n })\n } else if (columnDefinition.dateTime?.format === 'dateOnly') {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'DATE',\n })\n } else if (columnDefinition.dateTime) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'DATETIME',\n })\n } else if (columnDefinition.number) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'NUMBER',\n })\n } else if (columnDefinition.boolean) {\n memo.push({\n id: columnDefinition.id,\n isRequired: false,\n sharepointColumnDefinitionName: columnDefinition.name,\n displayName: columnDefinition.displayName,\n type: 'BOOLEAN',\n })\n }\n }\n\n return memo\n },\n [],\n )\n}\n"]}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import { FormTypes } from '@oneblink/types';
|
|
2
1
|
export type ResourceDefinitionChoice = {
|
|
3
2
|
value: string | number;
|
|
4
3
|
label: string;
|
|
5
4
|
};
|
|
6
|
-
|
|
5
|
+
type ResourceDefinitionBase = {
|
|
7
6
|
id: string;
|
|
8
7
|
isRequired: boolean;
|
|
9
8
|
displayName: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
} | {
|
|
9
|
+
};
|
|
10
|
+
export interface ResourceDefinitionWithChoices {
|
|
13
11
|
type: 'CHOICE_SINGLE' | 'CHOICE_MULTIPLE';
|
|
14
12
|
choices: ResourceDefinitionChoice[];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
13
|
+
}
|
|
14
|
+
export type ResourceDefinition<T> = T & ResourceDefinitionBase & ({
|
|
15
|
+
type: 'TEXT_SINGLE_LINE' | 'TEXT_MULTI_LINE' | 'EMAIL' | 'DATE' | 'DATETIME' | 'NUMBER' | 'BOOLEAN';
|
|
16
|
+
} | ResourceDefinitionWithChoices);
|
|
17
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-definitions.js","sourceRoot":"","sources":["../../src/types/resource-definitions.ts"],"names":[],"mappings":"","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"resource-definitions.js","sourceRoot":"","sources":["../../src/types/resource-definitions.ts"],"names":[],"mappings":"","sourcesContent":["export type ResourceDefinitionChoice = {\n value: string | number\n label: string\n}\n\ntype ResourceDefinitionBase = {\n id: string\n isRequired: boolean\n displayName: string\n}\n\nexport interface ResourceDefinitionWithChoices {\n type: 'CHOICE_SINGLE' | 'CHOICE_MULTIPLE'\n choices: ResourceDefinitionChoice[]\n}\n\nexport type ResourceDefinition<T> = T &\n ResourceDefinitionBase &\n (\n | {\n type:\n | 'TEXT_SINGLE_LINE'\n | 'TEXT_MULTI_LINE'\n | 'EMAIL'\n | 'DATE'\n | 'DATETIME'\n | 'NUMBER'\n | 'BOOLEAN'\n }\n | ResourceDefinitionWithChoices\n )\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneblink/sdk-core",
|
|
3
3
|
"description": "OneBlink SDK for JavaScript (works in Browsers and NodeJS)",
|
|
4
|
-
"version": "8.0.0
|
|
4
|
+
"version": "8.0.0",
|
|
5
5
|
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/oneblink/sdk-core-js/issues"
|