@asoftwareworld/form-builder-pro
Version:
ASW Form Builder Pro helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same b
1 lines • 45.2 kB
Source Map (JSON)
{"version":3,"file":"asoftwareworld-form-builder-pro-utils.mjs","sources":["../../src/components/utils/image-crop/blob.utils.ts","../../src/components/utils/image-crop/exif.utils.ts","../../src/components/utils/image-crop/hammer.utils.ts","../../src/components/utils/image-crop/keyboard.utils.ts","../../src/components/utils/image-crop/percentage.utils.ts","../../src/components/utils/image-crop/resize.utils.ts","../../src/components/utils/defined-utils.ts","../../src/components/utils/objectutils.ts","../../src/components/utils/translate-utils.ts","../../src/components/utils/public_api.ts","../../src/components/utils/asoftwareworld-form-builder-pro-utils.ts"],"sourcesContent":["/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function base64ToFile(base64Image: string): Blob {\n const split = base64Image.split(',');\n const type = split[0].replace('data:', '').replace(';base64', '');\n const byteString = atob(split[1]);\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i += 1) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type });\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { ExifTransform } from '@asoftwareworld/form-builder-pro/api';\n\n// Black 2x1 JPEG, with the following meta information set:\n// - EXIF Orientation: 6 (Rotated 90° CCW)\n// Source: https://github.com/blueimp/JavaScript-Load-Image\nconst testAutoOrientationImageURL =\n 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +\n 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +\n 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +\n 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +\n 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +\n 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';\n\nexport function supportsAutomaticRotation(): Promise<boolean> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n // Check if browser supports automatic image orientation:\n const supported = img.width === 1 && img.height === 2;\n resolve(supported);\n };\n img.src = testAutoOrientationImageURL;\n });\n}\n\nexport function getTransformationsFromExifData(exifRotationOrArrayBuffer: number | ArrayBufferLike | any): ExifTransform {\n if (typeof exifRotationOrArrayBuffer === 'object') {\n exifRotationOrArrayBuffer = getExifRotation(exifRotationOrArrayBuffer);\n }\n switch (exifRotationOrArrayBuffer) {\n case 2:\n return { rotate: 0, flip: true };\n case 3:\n return { rotate: 2, flip: false };\n case 4:\n return { rotate: 2, flip: true };\n case 5:\n return { rotate: 1, flip: true };\n case 6:\n return { rotate: 1, flip: false };\n case 7:\n return { rotate: 3, flip: true };\n case 8:\n return { rotate: 3, flip: false };\n default:\n return { rotate: 0, flip: false };\n }\n}\n\nfunction getExifRotation(arrayBuffer: ArrayBufferLike): number {\n const view = new DataView(arrayBuffer);\n if (view.getUint16(0, false) !== 0xffd8) {\n return -2;\n }\n const length = view.byteLength;\n let offset = 2;\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8) return -1;\n const marker = view.getUint16(offset, false);\n offset += 2;\n if (marker == 0xffe1) {\n if (view.getUint32((offset += 2), false) !== 0x45786966) {\n return -1;\n }\n\n const little = view.getUint16((offset += 6), false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n for (let i = 0; i < tags; i++) {\n if (view.getUint16(offset + i * 12, little) == 0x0112) {\n return view.getUint16(offset + i * 12 + 8, little);\n }\n }\n } else if ((marker & 0xff00) !== 0xff00) {\n break;\n } else {\n offset += view.getUint16(offset, false);\n }\n }\n return -1;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport type HammerStatic = new (element: HTMLElement | SVGElement, options?: any) => HammerManager;\n\n/** @docs-private */\nexport interface HammerManager {\n get(eventName: string): HammerManager;\n set(options: any): HammerManager;\n on(eventName: string, handler: (ev: any) => any): any;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function getPositionForKey(key: string): string {\n switch (key) {\n case 'ArrowUp':\n return 'top';\n case 'ArrowRight':\n return 'right';\n case 'ArrowDown':\n return 'bottom';\n case 'ArrowLeft':\n default:\n return 'left';\n }\n}\n\nexport function getInvertedPositionForKey(key: string): string {\n switch (key) {\n case 'ArrowUp':\n return 'bottom';\n case 'ArrowRight':\n return 'left';\n case 'ArrowDown':\n return 'top';\n case 'ArrowLeft':\n default:\n return 'right';\n }\n}\n\nexport function getEventForKey(key: string, stepSize: number): any {\n switch (key) {\n case 'ArrowUp':\n return { clientX: 0, clientY: stepSize * -1 };\n case 'ArrowRight':\n return { clientX: stepSize, clientY: 0 };\n case 'ArrowDown':\n return { clientX: 0, clientY: stepSize };\n case 'ArrowLeft':\n default:\n return { clientX: stepSize * -1, clientY: 0 };\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function percentage(percent: number, totalValue: number): number {\n return (percent / 100) * totalValue;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function resizeCanvas(canvas: HTMLCanvasElement, width: number, height: number): void {\n const WIDTH_SOURCE = canvas.width;\n const HEIGHT_SOURCE = canvas.height;\n width = Math.round(width);\n height = Math.round(height);\n\n const RATIO_W = WIDTH_SOURCE / width;\n const RATIO_H = HEIGHT_SOURCE / height;\n const RATIO_W_HALF = Math.ceil(RATIO_W / 2);\n const RATIO_H_HALF = Math.ceil(RATIO_H / 2);\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n const img = ctx.getImageData(0, 0, WIDTH_SOURCE, HEIGHT_SOURCE);\n const img2 = ctx.createImageData(width, height);\n const data = img.data;\n const data2 = img2.data;\n\n for (let j = 0; j < height; j++) {\n for (let i = 0; i < width; i++) {\n const x2 = (i + j * width) * 4;\n const CENTER_Y = j * RATIO_H;\n let weight = 0;\n let weights = 0;\n let WEIGHTS_ALPHA = 0;\n let GX_R = 0;\n let GX_G = 0;\n let GX_B = 0;\n let GX_A = 0;\n\n const XX_START = Math.floor(i * RATIO_W);\n const YY_START = Math.floor(j * RATIO_H);\n let XX_STOP = Math.ceil((i + 1) * RATIO_W);\n let YY_STOP = Math.ceil((j + 1) * RATIO_H);\n XX_STOP = Math.min(XX_STOP, WIDTH_SOURCE);\n YY_STOP = Math.min(YY_STOP, HEIGHT_SOURCE);\n\n for (let yy = YY_START; yy < YY_STOP; yy++) {\n const dy = Math.abs(CENTER_Y - yy) / RATIO_H_HALF;\n const CENTER_X = i * RATIO_W;\n const w0 = dy * dy; // pre-calc part of w\n for (let xx = XX_START; xx < XX_STOP; xx++) {\n const dx = Math.abs(CENTER_X - xx) / RATIO_W_HALF;\n const w = Math.sqrt(w0 + dx * dx);\n if (w >= 1) {\n // pixel too far\n continue;\n }\n // hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n const POS_X = 4 * (xx + yy * WIDTH_SOURCE);\n // alpha\n GX_A += weight * data[POS_X + 3];\n WEIGHTS_ALPHA += weight;\n // colors\n if (data[POS_X + 3] < 255) {\n weight = (weight * data[POS_X + 3]) / 250;\n }\n GX_R += weight * data[POS_X];\n GX_G += weight * data[POS_X + 1];\n GX_B += weight * data[POS_X + 2];\n weights += weight;\n }\n }\n data2[x2] = GX_R / weights;\n data2[x2 + 1] = GX_G / weights;\n data2[x2 + 2] = GX_B / weights;\n data2[x2 + 3] = GX_A / WEIGHTS_ALPHA;\n }\n }\n\n canvas.width = width;\n canvas.height = height;\n\n // draw\n ctx.putImageData(img2, 0, 0);\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function isDefined(value: any): boolean {\n return value !== undefined && value !== null;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nimport { ControlOption } from '@asoftwareworld/form-builder-pro/api';\n\nexport class ObjectUtils {\n public static keyPressNumbersWithDecimal(event: any): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (charCode !== 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {\n event.preventDefault();\n return false;\n }\n return true;\n }\n\n public static resetForm(formContainer: any[]): any[] {\n formContainer.forEach((control) => {\n control.value = '';\n if (control.controlType === 'select' || control.controlType === 'multi-select' || control.controlType === 'radio' || control.controlType === 'checkbox' || control.controlType === 'autocomplete') {\n control.options.forEach((option: ControlOption) => {\n option.isChecked = false;\n });\n }\n });\n this.resetChildControls(formContainer);\n return formContainer;\n }\n\n private static resetChildControls(formContainer: any[]): void {\n const columnControls = formContainer.filter((x) => x.controlType === 'columns');\n columnControls.forEach((control) => {\n control.columns.forEach((column: any) => {\n column.components.forEach((component: any) => {\n if (component.controlType === 'columns') {\n this.resetChildControls(column.components);\n } else {\n component.value = '';\n if (component.controlType === 'select' || component.controlType === 'multi-select' || component.controlType === 'radio' || component.controlType === 'checkbox' || component.controlType === 'autocomplete') {\n component.options.forEach((option: ControlOption) => {\n option.isChecked = false;\n });\n }\n }\n });\n });\n });\n }\n\n public static generateUUID(control: any): any {\n const id = this.UUID();\n if (control) {\n control.guid = control.guid ? control.guid : id;\n control.id = control.id ? control.id : id;\n }\n return control;\n }\n\n public static validateForm(formContainer: any[]): any {\n const data = formContainer.filter((x) => x.isRequired);\n let requiredControls: any[] = [];\n data.forEach((control) => {\n if (!control.value?.length) {\n requiredControls.push(control);\n }\n });\n this.validateFormChilds(formContainer, requiredControls);\n requiredControls = [...new Set(requiredControls.map((control) => control))];\n const labels = requiredControls.map((control) => control.label);\n return { isFormValid: labels.length ? false : true, labels };\n }\n\n private static validateFormChilds(formContainer: any[], requiredControls: any[]): void {\n const columnControls = formContainer.filter((x) => x.controlType === 'columns');\n columnControls.forEach((control) => {\n control.columns.forEach((column: any) => {\n column.components.forEach((component: any) => {\n if (component.controlType === 'columns') {\n this.validateFormChilds(column.components, requiredControls);\n }\n if (component.isRequired && !component.value?.length) {\n requiredControls.push(component);\n }\n });\n });\n });\n }\n\n public static calculateValue(operations: any[]): number {\n if (operations.length) {\n let sum = Number(operations[0].value);\n operations.forEach((operation: any, index: number) => {\n if (index !== 0) {\n switch (operation.operationValue) {\n case '+':\n sum += Number(operation.value);\n break;\n case '-':\n sum -= operation.value;\n break;\n case '*':\n sum *= operation.value;\n break;\n case '/':\n sum /= operation.value;\n break;\n case 'x̄':\n sum /= index;\n break;\n }\n }\n });\n return sum;\n }\n return 0;\n }\n\n public static missingOrEmpty<T>(value?: T[] | string | null): boolean {\n return value == null || value.length === 0;\n }\n\n public static exists(value: any, allowEmptyString = false): boolean {\n return value != null && (value !== '' || allowEmptyString);\n }\n\n static stringToUtf8Arr(sDOMStr: string): Uint8Array {\n let nChr;\n let nArrLen = 0;\n const nStrLen = sDOMStr.length;\n /* mapping... */\n for (let nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\n nChr = sDOMStr.charCodeAt(nMapIdx);\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\n }\n\n const aBytes = new Uint8Array(nArrLen);\n\n /* transcription... */\n\n for (let nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\n nChr = sDOMStr.charCodeAt(nChrIdx);\n if (nChr < 128) {\n /* one byte */\n aBytes[nIdx++] = nChr;\n } else if (nChr < 0x800) {\n /* two bytes */\n aBytes[nIdx++] = 192 + (nChr >>> 6);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x10000) {\n /* three bytes */\n aBytes[nIdx++] = 224 + (nChr >>> 12);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x200000) {\n /* four bytes */\n aBytes[nIdx++] = 240 + (nChr >>> 18);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x4000000) {\n /* five bytes */\n aBytes[nIdx++] = 248 + (nChr >>> 24);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } /* if (nChr <= 0x7fffffff) */ else {\n /* six bytes */\n aBytes[nIdx++] = 252 + (nChr >>> 30);\n aBytes[nIdx++] = 128 + ((nChr >>> 24) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);\n aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n }\n }\n\n return aBytes;\n }\n\n /**\n * Converst string to ArrayBuffer\n */\n static stringToArrayBuffer(dataString: string): ArrayBuffer {\n const data = new ArrayBuffer(dataString.length);\n const dataView = new Uint8Array(data);\n for (let i = 0; i < dataString.length; i++) {\n dataView[i] = dataString.charCodeAt(i);\n }\n return data;\n }\n\n /**\n * Converts Uint8Array to a string\n */\n static utf8ArrToString(aBytes: Uint8Array): string {\n let sView = '';\n for (let nPart, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\n nPart = aBytes[nIdx];\n sView += String.fromCharCode(\n nPart > 251 && nPart < 254 && nIdx + 5 < nLen\n ? /* six bytes */\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\n (nPart - 252) * 1073741824 + ((aBytes[++nIdx] - 128) << 24) + ((aBytes[++nIdx] - 128) << 18) + ((aBytes[++nIdx] - 128) << 12) + ((aBytes[++nIdx] - 128) << 6) + aBytes[++nIdx] - 128\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen\n ? /* five bytes */\n ((nPart - 248) << 24) + ((aBytes[++nIdx] - 128) << 18) + ((aBytes[++nIdx] - 128) << 12) + ((aBytes[++nIdx] - 128) << 6) + aBytes[++nIdx] - 128\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen\n ? /* four bytes */\n ((nPart - 240) << 18) + ((aBytes[++nIdx] - 128) << 12) + ((aBytes[++nIdx] - 128) << 6) + aBytes[++nIdx] - 128\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen /* three bytes */\n ? ((nPart - 224) << 12) + ((aBytes[++nIdx] - 128) << 6) + aBytes[++nIdx] - 128\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen /* two bytes */\n ? ((nPart - 192) << 6) + aBytes[++nIdx] - 128\n : /* nPart < 127 ? */ /* one byte */\n nPart\n );\n }\n return sView;\n }\n\n /**\n * Returns stringified jwk.\n */\n static getSortedObjectString(obj: object): string {\n return JSON.stringify(obj, Object.keys(obj).sort());\n }\n\n static findDeviceSize(containerWidth: number): number {\n if (containerWidth >= 1400) {\n return 0.375;\n } else if (containerWidth >= 1200) {\n return 0.775;\n } else if (containerWidth >= 992) {\n return 0.775;\n } else if (containerWidth >= 768) {\n return 0.775;\n } else if (containerWidth >= 576) {\n return 0.775;\n } else if (containerWidth < 576) {\n return 0.775;\n } else {\n return 0.775;\n }\n }\n\n public static UUID(): string {\n if (typeof window !== 'undefined' && typeof window.crypto !== 'undefined' && typeof window.crypto.getRandomValues !== 'undefined') {\n // If we have a cryptographically secure PRNG, use that\n // http://stackoverflow.com/questions/6906916/collisions-when-generating-uuids-in-javascript\n const buf: Uint16Array = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return this.pad4(buf[0]) + this.pad4(buf[1]) + '-' + this.pad4(buf[2]) + '-' + this.pad4(buf[3]) + '-' + this.pad4(buf[4]) + '-' + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]);\n } else {\n // Otherwise, just use Math.random\n // https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n // https://stackoverflow.com/questions/11605068/why-does-jshint-argue-against-bitwise-operators-how-should-i-express-this-code\n return this.random4() + this.random4() + '-' + this.random4() + '-' + this.random4() + '-' + this.random4() + '-' + this.random4() + this.random4() + this.random4();\n }\n }\n\n private static pad4(num: number): string {\n let ret: string = num.toString(16);\n while (ret.length < 4) {\n ret = '0' + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport function equals(o1: any, o2: any): boolean {\n if (o1 === o2) {\n return true;\n }\n if (o1 === null || o2 === null) {\n return false;\n }\n if (o1 !== o1 && o2 !== o2) {\n return true;\n } // NaN === NaN\n\n const t1 = typeof o1;\n const t2 = typeof o2;\n let length: number;\n let key: any;\n let keySet: any;\n if (t1 === t2 && t1 === 'object') {\n if (Array.isArray(o1)) {\n if (!Array.isArray(o2)) {\n return false;\n }\n const val = (length = o1.length);\n if (val === o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key])) {\n return false;\n }\n }\n return true;\n }\n } else {\n if (Array.isArray(o2)) {\n return false;\n }\n keySet = Object.create(null);\n // tslint:disable-next-line:forin\n for (key in o1) {\n if (!equals(o1[key], o2[key])) {\n return false;\n }\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) && typeof o2[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n}\n\nexport function isObject(item: any): boolean {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function mergeDeep(target: any, source: any): any {\n const output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key: any) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n } else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n } else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n}\n","/**\n * @license\n * Copyright ASW (A Software World) All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file\n */\n\nexport * from './image-crop/blob.utils';\nexport * from './image-crop/exif.utils';\nexport * from './image-crop/hammer.utils';\nexport * from './image-crop/keyboard.utils';\nexport * from './image-crop/percentage.utils';\nexport * from './image-crop/resize.utils';\nexport * from './defined-utils';\nexport * from './objectutils';\nexport * from './translate-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}