@oneblink/sdk-core 8.0.0-beta.2 → 8.0.0-beta.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.
@@ -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":"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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 checkIsFormElementSupported(\n formElementWithOptions,\n { formsAppEnvironmentId, formElementOptionsSets },\n ) {\n const formElementOptionsSetId =\n formElementWithOptions.dynamicOptionSetId\n return (\n !!formElementOptionsSetId &&\n formElementWithOptions.optionsType === 'DYNAMIC' &&\n formElementOptionsSets.some((formElementOptionsSet) => {\n return (\n formElementOptionsSet.type === 'SHAREPOINT_LIST_COLUMN' &&\n formElementOptionsSet.environments.some(\n (env) =>\n env.formsAppEnvironmentId === formsAppEnvironmentId &&\n env.sharepointColumn.id === columnDefinition.id,\n )\n )\n })\n )\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
+ {"version":3,"file":"sharepointService.js","sourceRoot":"","sources":["../src/sharepointService.ts"],"names":[],"mappings":";;AAOA,kGA+EC;AA/ED,SAAgB,2CAA2C,CACzD,iBAAqC;IAErC,OAAO,iBAAiB,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE;;QACzB,IACE,CAAC,gBAAgB,CAAC,QAAQ;YAC1B,gBAAgB,CAAC,WAAW,KAAK,SAAS;YAC1C,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,EAAE;YACnB,gBAAgB,CAAC,WAAW,EAC5B,CAAC;YACD,IAAI,MAAA,gBAAgB,CAAC,IAAI,0CAAE,kBAAkB,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,iBAAiB;iBACxB,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,kBAAkB;iBACzB,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,MAAA,MAAA,gBAAgB,CAAC,MAAM,0CAAE,OAAO,0CAAE,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACxD,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,MAAM;qBACd,CAAC,CAAC;iBACJ,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,CAAA,MAAA,gBAAgB,CAAC,QAAQ,0CAAE,MAAM,MAAK,UAAU,EAAE,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,UAAU,EAAE,KAAK;oBACjB,8BAA8B,EAAE,gBAAgB,CAAC,IAAI;oBACrD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC,EACD,EAAE,CACH,CAAA;AACH,CAAC","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
- export type ResourceDefinition<T> = T & {
5
+ type ResourceDefinitionBase = {
7
6
  id: string;
8
7
  isRequired: boolean;
9
8
  displayName: string;
10
- } & ({
11
- type: 'TEXT_SINGLE_LINE' | 'TEXT_MULTI_LINE' | 'EMAIL' | 'DATE' | 'DATETIME' | 'NUMBER' | 'BOOLEAN';
12
- } | {
9
+ };
10
+ export interface ResourceDefinitionWithChoices {
13
11
  type: 'CHOICE_SINGLE' | 'CHOICE_MULTIPLE';
14
12
  choices: ResourceDefinitionChoice[];
15
- checkIsFormElementSupported: (formElementWithOptions: FormTypes.FormElementWithOptions, options: {
16
- formElementOptionsSets: FormTypes.FormElementOptionSet[];
17
- formsAppEnvironmentId: number;
18
- }) => boolean;
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":["import { FormTypes } from '@oneblink/types'\n\nexport type ResourceDefinitionChoice = {\n value: string | number\n label: string\n}\n\nexport type ResourceDefinition<T> = T & {\n id: string\n isRequired: boolean\n displayName: string\n} & (\n | {\n type:\n | 'TEXT_SINGLE_LINE'\n | 'TEXT_MULTI_LINE'\n | 'EMAIL'\n | 'DATE'\n | 'DATETIME'\n | 'NUMBER'\n | 'BOOLEAN'\n }\n | {\n type: 'CHOICE_SINGLE' | 'CHOICE_MULTIPLE'\n choices: ResourceDefinitionChoice[]\n checkIsFormElementSupported: (\n formElementWithOptions: FormTypes.FormElementWithOptions,\n options: {\n formElementOptionsSets: FormTypes.FormElementOptionSet[]\n formsAppEnvironmentId: number\n },\n ) => boolean\n }\n )\n"]}
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-beta.2",
4
+ "version": "8.0.0-beta.3",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/sdk-core-js/issues"