Socket
Socket
Sign inDemoInstall

@oneblink/sdk-core

Package Overview
Dependencies
Maintainers
6
Versions
135
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@oneblink/sdk-core - npm Package Compare versions

Comparing version 6.0.1-beta.1 to 6.0.1-beta.2

2

dist/formElementsService.d.ts

@@ -60,3 +60,3 @@ import { FormTypes } from '@oneblink/types';

*/
declare function findFormElement(elements: FormTypes.FormElement[], predicate: (element: FormTypes.FormElement, elements: FormTypes.FormElement[]) => boolean, parentElements?: FormTypes.FormElement[]): FormTypes.FormElement | void;
declare function findFormElement(elements: FormTypes.FormElement[], predicate: (element: FormTypes.FormElement, elements: FormTypes.FormElement[]) => boolean, parentElements?: FormTypes.FormElement[]): FormTypes.FormElement | undefined;
/**

@@ -63,0 +63,0 @@ * Parse unknown data as valid dynamic options for a forms element. This will

@@ -70,5 +70,4 @@ import { FormTypes, MiscTypes, ScheduledTasksTypes, SubmissionTypes } from '@oneblink/types';

*/
export declare function getElementSubmissionValue({ elementId, propertyName, submission, formElements, formatDate, formatDateTime, formatTime, formatNumber, formatCurrency, }: {
elementId?: string;
propertyName?: string;
export declare function getElementSubmissionValue({ propertyName, submission, formElements, formatDate, formatDateTime, formatTime, formatNumber, formatCurrency, }: {
propertyName: string;
formElements: FormTypes.FormElement[];

@@ -80,2 +79,10 @@ submission: SubmissionTypes.S3SubmissionData['submission'];

} | undefined;
export declare function getElementSubmissionValue({ elementId, submission, formElements, formatDate, formatDateTime, formatTime, formatNumber, formatCurrency, }: {
elementId: string;
formElements: FormTypes.FormElement[];
submission: SubmissionTypes.S3SubmissionData['submission'];
} & ReplaceInjectablesFormatters): {
element: FormTypes.FormElement | undefined;
value: unknown;
} | undefined;
/**

@@ -82,0 +89,0 @@ * Replace the `{ELEMENT:<elementName>}` values in text while a form is being

@@ -6,2 +6,3 @@ "use strict";

const form_elements_regex_1 = require("./form-elements-regex");
const formElementsService_1 = require("./formElementsService");
const SUBMISSION_VALUES = [

@@ -72,44 +73,47 @@ {

];
/**
* Function to get the display value of a property in submission, if elementId
* is provided propertyName will be ignored
*
* #### Example
*
* ```typescript
* const result = submissionService.getElementSubmissionValue({
* propertyName: 'search',
* submission: {
* search: 'Entered By User',
* },
* formElements: [
* {
* id: 'd4135b47-9004-4d75-aeb3-d2f6232da111',
* name: 'search',
* type: 'text',
* label: 'Search',
* readOnly: false,
* required: false,
* conditionallyShow: false,
* requiresAllConditionallyShowPredicates: false,
* isElementLookup: false,
* isDataLookup: false,
* },
* ],
* formatDate: (value) => new Date(value).toDateString(),
* formatDateTime: (value) => new Date(value).toString(),
* formatTime: (value) => new Date(value).toTimeString(),
* formatNumber: (value) => Number(value).toString(),
* formatCurrency: (value) => Number(value).toFixed(2),
* })
* ```
*
* @param options
* @returns
*/
function getElementSubmissionValue({ elementId, propertyName, submission, formElements, formatDate, formatDateTime, formatTime, formatNumber, formatCurrency, }) {
var _a, _b, _c, _d, _e;
if (elementId === undefined && propertyName === undefined) {
return undefined;
}
let result = undefined;
if (elementId) {
result = getElementSubmissionValueById({
elementId,
formElements,
submission,
});
}
else if (propertyName) {
result = getElementSubmissionValueByName({
propertyName,
formElements,
submission,
});
}
if (!result) {
return;
}
return formatValue({
element: result.formElement,
unknownValue: result.unknownValue,
formatDate,
formatTime,
formatDateTime,
formatCurrency,
formatNumber,
});
}
exports.getElementSubmissionValue = getElementSubmissionValue;
function getElementSubmissionValueByName({ propertyName, formElements, submission, }) {
const unknownValue = submission[propertyName];
if (unknownValue === undefined || unknownValue === null) {
return undefined;
}
const formElement = (0, formElementsService_1.findFormElement)(formElements, (element) => element.type !== 'page' &&
element.type !== 'section' &&
element.name === propertyName);
return { formElement, unknownValue };
}
function getElementSubmissionValueById({ elementId, formElements, submission, }) {
var _a;
// make sure submission is an object

@@ -119,67 +123,56 @@ if (Object(submission) !== submission) {

}
// initialise if propertyName provided and not elementId
let unknown = elementId ? undefined : submission[propertyName !== null && propertyName !== void 0 ? propertyName : ''];
const flattenedElements = (0, formElementsService_1.flattenFormElements)(formElements);
let unknown = undefined;
let formElement = undefined;
const matchFn = (element) => {
if (elementId) {
return elementId === element.id;
}
return 'name' in element && element.name === propertyName;
};
for (const element of formElements) {
if (matchFn(element)) {
for (const element of flattenedElements) {
if (elementId === element.id) {
if ('name' in element) {
unknown = submission[element.name];
formElement = element;
break;
}
break;
}
if ('elements' in element) {
const newSubmissionData = 'name' in element ? submission[element.name] : submission;
if (Array.isArray(newSubmissionData) || !element.elements) {
continue;
}
const result = getElementSubmissionValue({
if (element.type === 'form') {
const newSubmissionData = submission[element.name];
const result = getElementSubmissionValueById({
elementId,
propertyName,
formElements: element.elements,
formElements: (_a = element.elements) !== null && _a !== void 0 ? _a : [],
submission: newSubmissionData,
formatDate,
formatDateTime,
formatTime,
formatNumber,
formatCurrency,
});
if (result) {
return result.value !== undefined || result.value !== null
? result
: undefined;
unknown = result.unknownValue;
formElement = result.formElement;
break;
}
}
}
if (unknown === undefined || unknown === null) {
if (unknown === undefined || unknown === null || formElement === undefined) {
return undefined;
}
switch (formElement === null || formElement === void 0 ? void 0 : formElement.type) {
return { unknownValue: unknown, formElement };
}
function formatValue({ element, unknownValue, formatDate, formatTime, formatDateTime, formatCurrency, formatNumber, }) {
var _a, _b, _c, _d, _e;
switch (element === null || element === void 0 ? void 0 : element.type) {
case 'datetime': {
const value = unknown;
return { element: formElement, value: formatDateTime(value) };
const value = unknownValue;
return { element: element, value: formatDateTime(value) };
}
case 'date': {
const value = unknown;
return { element: formElement, value: formatDate(value) };
const value = unknownValue;
return { element: element, value: formatDate(value) };
}
case 'time': {
const value = unknown;
return { element: formElement, value: formatTime(value) };
const value = unknownValue;
return { element: element, value: formatTime(value) };
}
case 'radio':
case 'autocomplete': {
const value = unknown;
const option = (_a = formElement.options) === null || _a === void 0 ? void 0 : _a.find((opt) => opt.value === value);
return { element: formElement, value: (option === null || option === void 0 ? void 0 : option.label) || value };
const value = unknownValue;
const option = (_a = element.options) === null || _a === void 0 ? void 0 : _a.find((opt) => opt.value === value);
return { element: element, value: (option === null || option === void 0 ? void 0 : option.label) || value };
}
case 'checkboxes': {
const value = unknown;
const options = formElement.options;
const value = unknownValue;
const options = element.options;
const selectedOptionLabels = value.reduce((labels, selectedOption) => {

@@ -192,3 +185,3 @@ const foundOption = options === null || options === void 0 ? void 0 : options.find((o) => o.value === selectedOption);

return {
element: formElement,
element: element,
value: selectedOptionLabels.length ? selectedOptionLabels : undefined,

@@ -198,6 +191,6 @@ };

case 'compliance': {
const value = unknown;
const option = (formElement.options || []).find((option) => option.value === value.value);
const value = unknownValue;
const option = (element.options || []).find((option) => option.value === value.value);
return {
element: formElement,
element: element,
value: {

@@ -210,5 +203,5 @@ ...value,

case 'select': {
if (formElement.multi) {
const value = unknown;
const options = formElement.options;
if (element.multi) {
const value = unknownValue;
const options = element.options;
const selectedOptionLabels = value.reduce((labels, selectedOption) => {

@@ -221,3 +214,3 @@ const foundOption = options === null || options === void 0 ? void 0 : options.find((o) => o.value === selectedOption);

return {
element: formElement,
element: element,
value: selectedOptionLabels.length ? selectedOptionLabels : undefined,

@@ -227,16 +220,16 @@ };

else {
const value = unknown;
const option = (_b = formElement.options) === null || _b === void 0 ? void 0 : _b.find((opt) => opt.value === value);
return { element: formElement, value: option === null || option === void 0 ? void 0 : option.label };
const value = unknownValue;
const option = (_b = element.options) === null || _b === void 0 ? void 0 : _b.find((opt) => opt.value === value);
return { element: element, value: option === null || option === void 0 ? void 0 : option.label };
}
}
case 'boolean': {
const value = unknown;
return { element: formElement, value: value ? 'Yes' : 'No' };
const value = unknownValue;
return { element: element, value: value ? 'Yes' : 'No' };
}
case 'calculation': {
const value = unknown;
const value = unknownValue;
if (!Number.isNaN(value) && Number.isFinite(value)) {
let text;
if (formElement.displayAsCurrency) {
if (element.displayAsCurrency) {
text = formatCurrency(value);

@@ -247,3 +240,3 @@ }

}
return { element: formElement, value: text };
return { element: element, value: text };
}

@@ -254,5 +247,5 @@ return undefined;

case 'geoscapeAddress': {
const value = unknown;
const value = unknownValue;
return {
element: formElement,
element: element,
value: ((_c = value === null || value === void 0 ? void 0 : value.addressDetails) === null || _c === void 0 ? void 0 : _c.formattedAddress) || (value === null || value === void 0 ? void 0 : value.addressId),

@@ -262,9 +255,9 @@ };

case 'civicaStreetName': {
const value = unknown;
return { element: formElement, value: value === null || value === void 0 ? void 0 : value.formattedStreet };
const value = unknownValue;
return { element: element, value: value === null || value === void 0 ? void 0 : value.formattedStreet };
}
case 'civicaNameRecord': {
const value = unknown;
const value = unknownValue;
return {
element: formElement,
element: element,
value: [value === null || value === void 0 ? void 0 : value.title, value === null || value === void 0 ? void 0 : value.givenName1, value === null || value === void 0 ? void 0 : value.familyName]

@@ -276,5 +269,5 @@ .filter((t) => t)

case 'abn': {
const value = unknown;
const value = unknownValue;
return {
element: formElement,
element: element,
value: value ? (0, abnService_1.getABNNumberFromABNRecord)(value) : undefined,

@@ -284,5 +277,5 @@ };

case 'apiNSWLiquorLicence': {
const value = unknown;
const value = unknownValue;
return {
element: formElement,
element: element,
value: `${(_d = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _d === void 0 ? void 0 : _d.licenceNumber} | ${(_e = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _e === void 0 ? void 0 : _e.licenceName}`.trim(),

@@ -292,7 +285,6 @@ };

default: {
return { element: formElement, value: unknown };
return { element: element, value: unknownValue };
}
}
}
exports.getElementSubmissionValue = getElementSubmissionValue;
/**

@@ -299,0 +291,0 @@ * Replace the `{ELEMENT:<elementName>}` values in text while a form is being

{
"name": "@oneblink/sdk-core",
"description": "OneBlink SDK for JavaScript (works in Browsers and NodeJS)",
"version": "6.0.1-beta.1",
"version": "6.0.1-beta.2",
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",

@@ -6,0 +6,0 @@ "bugs": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc