UNPKG

@qikdev/sdk

Version:

Promise based Javascript SDK

1,355 lines (439 loc) 26.6 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>filter - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> <script src="scripts/nav.js" defer></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav > <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="access.html">access</a><ul class='methods'><li data-type='method'><a href="access.html#.actionableScopes">actionableScopes</a></li><li data-type='method'><a href="access.html#.allPermissions">allPermissions</a></li><li data-type='method'><a href="access.html#.allPermissionTypes">allPermissionTypes</a></li><li data-type='method'><a href="access.html#.allUserScopes">allUserScopes</a></li><li data-type='method'><a href="access.html#.canCreate">canCreate</a></li><li data-type='method'><a href="access.html#.canDeleteItem">canDeleteItem</a></li><li data-type='method'><a href="access.html#.canEditItem">canEditItem</a></li><li data-type='method'><a href="access.html#.canEraseItem">canEraseItem</a></li><li data-type='method'><a href="access.html#.canKnowOf">canKnowOf</a></li><li data-type='method'><a href="access.html#.canListItem">canListItem</a></li><li data-type='method'><a href="access.html#.canRestoreItem">canRestoreItem</a></li><li data-type='method'><a href="access.html#.canViewItem">canViewItem</a></li><li data-type='method'><a href="access.html#.checkActionAccess">checkActionAccess</a></li><li data-type='method'><a href="access.html#.getAllDescendants">getAllDescendants</a></li><li data-type='method'><a href="access.html#.has">has</a></li><li data-type='method'><a href="access.html#.hasFeature">hasFeature</a></li><li data-type='method'><a href="access.html#.hashPermissions">hashPermissions</a></li><li data-type='method'><a href="access.html#.isAdministrator">isAdministrator</a></li><li data-type='method'><a href="access.html#.isAssignee">isAssignee</a></li><li data-type='method'><a href="access.html#.isOwner">isOwner</a></li></ul></li><li><a href="api.html">api</a><ul class='methods'><li data-type='method'><a href="api.html#.generateEndpointURL">generateEndpointURL</a></li></ul></li><li><a href="auth.html">auth</a><ul class='methods'><li data-type='method'><a href="auth.html#.changeOrganisation">changeOrganisation</a></li><li data-type='method'><a href="auth.html#.ensureValidToken">ensureValidToken</a></li><li data-type='method'><a href="auth.html#.getCurrentToken">getCurrentToken</a></li><li data-type='method'><a href="auth.html#.getCurrentUser">getCurrentUser</a></li><li data-type='method'><a href="auth.html#.impersonate">impersonate</a></li><li data-type='method'><a href="auth.html#.login">login</a></li><li data-type='method'><a href="auth.html#.logout">logout</a></li><li data-type='method'><a href="auth.html#.retrieveUserFromResetToken">retrieveUserFromResetToken</a></li><li data-type='method'><a href="auth.html#.sendResetPasswordRequest">sendResetPasswordRequest</a></li><li data-type='method'><a href="auth.html#.set">set</a></li><li data-type='method'><a href="auth.html#.sync">sync</a></li><li data-type='method'><a href="auth.html#.updateUserWithToken">updateUserWithToken</a></li></ul></li><li><a href="cache.html">cache</a><ul class='methods'><li data-type='method'><a href="cache.html#.get">get</a></li><li data-type='method'><a href="cache.html#.reset">reset</a></li></ul></li><li><a href="content.html">content</a><ul class='methods'><li data-type='method'><a href="content.html#.create">create</a></li><li data-type='method'><a href="content.html#.delete">delete</a></li><li data-type='method'><a href="content.html#.get">get</a></li><li data-type='method'><a href="content.html#.getFromSlug">getFromSlug</a></li><li data-type='method'><a href="content.html#.glossary">glossary</a></li><li data-type='method'><a href="content.html#.list">list</a></li><li data-type='method'><a href="content.html#.patch">patch</a></li><li data-type='method'><a href="content.html#.restore">restore</a></li><li data-type='method'><a href="content.html#.scopeGlossary">scopeGlossary</a></li><li data-type='method'><a href="content.html#.update">update</a></li><li data-type='method'><a href="content.html#.validateField">validateField</a></li><li data-type='method'><a href="content.html#.variables">variables</a></li></ul></li><li><a href="files.html">files</a><ul class='methods'><li data-type='method'><a href="files.html#.downloadUrl">downloadUrl</a></li><li data-type='method'><a href="files.html#.duration">duration</a></li><li data-type='method'><a href="files.html#.filesize">filesize</a></li><li data-type='method'><a href="files.html#.getBinaryTypeFromMime">getBinaryTypeFromMime</a></li><li data-type='method'><a href="files.html#.mediaUrl">mediaUrl</a></li></ul></li><li><a href="filter.html">filter</a><ul class='methods'><li data-type='method'><a href="filter.html#.activeFilterComparators">activeFilterComparators</a></li><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterOperators">activeFilterOperators</a></li><li data-type='method'><a href="filter.html#.activeFilters">activeFilters</a></li><li data-type='method'><a href="filter.html#.activeFilterValues">activeFilterValues</a></li><li data-type='method'><a href="filter.html#.filterChangeString">filterChangeString</a></li><li data-type='method'><a href="filter.html#.isValidFilter">isValidFilter</a></li></ul></li><li><a href="geo.html">geo</a><ul class='methods'><li data-type='method'><a href="geo.html#.distance">distance</a></li><li data-type='method'><a href="geo.html#.getDefaultCountry">getDefaultCountry</a></li><li data-type='method'><a href="geo.html#.getDefaultTimezone">getDefaultTimezone</a></li><li data-type='method'><a href="geo.html#.getPosition">getPosition</a></li><li data-type='method'><a href="geo.html#.stopWatchPosition">stopWatchPosition</a></li><li data-type='method'><a href="geo.html#.watchPosition">watchPosition</a></li></ul></li><li><a href="module-QikStorage-CookieStorageAdapter.html">CookieStorageAdapter</a><ul class='methods'><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#getCookieOptions">getCookieOptions</a></li><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#isCookieMode">isCookieMode</a></li></ul></li><li><a href="module-QikStorage-LocalStorageAdapter.html">LocalStorageAdapter</a></li><li><a href="module-QikStorage-StorageAdapter.html">StorageAdapter</a><ul class='methods'><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#clearUser">clearUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getAccessToken">getAccessToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getRefreshToken">getRefreshToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getTokenExpiry">getTokenExpiry</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getUser">getUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#isAvailable">isAvailable</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#setUser">setUser</a></li></ul></li><li><a href="socket.html">socket</a><ul class='methods'><li data-type='method'><a href="socket.html#.channel">channel</a></li><li data-type='method'><a href="socket.html#.close">close</a></li><li data-type='method'><a href="socket.html#.connect">connect</a></li><li data-type='method'><a href="socket.html#.reconnect">reconnect</a></li><li data-type='method'><a href="socket.html#.subscribe">subscribe</a></li><li data-type='method'><a href="socket.html#.unsubscribe">unsubscribe</a></li></ul></li><li><a href="system.html">system</a><ul class='methods'><li data-type='method'><a href="system.html#.countries">countries</a></li></ul></li><li><a href="utils.html">utils</a><ul class='methods'><li data-type='method'><a href="utils.html#.cleanValue">cleanValue</a></li><li data-type='method'><a href="utils.html#.comma">comma</a></li><li data-type='method'><a href="utils.html#.errorMessage">errorMessage</a></li><li data-type='method'><a href="utils.html#.exists">exists</a></li><li data-type='method'><a href="utils.html#.extractFromArray">extractFromArray</a></li><li data-type='method'><a href="utils.html#.formatCurrency">formatCurrency</a></li><li data-type='method'><a href="utils.html#.getTypeFromID">getTypeFromID</a></li><li data-type='method'><a href="utils.html#.guid">guid</a></li><li data-type='method'><a href="utils.html#.hash">hash</a></li><li data-type='method'><a href="utils.html#.id">id</a></li><li data-type='method'><a href="utils.html#.ids">ids</a></li><li data-type='method'><a href="utils.html#.isValidEmailAddress">isValidEmailAddress</a></li><li data-type='method'><a href="utils.html#.loadExternalScript">loadExternalScript</a></li><li data-type='method'><a href="utils.html#.loadExternalStyle">loadExternalStyle</a></li><li data-type='method'><a href="utils.html#.machineName">machineName</a></li><li data-type='method'><a href="utils.html#.mapParameters">mapParameters</a></li><li data-type='method'><a href="utils.html#.matchInArray">matchInArray</a></li><li data-type='method'><a href="utils.html#.parseBoolean">parseBoolean</a></li><li data-type='method'><a href="utils.html#.parseDate">parseDate</a></li><li data-type='method'><a href="utils.html#.parseEmail">parseEmail</a></li><li data-type='method'><a href="utils.html#.parseInt">parseInt</a></li><li data-type='method'><a href="utils.html#.parseNumber">parseNumber</a></li><li data-type='method'><a href="utils.html#.parseURL">parseURL</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-QikStorage.html">QikStorage</a><ul class='methods'><li data-type='method'><a href="module-QikStorage.html#.createStorageAdapter">createStorageAdapter</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#EventDispatcher">EventDispatcher</a></li></ul> </nav> <div id="main"> <h1 class="page-title">filter</h1> <section> <header> <h2> filter </h2> <div class="class-description usertext">Provides functions helpful for interacting with the filtering system</div> </header> <article> <div class="container-overview"> <h2>Constructor</h2> <h4 class="name" id="filter"><span class="type-signature"></span>new filter<span class="signature">()</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line1">line 1</a> </li></ul></dd> </dl> </div> <h3 class="subsection-title">Methods</h3> <h4 class="name" id=".activeFilterComparators"><span class="type-signature">(static) </span>activeFilterComparators<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line361">line 361</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an array of all comparators that are being actively filtered </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "and", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "e" } ] } ] } const activeFilters = sdk.filter.activeFilterKeys(filterConfiguration); // Returns ['startswith', 'endswith']</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".activeFilterKeys"><span class="type-signature">(static) </span>activeFilterKeys<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line301">line 301</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an array of all keys that are being actively filtered on </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "and", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "e" } ] } ] } const activeFilters = sdk.filter.activeFilterKeys(filterConfiguration); // Returns ['formData.person.firstName', 'formData.person.lastName']</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".activeFilterOperators"><span class="type-signature">(static) </span>activeFilterOperators<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line411">line 411</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an array of all comparators that are being actively filtered </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "nor", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "e" } ] } ] } const activeFilterOperators = sdk.filter.activeFilterOperators(filterConfiguration); // Returns ['and', 'nor']</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".activeFilters"><span class="type-signature">(static) </span>activeFilters<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line234">line 234</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an array of all active filters </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "and", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "e" } ] } ] } const activeFilters = sdk.filter.activeFilters(filterConfiguration); const returns = [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "formData.person.lastName", "comparator": "endswith", "value": "e" }]</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".activeFilterValues"><span class="type-signature">(static) </span>activeFilterValues<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line461">line 461</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an array of all values that are being actively used by a filter </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "nor", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "a" } ] } ] } const activeFilterValues = sdk.filter.activeFilterValues(filterConfiguration); // Returns ['c', 'a']</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".filterChangeString"><span class="type-signature">(static) </span>filterChangeString<span class="signature">(filterConfiguration)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line528">line 528</a> </li></ul></dd> </dl> <div class="description usertext"> Returns an string representation of a filter configuration. Often used to check if a user has changed the filter in any way, the string only takes into consideration active valid filters </div> <h5>Example</h5> <pre class="prettyprint"><code>const filterConfiguration = { "operator": "and", "filters": [ { "operator": "nor", "filters": [ { "key": "formData.person.firstName", "comparator": "startswith", "value": "c" }, { "key": "invalid no comparator", "value": "e" } { "key": "formData.person.lastName", "comparator": "endswith", "value": "a" } ] } ] } // Watch this string for changes const changeString = sdk.filter.filterChangeString(filterConfiguration); </code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filterConfiguration</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">A filter configuration object</td> </tr> </tbody> </table> <h4 class="name" id=".isValidFilter"><span class="type-signature">(static) </span>isValidFilter<span class="signature">(filter)</span><span class="type-signature"></span></h4> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="qik.filter.js.html">qik.filter.js</a>, <a href="qik.filter.js.html#line67">line 67</a> </li></ul></dd> </dl> <div class="description usertext"> Check if an object is a valid filter </div> <h5>Example</h5> <pre class="prettyprint"><code>// Missing a 'key' const invalidFilter = sdk.filter.isValidFilter({comparator:'in', values:['Red', 'Green', 'Blue']}) // returns false const validFilter = sdk.filter.isValidFilter({key:'favoriteColor', comparator:'in', values:['Red', 'Green', 'Blue']}) // returns true</code></pre> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>filter</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last">The filter block to check</td> </tr> </tbody> </table> </article> </section> </div> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jul 13 2026 18:49:48 GMT+1000 (Australian Eastern Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme. </footer> <script>prettyPrint();</script> <script src="scripts/polyfill.js"></script> <script src="scripts/linenumber.js"></script> </body> </html>