@bbn/bbn 1.0.59 → 1.0.60
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/_.js +1 -1
- package/dist/bundle.d.ts +3804 -242
- package/dist/bundle.js +4061 -502
- package/dist/db.js +3 -3
- package/dist/fn/ajax/_addLoader.d.ts +16 -0
- package/dist/fn/ajax/_addLoader.js +51 -0
- package/dist/fn/ajax/_deleteLoader.d.ts +16 -0
- package/dist/fn/ajax/_deleteLoader.js +39 -0
- package/dist/fn/ajax/abort.d.ts +24 -0
- package/dist/fn/ajax/abort.js +36 -0
- package/dist/fn/ajax/abortURL.d.ts +22 -0
- package/dist/fn/ajax/abortURL.js +33 -0
- package/dist/fn/ajax/ajax.d.ts +58 -0
- package/dist/fn/ajax/ajax.js +170 -0
- package/dist/fn/ajax/callback.d.ts +37 -0
- package/dist/fn/ajax/callback.js +117 -0
- package/dist/fn/ajax/download.d.ts +30 -0
- package/dist/fn/ajax/download.js +64 -0
- package/dist/fn/ajax/downloadContent.d.ts +28 -0
- package/dist/fn/ajax/downloadContent.js +74 -0
- package/dist/fn/ajax/getLoader.d.ts +37 -0
- package/dist/fn/ajax/getLoader.js +44 -0
- package/dist/fn/ajax/getRequestId.d.ts +50 -0
- package/dist/fn/ajax/getRequestId.js +62 -0
- package/dist/fn/ajax/link.d.ts +26 -0
- package/dist/fn/ajax/link.js +129 -0
- package/dist/fn/ajax/post.d.ts +35 -0
- package/dist/fn/ajax/post.js +45 -0
- package/dist/fn/ajax/postOut.d.ts +21 -0
- package/dist/fn/ajax/postOut.js +49 -0
- package/dist/fn/ajax/setNavigationVars.d.ts +25 -0
- package/dist/fn/ajax/setNavigationVars.js +80 -0
- package/dist/fn/ajax/treatAjaxArguments.d.ts +53 -0
- package/dist/fn/ajax/treatAjaxArguments.js +127 -0
- package/dist/fn/ajax/upload.d.ts +18 -0
- package/dist/fn/ajax/upload.js +52 -0
- package/dist/fn/browser/copy.d.ts +15 -0
- package/dist/fn/browser/copy.js +50 -0
- package/dist/fn/browser/eraseCookie.d.ts +15 -0
- package/dist/fn/browser/eraseCookie.js +17 -0
- package/dist/fn/browser/error.d.ts +14 -0
- package/dist/fn/browser/error.js +29 -0
- package/dist/fn/browser/getBrowserName.d.ts +9 -0
- package/dist/fn/browser/getBrowserName.js +28 -0
- package/dist/fn/browser/getBrowserVersion.d.ts +9 -0
- package/dist/fn/browser/getBrowserVersion.js +29 -0
- package/dist/fn/browser/getCookie.d.ts +16 -0
- package/dist/fn/browser/getCookie.js +32 -0
- package/dist/fn/browser/getDeviceType.d.ts +14 -0
- package/dist/fn/browser/getDeviceType.js +23 -0
- package/dist/fn/browser/getEventData.d.ts +16 -0
- package/dist/fn/browser/getEventData.js +116 -0
- package/dist/fn/browser/happy.d.ts +14 -0
- package/dist/fn/browser/happy.js +22 -0
- package/dist/fn/browser/history.d.ts +2 -0
- package/dist/fn/browser/history.js +4 -0
- package/dist/fn/browser/info.d.ts +10 -0
- package/dist/fn/browser/info.js +19 -0
- package/dist/fn/browser/isActiveInterface.d.ts +14 -0
- package/dist/fn/browser/isActiveInterface.js +20 -0
- package/dist/fn/browser/isDesktopDevice.d.ts +14 -0
- package/dist/fn/browser/isDesktopDevice.js +17 -0
- package/dist/fn/browser/isFocused.d.ts +21 -0
- package/dist/fn/browser/isFocused.js +23 -0
- package/dist/fn/browser/isMobile.d.ts +14 -0
- package/dist/fn/browser/isMobile.js +18 -0
- package/dist/fn/browser/isMobileDevice.d.ts +2 -0
- package/dist/fn/browser/isMobileDevice.js +5 -0
- package/dist/fn/browser/isTabletDevice.d.ts +14 -0
- package/dist/fn/browser/isTabletDevice.js +17 -0
- package/dist/fn/browser/log.d.ts +15 -0
- package/dist/fn/browser/log.js +46 -0
- package/dist/fn/browser/replaceSelection.d.ts +2 -0
- package/dist/fn/browser/replaceSelection.js +42 -0
- package/dist/fn/browser/selectElementText.d.ts +21 -0
- package/dist/fn/browser/selectElementText.js +42 -0
- package/dist/fn/browser/setCookie.d.ts +16 -0
- package/dist/fn/browser/setCookie.js +25 -0
- package/dist/fn/browser/toggleFullScreen.d.ts +2 -0
- package/dist/fn/browser/toggleFullScreen.js +39 -0
- package/dist/fn/browser/warning.d.ts +14 -0
- package/dist/fn/browser/warning.js +24 -0
- package/dist/fn/convert/arrayBuffer2String.d.ts +2 -0
- package/dist/fn/convert/arrayBuffer2String.js +4 -0
- package/dist/fn/convert/canvasToImage.d.ts +16 -0
- package/dist/fn/convert/canvasToImage.js +20 -0
- package/dist/fn/convert/colorToHex.d.ts +20 -0
- package/dist/fn/convert/colorToHex.js +24 -0
- package/dist/fn/convert/fromXml.d.ts +12 -0
- package/dist/fn/convert/fromXml.js +54 -0
- package/dist/fn/convert/hex2rgb.d.ts +24 -0
- package/dist/fn/convert/hex2rgb.js +29 -0
- package/dist/fn/convert/imageToCanvas.d.ts +15 -0
- package/dist/fn/convert/imageToCanvas.js +21 -0
- package/dist/fn/convert/imgToBase64.d.ts +2 -0
- package/dist/fn/convert/imgToBase64.js +7 -0
- package/dist/fn/convert/rgb2hex.d.ts +20 -0
- package/dist/fn/convert/rgb2hex.js +28 -0
- package/dist/fn/convert/string2ArrayBuffer.d.ts +2 -0
- package/dist/fn/convert/string2ArrayBuffer.js +9 -0
- package/dist/fn/convert/toCSV.d.ts +26 -0
- package/dist/fn/convert/toCSV.js +64 -0
- package/dist/fn/datetime/calendar.d.ts +2 -0
- package/dist/fn/datetime/calendar.js +23 -0
- package/dist/fn/datetime/chrono.d.ts +25 -0
- package/dist/fn/datetime/chrono.js +45 -0
- package/dist/fn/datetime/date.d.ts +18 -0
- package/dist/fn/datetime/date.js +44 -0
- package/dist/fn/datetime/dateSQL.d.ts +20 -0
- package/dist/fn/datetime/dateSQL.js +26 -0
- package/dist/fn/datetime/daysInMonth.d.ts +17 -0
- package/dist/fn/datetime/daysInMonth.js +24 -0
- package/dist/fn/datetime/fdate.d.ts +11 -0
- package/dist/fn/datetime/fdate.js +28 -0
- package/dist/fn/datetime/fdatetime.d.ts +9 -0
- package/dist/fn/datetime/fdatetime.js +30 -0
- package/dist/fn/datetime/formatDate.d.ts +2 -0
- package/dist/fn/datetime/formatDate.js +4 -0
- package/dist/fn/datetime/ftime.d.ts +9 -0
- package/dist/fn/datetime/ftime.js +21 -0
- package/dist/fn/datetime/getDay.d.ts +11 -0
- package/dist/fn/datetime/getDay.js +26 -0
- package/dist/fn/datetime/timestamp.d.ts +15 -0
- package/dist/fn/datetime/timestamp.js +18 -0
- package/dist/fn/default/defaultAjaxAbortFunction.d.ts +2 -0
- package/dist/fn/default/defaultAjaxAbortFunction.js +5 -0
- package/dist/fn/default/defaultAjaxErrorFunction.d.ts +2 -0
- package/dist/fn/default/defaultAjaxErrorFunction.js +4 -0
- package/dist/fn/default/defaultAlertFunction.d.ts +2 -0
- package/dist/fn/default/defaultAlertFunction.js +5 -0
- package/dist/fn/default/defaultConfirmFunction.d.ts +2 -0
- package/dist/fn/default/defaultConfirmFunction.js +14 -0
- package/dist/fn/default/defaultEndLoadingFunction.d.ts +2 -0
- package/dist/fn/default/defaultEndLoadingFunction.js +4 -0
- package/dist/fn/default/defaultErrorFunction.d.ts +2 -0
- package/dist/fn/default/defaultErrorFunction.js +5 -0
- package/dist/fn/default/defaultHistoryFunction.d.ts +2 -0
- package/dist/fn/default/defaultHistoryFunction.js +4 -0
- package/dist/fn/default/defaultLinkFunction.d.ts +2 -0
- package/dist/fn/default/defaultLinkFunction.js +4 -0
- package/dist/fn/default/defaultPostLinkFunction.d.ts +2 -0
- package/dist/fn/default/defaultPostLinkFunction.js +4 -0
- package/dist/fn/default/defaultPreLinkFunction.d.ts +2 -0
- package/dist/fn/default/defaultPreLinkFunction.js +4 -0
- package/dist/fn/default/defaultResizeFunction.d.ts +2 -0
- package/dist/fn/default/defaultResizeFunction.js +4 -0
- package/dist/fn/default/defaultStartLoadingFunction.d.ts +2 -0
- package/dist/fn/default/defaultStartLoadingFunction.js +4 -0
- package/dist/fn/form/addInputs.d.ts +43 -0
- package/dist/fn/form/addInputs.js +81 -0
- package/dist/fn/form/fieldValue.d.ts +12 -0
- package/dist/fn/form/fieldValue.js +34 -0
- package/dist/fn/form/formdata.d.ts +45 -0
- package/dist/fn/form/formdata.js +95 -0
- package/dist/fn/form/objectToFormData.d.ts +12 -0
- package/dist/fn/form/objectToFormData.js +45 -0
- package/dist/fn/form/submit.d.ts +20 -0
- package/dist/fn/form/submit.js +51 -0
- package/dist/fn/html/adjustHeight.d.ts +2 -0
- package/dist/fn/html/adjustHeight.js +10 -0
- package/dist/fn/html/adjustSize.d.ts +2 -0
- package/dist/fn/html/adjustSize.js +21 -0
- package/dist/fn/html/adjustWidth.d.ts +2 -0
- package/dist/fn/html/adjustWidth.js +10 -0
- package/dist/fn/html/getAllTags.d.ts +6 -0
- package/dist/fn/html/getAllTags.js +9 -0
- package/dist/fn/html/getAncestors.d.ts +2 -0
- package/dist/fn/html/getAncestors.js +25 -0
- package/dist/fn/html/getAttributes.d.ts +6 -0
- package/dist/fn/html/getAttributes.js +16 -0
- package/dist/fn/html/getHTMLOfSelection.d.ts +2 -0
- package/dist/fn/html/getHTMLOfSelection.js +18 -0
- package/dist/fn/html/getHtml.d.ts +2 -0
- package/dist/fn/html/getHtml.js +9 -0
- package/dist/fn/html/getPath.d.ts +10 -0
- package/dist/fn/html/getPath.js +50 -0
- package/dist/fn/html/getText.d.ts +2 -0
- package/dist/fn/html/getText.js +4 -0
- package/dist/fn/html/html2text.d.ts +17 -0
- package/dist/fn/html/html2text.js +22 -0
- package/dist/fn/html/isInside.d.ts +2 -0
- package/dist/fn/html/isInside.js +23 -0
- package/dist/fn/html/makeReactive.d.ts +2 -0
- package/dist/fn/html/makeReactive.js +185 -0
- package/dist/fn/html/selector.d.ts +10 -0
- package/dist/fn/html/selector.js +12 -0
- package/dist/fn/init.d.ts +13 -0
- package/dist/fn/init.js +25 -12
- package/dist/fn/loop/each.d.ts +33 -0
- package/dist/fn/loop/each.js +54 -0
- package/dist/fn/loop/fori.d.ts +36 -0
- package/dist/fn/loop/fori.js +53 -0
- package/dist/fn/loop/forir.d.ts +36 -0
- package/dist/fn/loop/forir.js +53 -0
- package/dist/fn/loop/iterate.d.ts +22 -0
- package/dist/fn/loop/iterate.js +36 -0
- package/dist/fn/loop/riterate.d.ts +21 -0
- package/dist/fn/loop/riterate.js +24 -0
- package/dist/fn/misc/analyzeFunction.d.ts +11 -0
- package/dist/fn/misc/analyzeFunction.js +141 -0
- package/dist/fn/misc/getTimeoff.d.ts +14 -0
- package/dist/fn/misc/getTimeoff.js +19 -0
- package/dist/fn/misc/money.d.ts +23 -0
- package/dist/fn/misc/money.js +122 -0
- package/dist/fn/misc/percent.d.ts +23 -0
- package/dist/fn/misc/percent.js +25 -0
- package/dist/fn/misc/randomInt.d.ts +22 -0
- package/dist/fn/misc/randomInt.js +24 -0
- package/dist/fn/misc/roundDecimal.d.ts +11 -0
- package/dist/fn/misc/roundDecimal.js +13 -0
- package/dist/fn/misc/translate.d.ts +2 -0
- package/dist/fn/misc/translate.js +8 -0
- package/dist/fn/object/_compareValues.d.ts +40 -0
- package/dist/fn/object/_compareValues.js +78 -0
- package/dist/fn/object/arrayFromProp.d.ts +33 -0
- package/dist/fn/object/arrayFromProp.js +41 -0
- package/dist/fn/object/autoExtend.d.ts +33 -0
- package/dist/fn/object/autoExtend.js +44 -0
- package/dist/fn/object/checkProps.d.ts +2 -0
- package/dist/fn/object/checkProps.js +5 -0
- package/dist/fn/object/checkPropsDetails.d.ts +2 -0
- package/dist/fn/object/checkPropsDetails.js +53 -0
- package/dist/fn/object/checkPropsOrDie.d.ts +2 -0
- package/dist/fn/object/checkPropsOrDie.js +9 -0
- package/dist/fn/object/circularReplacer.d.ts +7 -0
- package/dist/fn/object/circularReplacer.js +39 -0
- package/dist/fn/object/clone.d.ts +19 -0
- package/dist/fn/object/clone.js +33 -0
- package/dist/fn/object/compare.d.ts +53 -0
- package/dist/fn/object/compare.js +150 -0
- package/dist/fn/object/compareConditions.d.ts +46 -0
- package/dist/fn/object/compareConditions.js +86 -0
- package/dist/fn/object/count.d.ts +56 -0
- package/dist/fn/object/count.js +59 -0
- package/dist/fn/object/createObject.d.ts +2 -0
- package/dist/fn/object/createObject.js +9 -0
- package/dist/fn/object/deepPath.d.ts +57 -0
- package/dist/fn/object/deepPath.js +78 -0
- package/dist/fn/object/deleteProp.d.ts +8 -0
- package/dist/fn/object/deleteProp.js +13 -0
- package/dist/fn/object/diffObj.d.ts +79 -0
- package/dist/fn/object/diffObj.js +168 -0
- package/dist/fn/object/extend.d.ts +87 -0
- package/dist/fn/object/extend.js +158 -0
- package/dist/fn/object/extendOut.d.ts +18 -0
- package/dist/fn/object/extendOut.js +40 -0
- package/dist/fn/object/filter.d.ts +50 -0
- package/dist/fn/object/filter.js +94 -0
- package/dist/fn/object/filterToConditions.d.ts +48 -0
- package/dist/fn/object/filterToConditions.js +68 -0
- package/dist/fn/object/findAll.d.ts +57 -0
- package/dist/fn/object/findAll.js +73 -0
- package/dist/fn/object/getField.d.ts +30 -0
- package/dist/fn/object/getField.js +37 -0
- package/dist/fn/object/getFieldValues.d.ts +30 -0
- package/dist/fn/object/getFieldValues.js +41 -0
- package/dist/fn/object/getProp.d.ts +8 -0
- package/dist/fn/object/getProp.js +13 -0
- package/dist/fn/object/getProperty.d.ts +30 -0
- package/dist/fn/object/getProperty.js +39 -0
- package/dist/fn/object/getRow.d.ts +42 -0
- package/dist/fn/object/getRow.js +49 -0
- package/dist/fn/object/map.d.ts +74 -0
- package/dist/fn/object/map.js +83 -0
- package/dist/fn/object/move.d.ts +34 -0
- package/dist/fn/object/move.js +43 -0
- package/dist/fn/object/multiorder.d.ts +40 -0
- package/dist/fn/object/multiorder.js +60 -0
- package/dist/fn/object/numProperties.d.ts +31 -0
- package/dist/fn/object/numProperties.js +36 -0
- package/dist/fn/object/order.d.ts +28 -0
- package/dist/fn/object/order.js +36 -0
- package/dist/fn/object/pickValue.d.ts +2 -0
- package/dist/fn/object/pickValue.js +6 -0
- package/dist/fn/object/removeEmpty.d.ts +18 -0
- package/dist/fn/object/removeEmpty.js +47 -0
- package/dist/fn/object/removePrivateProp.d.ts +24 -0
- package/dist/fn/object/removePrivateProp.js +41 -0
- package/dist/fn/object/search.d.ts +101 -0
- package/dist/fn/object/search.js +177 -0
- package/dist/fn/object/setProp.d.ts +11 -0
- package/dist/fn/object/setProp.js +17 -0
- package/dist/fn/object/setProperty.d.ts +30 -0
- package/dist/fn/object/setProperty.js +50 -0
- package/dist/fn/object/shortenObj.d.ts +25 -0
- package/dist/fn/object/shortenObj.js +40 -0
- package/dist/fn/object/shuffle.d.ts +2 -0
- package/dist/fn/object/shuffle.js +13 -0
- package/dist/fn/object/stat.d.ts +2 -0
- package/dist/fn/object/stat.js +49 -0
- package/dist/fn/object/sum.d.ts +46 -0
- package/dist/fn/object/sum.js +57 -0
- package/dist/fn/object/unique.d.ts +18 -0
- package/dist/fn/object/unique.js +22 -0
- package/dist/fn/string/baseName.d.ts +24 -0
- package/dist/fn/string/baseName.js +39 -0
- package/dist/fn/string/br2nl.d.ts +19 -0
- package/dist/fn/string/br2nl.js +22 -0
- package/dist/fn/string/camelToCss.d.ts +18 -0
- package/dist/fn/string/camelToCss.js +26 -0
- package/dist/fn/string/camelize.d.ts +20 -0
- package/dist/fn/string/camelize.js +27 -0
- package/dist/fn/string/correctCase.d.ts +18 -0
- package/dist/fn/string/correctCase.js +20 -0
- package/dist/fn/string/crc32.d.ts +2 -0
- package/dist/fn/string/crc32.js +20 -0
- package/dist/fn/string/dirName.d.ts +17 -0
- package/dist/fn/string/dirName.js +33 -0
- package/dist/fn/string/escapeDquotes.d.ts +2 -0
- package/dist/fn/string/escapeDquotes.js +8 -0
- package/dist/fn/string/escapeRegExp.d.ts +19 -0
- package/dist/fn/string/escapeRegExp.js +21 -0
- package/dist/fn/string/escapeSquotes.d.ts +2 -0
- package/dist/fn/string/escapeSquotes.js +8 -0
- package/dist/fn/string/escapeTicks.d.ts +2 -0
- package/dist/fn/string/escapeTicks.js +8 -0
- package/dist/fn/string/escapeUrl.d.ts +9 -0
- package/dist/fn/string/escapeUrl.js +47 -0
- package/dist/fn/string/fileExt.d.ts +38 -0
- package/dist/fn/string/fileExt.js +47 -0
- package/dist/fn/string/format.d.ts +2 -0
- package/dist/fn/string/format.js +14 -0
- package/dist/fn/string/formatBytes.d.ts +14 -0
- package/dist/fn/string/formatBytes.js +20 -0
- package/dist/fn/string/formatSize.d.ts +2 -0
- package/dist/fn/string/formatSize.js +12 -0
- package/dist/fn/string/hash.d.ts +7 -0
- package/dist/fn/string/hash.js +42 -0
- package/dist/fn/string/md5.d.ts +22 -0
- package/dist/fn/string/md5.js +142 -0
- package/dist/fn/string/nl2br.d.ts +17 -0
- package/dist/fn/string/nl2br.js +20 -0
- package/dist/fn/string/printf.d.ts +10 -0
- package/dist/fn/string/printf.js +15 -0
- package/dist/fn/string/quotes2html.d.ts +30 -0
- package/dist/fn/string/quotes2html.js +39 -0
- package/dist/fn/string/randomString.d.ts +28 -0
- package/dist/fn/string/randomString.js +72 -0
- package/dist/fn/string/removeAccents.d.ts +17 -0
- package/dist/fn/string/removeAccents.js +30 -0
- package/dist/fn/string/removeExtraSpaces.d.ts +7 -0
- package/dist/fn/string/removeExtraSpaces.js +9 -0
- package/dist/fn/string/removeHtmlComments.d.ts +2 -0
- package/dist/fn/string/removeHtmlComments.js +8 -0
- package/dist/fn/string/removeTrailingChars.d.ts +11 -0
- package/dist/fn/string/removeTrailingChars.js +25 -0
- package/dist/fn/string/repeat.d.ts +16 -0
- package/dist/fn/string/repeat.js +18 -0
- package/dist/fn/string/replaceAll.d.ts +23 -0
- package/dist/fn/string/replaceAll.js +29 -0
- package/dist/fn/string/sanitize.d.ts +17 -0
- package/dist/fn/string/sanitize.js +34 -0
- package/dist/fn/string/shorten.d.ts +27 -0
- package/dist/fn/string/shorten.js +42 -0
- package/dist/fn/string/simpleHash.d.ts +2 -0
- package/dist/fn/string/simpleHash.js +8 -0
- package/dist/fn/string/simpleHash1.d.ts +2 -0
- package/dist/fn/string/simpleHash1.js +10 -0
- package/dist/fn/string/simpleHash2.d.ts +2 -0
- package/dist/fn/string/simpleHash2.js +10 -0
- package/dist/fn/string/substr.d.ts +23 -0
- package/dist/fn/string/substr.js +38 -0
- package/dist/fn/string/trim.d.ts +2 -0
- package/dist/fn/string/trim.js +20 -0
- package/dist/fn/string/uniqString.d.ts +18 -0
- package/dist/fn/string/uniqString.js +49 -0
- package/dist/fn/style/addColors.d.ts +17 -0
- package/dist/fn/style/addColors.js +76 -0
- package/dist/fn/style/addStyle.d.ts +12 -0
- package/dist/fn/style/addStyle.js +20 -0
- package/dist/fn/style/animateCss.d.ts +13 -0
- package/dist/fn/style/animateCss.js +31 -0
- package/dist/fn/style/center.d.ts +16 -0
- package/dist/fn/style/center.js +40 -0
- package/dist/fn/style/cssExists.d.ts +12 -0
- package/dist/fn/style/cssExists.js +40 -0
- package/dist/fn/style/getCssVar.d.ts +7 -0
- package/dist/fn/style/getCssVar.js +12 -0
- package/dist/fn/style/getScrollBarSize.d.ts +2 -0
- package/dist/fn/style/getScrollBarSize.js +25 -0
- package/dist/fn/style/lightenDarkenHex.d.ts +20 -0
- package/dist/fn/style/lightenDarkenHex.js +45 -0
- package/dist/fn/style/outerHeight.d.ts +11 -0
- package/dist/fn/style/outerHeight.js +19 -0
- package/dist/fn/style/outerWidth.d.ts +10 -0
- package/dist/fn/style/outerWidth.js +16 -0
- package/dist/fn/style/resize.d.ts +2 -0
- package/dist/fn/style/resize.js +39 -0
- package/dist/fn/style/setCssVar.d.ts +8 -0
- package/dist/fn/style/setCssVar.js +14 -0
- package/dist/fn/type/checkType.d.ts +2 -0
- package/dist/fn/type/checkType.js +59 -0
- package/dist/fn/type/isArray.d.ts +14 -0
- package/dist/fn/type/isArray.js +23 -0
- package/dist/fn/type/isBlob.d.ts +9 -0
- package/dist/fn/type/isBlob.js +18 -0
- package/dist/fn/type/isBoolean.d.ts +16 -0
- package/dist/fn/type/isBoolean.js +25 -0
- package/dist/fn/type/isCanvas.d.ts +16 -0
- package/dist/fn/type/isCanvas.js +25 -0
- package/dist/fn/type/isColor.d.ts +31 -0
- package/dist/fn/type/isColor.js +45 -0
- package/dist/fn/type/isComment.d.ts +14 -0
- package/dist/fn/type/isComment.js +23 -0
- package/dist/fn/type/isCp.d.ts +2 -0
- package/dist/fn/type/isCp.js +17 -0
- package/dist/fn/type/isDate.d.ts +20 -0
- package/dist/fn/type/isDate.js +29 -0
- package/dist/fn/type/isDimension.d.ts +11 -0
- package/dist/fn/type/isDimension.js +24 -0
- package/dist/fn/type/isDom.d.ts +14 -0
- package/dist/fn/type/isDom.js +23 -0
- package/dist/fn/type/isEmail.d.ts +23 -0
- package/dist/fn/type/isEmail.js +37 -0
- package/dist/fn/type/isEmpty.d.ts +41 -0
- package/dist/fn/type/isEmpty.js +57 -0
- package/dist/fn/type/isEvent.d.ts +9 -0
- package/dist/fn/type/isEvent.js +18 -0
- package/dist/fn/type/isFunction.d.ts +16 -0
- package/dist/fn/type/isFunction.js +25 -0
- package/dist/fn/type/isHostname.d.ts +2 -0
- package/dist/fn/type/isHostname.js +16 -0
- package/dist/fn/type/isIP.d.ts +2 -0
- package/dist/fn/type/isIP.js +12 -0
- package/dist/fn/type/isInt.d.ts +18 -0
- package/dist/fn/type/isInt.js +27 -0
- package/dist/fn/type/isIterable.d.ts +27 -0
- package/dist/fn/type/isIterable.js +37 -0
- package/dist/fn/type/isNull.d.ts +14 -0
- package/dist/fn/type/isNull.js +23 -0
- package/dist/fn/type/isNumber.d.ts +19 -0
- package/dist/fn/type/isNumber.js +30 -0
- package/dist/fn/type/isObject.d.ts +19 -0
- package/dist/fn/type/isObject.js +28 -0
- package/dist/fn/type/isPercent.d.ts +14 -0
- package/dist/fn/type/isPercent.js +23 -0
- package/dist/fn/type/isPrimitive.d.ts +18 -0
- package/dist/fn/type/isPrimitive.js +27 -0
- package/dist/fn/type/isPromise.d.ts +18 -0
- package/dist/fn/type/isPromise.js +27 -0
- package/dist/fn/type/isPropSize.d.ts +2 -0
- package/dist/fn/type/isPropSize.js +12 -0
- package/dist/fn/type/isSQLDate.d.ts +10 -0
- package/dist/fn/type/isSQLDate.js +20 -0
- package/dist/fn/type/isSame.d.ts +41 -0
- package/dist/fn/type/isSame.js +72 -0
- package/dist/fn/type/isString.d.ts +14 -0
- package/dist/fn/type/isString.js +23 -0
- package/dist/fn/type/isSymbol.d.ts +15 -0
- package/dist/fn/type/isSymbol.js +24 -0
- package/dist/fn/type/isURL.d.ts +2 -0
- package/dist/fn/type/isURL.js +11 -0
- package/dist/fn/type/isValidDimension.d.ts +11 -0
- package/dist/fn/type/isValidDimension.js +24 -0
- package/dist/fn/type/isValidName.d.ts +27 -0
- package/dist/fn/type/isValidName.js +38 -0
- package/dist/fn/type/isValue.d.ts +26 -0
- package/dist/fn/type/isValue.js +36 -0
- package/dist/fn/type/isVue.d.ts +16 -0
- package/dist/fn/type/isVue.js +42 -0
- package/dist/fn.d.ts +4 -5
- package/dist/fn.js +226 -228
- package/package.json +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { extend } from "./extend";
|
|
2
|
+
/**
|
|
3
|
+
* Extends the bbn object by passing the namespace and the object it will merge with.
|
|
4
|
+
*
|
|
5
|
+
* This function is a self-centric shortcut for adding functions or proerties
|
|
6
|
+
* to the bbn object itself.
|
|
7
|
+
*
|
|
8
|
+
* @method autoExtend
|
|
9
|
+
* @global
|
|
10
|
+
* @example
|
|
11
|
+
* ```javascript
|
|
12
|
+
* bbn.fn.autoExtend("fn", {myOwnFunction: () => "Result of my own function"});
|
|
13
|
+
* bbn.fn.myOwnFunction();
|
|
14
|
+
* // Result of my own function
|
|
15
|
+
* ```
|
|
16
|
+
* @example
|
|
17
|
+
* ```javascript
|
|
18
|
+
* bbn.fn.autoExtend("env", {serverLanguage: "php"});
|
|
19
|
+
* bbn.env.sercerLanguage
|
|
20
|
+
* // php
|
|
21
|
+
* ```
|
|
22
|
+
* @example
|
|
23
|
+
* ```javascript
|
|
24
|
+
* bbn.fn.autoExtend("myProject", {name: "My Project"});
|
|
25
|
+
* bbn.myProject.name
|
|
26
|
+
* // Project
|
|
27
|
+
* ```
|
|
28
|
+
* @memberof bbn.fn
|
|
29
|
+
* @param {String} namespace The bbn property, existing or not, in which the object will be merged
|
|
30
|
+
* @param {Object} obj The object to merge
|
|
31
|
+
* @returns {undefined} No return value
|
|
32
|
+
*/
|
|
33
|
+
const autoExtend = function (namespace, obj) {
|
|
34
|
+
if (!bbn[namespace]) {
|
|
35
|
+
bbn[namespace] = {};
|
|
36
|
+
//$.extend(true, bbn[namespace], obj);
|
|
37
|
+
extend(bbn[namespace], obj);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// $.extend(true, bbn[namespace], obj);
|
|
41
|
+
extend(bbn[namespace], obj);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
export { autoExtend };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { isArray } from "../type/isArray";
|
|
2
|
+
import { isObject } from "../type/isObject";
|
|
3
|
+
import { each } from "../loop/each";
|
|
4
|
+
import { substr } from "../string/substr";
|
|
5
|
+
const checkPropsDetails = function (obj, props, checkEmpty = false) {
|
|
6
|
+
let res = {
|
|
7
|
+
error: false,
|
|
8
|
+
result: true,
|
|
9
|
+
};
|
|
10
|
+
if (typeof props === "string") {
|
|
11
|
+
props = [props];
|
|
12
|
+
}
|
|
13
|
+
if (!isArray(props)) {
|
|
14
|
+
res.error = bbn._("checkProps must receive a string or an array as props argument");
|
|
15
|
+
}
|
|
16
|
+
if (!isObject(obj)) {
|
|
17
|
+
res.error = bbn._("checkProps must receive an object as obj argument");
|
|
18
|
+
}
|
|
19
|
+
if (!res.error) {
|
|
20
|
+
let check;
|
|
21
|
+
each(props, (varName) => {
|
|
22
|
+
varName = varName.trim().split(":");
|
|
23
|
+
let type = varName[1] || false;
|
|
24
|
+
varName = varName[0];
|
|
25
|
+
if (obj[varName] === undefined) {
|
|
26
|
+
res.error = varName + " " + bbn._("is not defined");
|
|
27
|
+
}
|
|
28
|
+
else if (type) {
|
|
29
|
+
check =
|
|
30
|
+
"is" +
|
|
31
|
+
substr(type, 0, 1).toUpperCase() +
|
|
32
|
+
substr(type, 1).toLowerCase();
|
|
33
|
+
if (bbn.fn[check] === undefined) {
|
|
34
|
+
res.error = type + " " + bbn._("is not a valid type");
|
|
35
|
+
}
|
|
36
|
+
else if (!bbn.fn[check](obj[varName])) {
|
|
37
|
+
res.error = varName + " " + bbn._("is not a") + " " + type;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (checkEmpty && !obj[varName]) {
|
|
41
|
+
res.error = varName + " " + bbn._("is empty");
|
|
42
|
+
}
|
|
43
|
+
if (res.error) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (res.error) {
|
|
49
|
+
res.result = false;
|
|
50
|
+
}
|
|
51
|
+
return res;
|
|
52
|
+
};
|
|
53
|
+
export { checkPropsDetails };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { checkPropsDetails } from "./checkPropsDetails";
|
|
2
|
+
const checkPropsOrDie = function (obj, props, checkEmpty = false) {
|
|
3
|
+
let res = checkPropsDetails(obj, props, checkEmpty);
|
|
4
|
+
if (res.error) {
|
|
5
|
+
throw new Error(res.error);
|
|
6
|
+
}
|
|
7
|
+
return true;
|
|
8
|
+
};
|
|
9
|
+
export { checkPropsOrDie };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isDom } from "../type/isDom";
|
|
2
|
+
import { isCp } from "../type/isCp";
|
|
3
|
+
import { log } from "../browser/log";
|
|
4
|
+
/**
|
|
5
|
+
* Returns a function to give to JSON.stringify in order to avoid circular values.
|
|
6
|
+
*
|
|
7
|
+
* @returns Function
|
|
8
|
+
*/
|
|
9
|
+
const circularReplacer = function () {
|
|
10
|
+
const visited = new WeakSet();
|
|
11
|
+
return (key, value) => {
|
|
12
|
+
if (typeof value === "object" && value !== null) {
|
|
13
|
+
if (visited.has(value)) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
visited.add(value);
|
|
17
|
+
if (![undefined, Object, Array, null].includes(value.constructor)) {
|
|
18
|
+
if (isDom(value)) {
|
|
19
|
+
if (value.bbnId) {
|
|
20
|
+
value =
|
|
21
|
+
"__BBN_DOM__" + value.tagName + "/" + value.bbnId + value.bbnHash;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
value = "__BBN_DOM__" + value.tagName + "/" + value.className;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else if (isCp(value)) {
|
|
28
|
+
log("IS CP");
|
|
29
|
+
value = "__BBN_CP__" + value.$options.name + "/" + value.$cid;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
value = value.constructor.toString();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export { circularReplacer };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates and returns a perfect clone - but different - from the given object.
|
|
3
|
+
*
|
|
4
|
+
* @method clone
|
|
5
|
+
* @global
|
|
6
|
+
* @example
|
|
7
|
+
* ```javascript
|
|
8
|
+
* let obj = {name: "Thomas"};
|
|
9
|
+
* let objCopy = bbn.fn.clone(obj);
|
|
10
|
+
* obj.name = "Julie";
|
|
11
|
+
* // obj: {name: "Julie"}
|
|
12
|
+
* // objCopy: {name: "Thomas"}
|
|
13
|
+
* ```
|
|
14
|
+
* @memberof bbn.fn
|
|
15
|
+
* @param {Object} obj The source object
|
|
16
|
+
* @returns {Object} A new object
|
|
17
|
+
*/
|
|
18
|
+
declare const clone: (obj: any) => any;
|
|
19
|
+
export { clone };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isArray } from "../type/isArray";
|
|
2
|
+
import { isObject } from "../type/isObject";
|
|
3
|
+
import { extend } from "./extend";
|
|
4
|
+
/**
|
|
5
|
+
* Creates and returns a perfect clone - but different - from the given object.
|
|
6
|
+
*
|
|
7
|
+
* @method clone
|
|
8
|
+
* @global
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* let obj = {name: "Thomas"};
|
|
12
|
+
* let objCopy = bbn.fn.clone(obj);
|
|
13
|
+
* obj.name = "Julie";
|
|
14
|
+
* // obj: {name: "Julie"}
|
|
15
|
+
* // objCopy: {name: "Thomas"}
|
|
16
|
+
* ```
|
|
17
|
+
* @memberof bbn.fn
|
|
18
|
+
* @param {Object} obj The source object
|
|
19
|
+
* @returns {Object} A new object
|
|
20
|
+
*/
|
|
21
|
+
const clone = function (obj) {
|
|
22
|
+
if (isArray(obj)) {
|
|
23
|
+
return obj.slice().map((a) => {
|
|
24
|
+
return typeof a === "object" ? clone(a) : a;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (isObject(obj)) {
|
|
28
|
+
const o = Object.create(Object.getPrototypeOf(obj));
|
|
29
|
+
return extend(true, o, obj);
|
|
30
|
+
}
|
|
31
|
+
return obj;
|
|
32
|
+
};
|
|
33
|
+
export { clone };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performs a comparison between two values based on the given operator and returns a boolean.
|
|
3
|
+
*
|
|
4
|
+
* It is internally used by all the filtering functions; the available operators are:
|
|
5
|
+
* - _===_, _=_, _equal_, _eq_, _is_, which stand for __===__
|
|
6
|
+
* - _!==_, _notequal_, _neq_, _isnot_, which stand for __!==__
|
|
7
|
+
* - _!=_, _different_, which stand for __!=__
|
|
8
|
+
* - _contains_, _contain_, _icontains_, _icontain_
|
|
9
|
+
* - _starts_, _start_
|
|
10
|
+
* - _startswith_, _startsi_, _starti_, _istarts_, _istart_
|
|
11
|
+
* - _endswith_, _endsi_, _endi_, _iends_, _iend_
|
|
12
|
+
* - _like_
|
|
13
|
+
* - _gt_, _>_, which stand for __>__
|
|
14
|
+
* - _lt_, _<_, which stand for __<__
|
|
15
|
+
* - _gte_, _>=_, which stand for __>=__
|
|
16
|
+
* - _lte_, _<=_, which stand for __<=__
|
|
17
|
+
* - _isnull_, which stands for __=== null__
|
|
18
|
+
* - _isnotnull_, which stands for __!== null__
|
|
19
|
+
* - _isempty_, which stands for __=== ''__
|
|
20
|
+
* - _isnotempty_, which stands for __!== ''__
|
|
21
|
+
*
|
|
22
|
+
* The defaut operator (if none is given) is __==__ .
|
|
23
|
+
*
|
|
24
|
+
* @method compare
|
|
25
|
+
* @global
|
|
26
|
+
* @example
|
|
27
|
+
* ```javascript
|
|
28
|
+
* bbn.fn.compare('foo', 'bar', 'eq');
|
|
29
|
+
* // false
|
|
30
|
+
* ```
|
|
31
|
+
* @example
|
|
32
|
+
* ```javascript
|
|
33
|
+
* bbn.fn.compare('foo', 'bar', 'neq');
|
|
34
|
+
* // true
|
|
35
|
+
* ```
|
|
36
|
+
* @example
|
|
37
|
+
* ```javascript
|
|
38
|
+
* bbn.fn.compare(3, 1, '>');
|
|
39
|
+
* // true
|
|
40
|
+
* ```
|
|
41
|
+
* @example
|
|
42
|
+
* ```javascript
|
|
43
|
+
* bbn.fn.compare("JavaScript", "script", 'contain');
|
|
44
|
+
* // true
|
|
45
|
+
* ```
|
|
46
|
+
* @memberof bbn.fn
|
|
47
|
+
* @param {String|Number} v1
|
|
48
|
+
* @param {String|Number} v2
|
|
49
|
+
* @param {String} operator
|
|
50
|
+
* @returns {Boolean} True if the values' comparison complies with the operator, false otherwise
|
|
51
|
+
*/
|
|
52
|
+
declare const compare: (v1: any, v2: any, operator: any) => boolean;
|
|
53
|
+
export { compare };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { isEmpty } from '../type/isEmpty';
|
|
2
|
+
import { removeAccents } from '../string/removeAccents';
|
|
3
|
+
import { isNull } from '../type/isNull';
|
|
4
|
+
import { isObject } from '../type/isObject';
|
|
5
|
+
import { isSame } from '../type/isSame';
|
|
6
|
+
/**
|
|
7
|
+
* Performs a comparison between two values based on the given operator and returns a boolean.
|
|
8
|
+
*
|
|
9
|
+
* It is internally used by all the filtering functions; the available operators are:
|
|
10
|
+
* - _===_, _=_, _equal_, _eq_, _is_, which stand for __===__
|
|
11
|
+
* - _!==_, _notequal_, _neq_, _isnot_, which stand for __!==__
|
|
12
|
+
* - _!=_, _different_, which stand for __!=__
|
|
13
|
+
* - _contains_, _contain_, _icontains_, _icontain_
|
|
14
|
+
* - _starts_, _start_
|
|
15
|
+
* - _startswith_, _startsi_, _starti_, _istarts_, _istart_
|
|
16
|
+
* - _endswith_, _endsi_, _endi_, _iends_, _iend_
|
|
17
|
+
* - _like_
|
|
18
|
+
* - _gt_, _>_, which stand for __>__
|
|
19
|
+
* - _lt_, _<_, which stand for __<__
|
|
20
|
+
* - _gte_, _>=_, which stand for __>=__
|
|
21
|
+
* - _lte_, _<=_, which stand for __<=__
|
|
22
|
+
* - _isnull_, which stands for __=== null__
|
|
23
|
+
* - _isnotnull_, which stands for __!== null__
|
|
24
|
+
* - _isempty_, which stands for __=== ''__
|
|
25
|
+
* - _isnotempty_, which stands for __!== ''__
|
|
26
|
+
*
|
|
27
|
+
* The defaut operator (if none is given) is __==__ .
|
|
28
|
+
*
|
|
29
|
+
* @method compare
|
|
30
|
+
* @global
|
|
31
|
+
* @example
|
|
32
|
+
* ```javascript
|
|
33
|
+
* bbn.fn.compare('foo', 'bar', 'eq');
|
|
34
|
+
* // false
|
|
35
|
+
* ```
|
|
36
|
+
* @example
|
|
37
|
+
* ```javascript
|
|
38
|
+
* bbn.fn.compare('foo', 'bar', 'neq');
|
|
39
|
+
* // true
|
|
40
|
+
* ```
|
|
41
|
+
* @example
|
|
42
|
+
* ```javascript
|
|
43
|
+
* bbn.fn.compare(3, 1, '>');
|
|
44
|
+
* // true
|
|
45
|
+
* ```
|
|
46
|
+
* @example
|
|
47
|
+
* ```javascript
|
|
48
|
+
* bbn.fn.compare("JavaScript", "script", 'contain');
|
|
49
|
+
* // true
|
|
50
|
+
* ```
|
|
51
|
+
* @memberof bbn.fn
|
|
52
|
+
* @param {String|Number} v1
|
|
53
|
+
* @param {String|Number} v2
|
|
54
|
+
* @param {String} operator
|
|
55
|
+
* @returns {Boolean} True if the values' comparison complies with the operator, false otherwise
|
|
56
|
+
*/
|
|
57
|
+
const compare = function (v1, v2, operator) {
|
|
58
|
+
switch (operator) {
|
|
59
|
+
case '===':
|
|
60
|
+
case '=':
|
|
61
|
+
case 'equal':
|
|
62
|
+
case 'eq':
|
|
63
|
+
case 'is':
|
|
64
|
+
return v1 === v2;
|
|
65
|
+
case '!==':
|
|
66
|
+
case 'notequal':
|
|
67
|
+
case 'neq':
|
|
68
|
+
case 'isnot':
|
|
69
|
+
return v1 !== v2;
|
|
70
|
+
case '!=':
|
|
71
|
+
case 'different':
|
|
72
|
+
return v1 != v2;
|
|
73
|
+
case 'contains':
|
|
74
|
+
case 'contain':
|
|
75
|
+
case 'icontains':
|
|
76
|
+
case 'icontain':
|
|
77
|
+
if (isEmpty(v1) || isEmpty(v2)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) !== -1;
|
|
81
|
+
case 'doesnotcontain':
|
|
82
|
+
case 'donotcontain':
|
|
83
|
+
if (isNull(v1) || isNull(v2)) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
return removeAccents(v1.toLowerCase()).indexOf(removeAccents(v2.toLowerCase())) === -1;
|
|
87
|
+
case 'starts':
|
|
88
|
+
case 'start':
|
|
89
|
+
if (isNull(v1) || isNull(v2)) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (typeof v1 !== 'string') {
|
|
93
|
+
v1 = v1.toString() || '';
|
|
94
|
+
}
|
|
95
|
+
if (typeof v2 !== 'string') {
|
|
96
|
+
v2 = v2.toString() || '';
|
|
97
|
+
}
|
|
98
|
+
return v1.indexOf(v2) === 0;
|
|
99
|
+
case 'startswith':
|
|
100
|
+
case 'startsi':
|
|
101
|
+
case 'starti':
|
|
102
|
+
case 'istarts':
|
|
103
|
+
case 'istart':
|
|
104
|
+
if (isNull(v1) || isNull(v2)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) === 0;
|
|
108
|
+
case 'endswith':
|
|
109
|
+
case 'endsi':
|
|
110
|
+
case 'endi':
|
|
111
|
+
case 'iends':
|
|
112
|
+
case 'iend':
|
|
113
|
+
if (isNull(v1) || isNull(v2)) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return v1.lastIndexOf(v2) === v1.length - v2.length;
|
|
117
|
+
case 'like':
|
|
118
|
+
if (isNull(v1) || isNull(v2)) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return removeAccents(v1).toLowerCase() === removeAccents(v2).toLowerCase();
|
|
122
|
+
case 'gt':
|
|
123
|
+
case '>':
|
|
124
|
+
return v1 > v2;
|
|
125
|
+
case 'gte':
|
|
126
|
+
case '>=':
|
|
127
|
+
return v1 >= v2;
|
|
128
|
+
case 'lt':
|
|
129
|
+
case '<':
|
|
130
|
+
return v1 < v2;
|
|
131
|
+
case 'lte':
|
|
132
|
+
case '<=':
|
|
133
|
+
return v1 <= v2;
|
|
134
|
+
case 'isnull':
|
|
135
|
+
return v1 === null;
|
|
136
|
+
case 'isnotnull':
|
|
137
|
+
return v1 !== null;
|
|
138
|
+
case 'isempty':
|
|
139
|
+
return v1 === '';
|
|
140
|
+
case 'isnotempty':
|
|
141
|
+
return v1 !== '';
|
|
142
|
+
case '==':
|
|
143
|
+
if (isObject(v1, v2)) {
|
|
144
|
+
return isSame(v1, v2);
|
|
145
|
+
}
|
|
146
|
+
default:
|
|
147
|
+
return v1 == v2;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
export { compare };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether the given data object complies or not with the given filter.
|
|
3
|
+
*
|
|
4
|
+
* The filter format must be full (i.e. with the properties logic and conditions) such as
|
|
5
|
+
* seen in the function bbn.fn.search and can be generated by the function bbn.fn.filterToConditions.
|
|
6
|
+
*
|
|
7
|
+
* @method compareConditions
|
|
8
|
+
* @global
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* let item = {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589};
|
|
12
|
+
* bbn.fn.compareConditions(item, {
|
|
13
|
+
* logic: "AND",
|
|
14
|
+
* conditions: [
|
|
15
|
+
* {
|
|
16
|
+
* field: "director",
|
|
17
|
+
* value: "Steven Spielberg"
|
|
18
|
+
* }
|
|
19
|
+
* ]
|
|
20
|
+
* });
|
|
21
|
+
* // true
|
|
22
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Soderberg"}));
|
|
23
|
+
* // false
|
|
24
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Spielberg"}));
|
|
25
|
+
* // true
|
|
26
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({year: 1980}, ">"));
|
|
27
|
+
* // true
|
|
28
|
+
* bbn.fn.compareConditions(item, {
|
|
29
|
+
* logic: "AND",
|
|
30
|
+
* conditions: [
|
|
31
|
+
* {
|
|
32
|
+
* field: "year",
|
|
33
|
+
* operator: "<",
|
|
34
|
+
* value: 1980
|
|
35
|
+
* }
|
|
36
|
+
* ]
|
|
37
|
+
* });
|
|
38
|
+
* // false
|
|
39
|
+
* ```
|
|
40
|
+
* @memberof bbn.fn
|
|
41
|
+
* @param {Object} data
|
|
42
|
+
* @param {Object} filter
|
|
43
|
+
* @returns {Boolean}
|
|
44
|
+
*/
|
|
45
|
+
declare const compareConditions: (data: any, filter: any) => boolean;
|
|
46
|
+
export { compareConditions };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { isArray } from "../type/isArray";
|
|
2
|
+
import { each } from "../loop/each";
|
|
3
|
+
import { compare } from "./compare";
|
|
4
|
+
import { getProperty } from "./getProperty";
|
|
5
|
+
/**
|
|
6
|
+
* Checks whether the given data object complies or not with the given filter.
|
|
7
|
+
*
|
|
8
|
+
* The filter format must be full (i.e. with the properties logic and conditions) such as
|
|
9
|
+
* seen in the function bbn.fn.search and can be generated by the function bbn.fn.filterToConditions.
|
|
10
|
+
*
|
|
11
|
+
* @method compareConditions
|
|
12
|
+
* @global
|
|
13
|
+
* @example
|
|
14
|
+
* ```javascript
|
|
15
|
+
* let item = {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589};
|
|
16
|
+
* bbn.fn.compareConditions(item, {
|
|
17
|
+
* logic: "AND",
|
|
18
|
+
* conditions: [
|
|
19
|
+
* {
|
|
20
|
+
* field: "director",
|
|
21
|
+
* value: "Steven Spielberg"
|
|
22
|
+
* }
|
|
23
|
+
* ]
|
|
24
|
+
* });
|
|
25
|
+
* // true
|
|
26
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Soderberg"}));
|
|
27
|
+
* // false
|
|
28
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Spielberg"}));
|
|
29
|
+
* // true
|
|
30
|
+
* bbn.fn.compareConditions(item, bbn.fn.filterToConditions({year: 1980}, ">"));
|
|
31
|
+
* // true
|
|
32
|
+
* bbn.fn.compareConditions(item, {
|
|
33
|
+
* logic: "AND",
|
|
34
|
+
* conditions: [
|
|
35
|
+
* {
|
|
36
|
+
* field: "year",
|
|
37
|
+
* operator: "<",
|
|
38
|
+
* value: 1980
|
|
39
|
+
* }
|
|
40
|
+
* ]
|
|
41
|
+
* });
|
|
42
|
+
* // false
|
|
43
|
+
* ```
|
|
44
|
+
* @memberof bbn.fn
|
|
45
|
+
* @param {Object} data
|
|
46
|
+
* @param {Object} filter
|
|
47
|
+
* @returns {Boolean}
|
|
48
|
+
*/
|
|
49
|
+
const compareConditions = function (data, filter) {
|
|
50
|
+
if (!filter.conditions || !filter.logic || !isArray(filter.conditions)) {
|
|
51
|
+
throw new Error("Error in compareConditions: the filter should an abject with conditions and logic properties and conditions should be an array of objects");
|
|
52
|
+
}
|
|
53
|
+
let ok = filter.logic === "AND" ? true : false;
|
|
54
|
+
each(filter.conditions, (a) => {
|
|
55
|
+
let comparator;
|
|
56
|
+
if (a.conditions && isArray(a.conditions)) {
|
|
57
|
+
comparator = compareConditions(data, a);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
comparator = compare(getProperty(data, a.field), a.value, a.operator);
|
|
61
|
+
if (comparator) {
|
|
62
|
+
let bits = a.field.split(".");
|
|
63
|
+
let prop = bits.pop();
|
|
64
|
+
if (bits.length) {
|
|
65
|
+
each(bits, (b) => (data = data[b]));
|
|
66
|
+
}
|
|
67
|
+
// Case where both are undefined: value and prop which doesn't exist; they are not the same!
|
|
68
|
+
if (getProperty(data, prop) === undefined && a.value !== undefined) {
|
|
69
|
+
comparator = false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (comparator) {
|
|
74
|
+
if (filter.logic === "OR") {
|
|
75
|
+
ok = true;
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (filter.logic === "AND") {
|
|
80
|
+
ok = false;
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return ok;
|
|
85
|
+
};
|
|
86
|
+
export { compareConditions };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Counts the number of objects matching the given filter in the given array.
|
|
3
|
+
*
|
|
4
|
+
* The arguments follow the same scheme as bbn.fn.search.
|
|
5
|
+
*
|
|
6
|
+
* @method count
|
|
7
|
+
* @global
|
|
8
|
+
* @example
|
|
9
|
+
* ```javascript
|
|
10
|
+
* let ar = [
|
|
11
|
+
* {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589},
|
|
12
|
+
* {name: "Goonies", director: "Richard Donner", year: 1985, id: 689},
|
|
13
|
+
* {name: "Star wars", director: "George Lucas", year: 1977, id: 256},
|
|
14
|
+
* {name: "Jaws", director: "Steven Spielberg", year: 1975, id: 423}
|
|
15
|
+
* ];
|
|
16
|
+
* bbn.fn.count(ar, "id", 256);
|
|
17
|
+
* // 1
|
|
18
|
+
* bbn.fn.count(ar, {director: "Steven Spielberg"});
|
|
19
|
+
* // 2
|
|
20
|
+
* bbn.fn.search(ar, "year", 1975, ">");
|
|
21
|
+
* // 3
|
|
22
|
+
* // Complex filters: all the movies from Spielberg between 1974 and 1980
|
|
23
|
+
* bbn.fn.search(ar, {
|
|
24
|
+
* logic: "AND",
|
|
25
|
+
* conditions: [
|
|
26
|
+
* {
|
|
27
|
+
* field: "director",
|
|
28
|
+
* operator: "eq",
|
|
29
|
+
* value: "Steven Spielberg"
|
|
30
|
+
* }, {
|
|
31
|
+
* logic: "AND",
|
|
32
|
+
* conditions: [
|
|
33
|
+
* {
|
|
34
|
+
* field: "year",
|
|
35
|
+
* operator: ">=",
|
|
36
|
+
* value: 1974
|
|
37
|
+
* }, {
|
|
38
|
+
* field: "year",
|
|
39
|
+
* operator: "<=",
|
|
40
|
+
* value: 1980
|
|
41
|
+
* }
|
|
42
|
+
* ]
|
|
43
|
+
* }
|
|
44
|
+
* ]
|
|
45
|
+
* });
|
|
46
|
+
* // 1
|
|
47
|
+
* ```
|
|
48
|
+
* @memberof bbn.fn
|
|
49
|
+
* @param {Array} arr The subject array
|
|
50
|
+
* @param {(String|Object|Function)} prop A property's name or a filter object or function
|
|
51
|
+
* @param {*} val The value with which comparing the given property
|
|
52
|
+
* @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
|
|
53
|
+
* @returns {Number} The number of items
|
|
54
|
+
*/
|
|
55
|
+
declare const count: (arr: any[], prop: object | string, val?: any, operator?: string) => number;
|
|
56
|
+
export { count };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { filter } from './filter';
|
|
2
|
+
/**
|
|
3
|
+
* Counts the number of objects matching the given filter in the given array.
|
|
4
|
+
*
|
|
5
|
+
* The arguments follow the same scheme as bbn.fn.search.
|
|
6
|
+
*
|
|
7
|
+
* @method count
|
|
8
|
+
* @global
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* let ar = [
|
|
12
|
+
* {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589},
|
|
13
|
+
* {name: "Goonies", director: "Richard Donner", year: 1985, id: 689},
|
|
14
|
+
* {name: "Star wars", director: "George Lucas", year: 1977, id: 256},
|
|
15
|
+
* {name: "Jaws", director: "Steven Spielberg", year: 1975, id: 423}
|
|
16
|
+
* ];
|
|
17
|
+
* bbn.fn.count(ar, "id", 256);
|
|
18
|
+
* // 1
|
|
19
|
+
* bbn.fn.count(ar, {director: "Steven Spielberg"});
|
|
20
|
+
* // 2
|
|
21
|
+
* bbn.fn.search(ar, "year", 1975, ">");
|
|
22
|
+
* // 3
|
|
23
|
+
* // Complex filters: all the movies from Spielberg between 1974 and 1980
|
|
24
|
+
* bbn.fn.search(ar, {
|
|
25
|
+
* logic: "AND",
|
|
26
|
+
* conditions: [
|
|
27
|
+
* {
|
|
28
|
+
* field: "director",
|
|
29
|
+
* operator: "eq",
|
|
30
|
+
* value: "Steven Spielberg"
|
|
31
|
+
* }, {
|
|
32
|
+
* logic: "AND",
|
|
33
|
+
* conditions: [
|
|
34
|
+
* {
|
|
35
|
+
* field: "year",
|
|
36
|
+
* operator: ">=",
|
|
37
|
+
* value: 1974
|
|
38
|
+
* }, {
|
|
39
|
+
* field: "year",
|
|
40
|
+
* operator: "<=",
|
|
41
|
+
* value: 1980
|
|
42
|
+
* }
|
|
43
|
+
* ]
|
|
44
|
+
* }
|
|
45
|
+
* ]
|
|
46
|
+
* });
|
|
47
|
+
* // 1
|
|
48
|
+
* ```
|
|
49
|
+
* @memberof bbn.fn
|
|
50
|
+
* @param {Array} arr The subject array
|
|
51
|
+
* @param {(String|Object|Function)} prop A property's name or a filter object or function
|
|
52
|
+
* @param {*} val The value with which comparing the given property
|
|
53
|
+
* @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
|
|
54
|
+
* @returns {Number} The number of items
|
|
55
|
+
*/
|
|
56
|
+
const count = function (arr, prop, val = null, operator = '=') {
|
|
57
|
+
return filter(arr, prop, val, operator).length || 0;
|
|
58
|
+
};
|
|
59
|
+
export { count };
|