├── resources ├── blogs │ ├── .gitkeep │ ├── Raspberry Pi Dashboard │ │ ├── screenshot.jpg │ │ └── README.md │ └── Deadline Manager │ │ └── README.md ├── videos │ ├── slider-widgets │ │ ├── readme.md │ │ └── app.json │ ├── csv-to-firestore │ │ ├── readme.md │ │ ├── app.json │ │ └── users.csv │ ├── readme.md │ ├── codescanner-checkout-app │ │ ├── readme.md │ │ └── app.json │ ├── appsmith-selfhosted-with-local-databases │ │ ├── readme.md │ │ ├── .env │ │ ├── docker-compose.yml │ │ └── todos.csv │ ├── .DS_Store │ ├── support-dashboard-hasuracon-2023 │ │ ├── .DS_Store │ │ ├── deck │ │ │ └── HasuraCon 2023.pdf │ │ ├── readme.md │ │ └── data │ │ │ └── tickets.csv │ ├── secure-db-login-with-rls │ │ ├── users.csv │ │ ├── readme.md │ │ └── todos.csv │ ├── dynamodb-admin-panel-livestream │ │ ├── readme.md │ │ └── products.csv │ ├── todo-kanban-app-with-mongodb │ │ ├── readme.md │ │ └── todos.csv │ └── self-host-on-k8s │ │ └── readme.md └── README.md ├── .gitignore ├── libraries ├── jsDocLite │ ├── image.png │ ├── README.md │ ├── COMMENTING.md │ └── index.js └── svgTags │ ├── image.png │ ├── README.md │ └── index.js ├── static ├── appsmith_logo_white.png └── 952px-Noun_Project_content_icon_1762367.svg.png ├── package.json ├── .github └── ISSUE_TEMPLATE │ └── template-submission.md ├── LICENSE ├── tools ├── rollup.config.js └── readme.generate.js ├── dist ├── jsDocLite.umd.js └── svgTags.umd.js └── README.md /resources/blogs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules 2 | **/.DS_Store 3 | -------------------------------------------------------------------------------- /resources/videos/slider-widgets/readme.md: -------------------------------------------------------------------------------- 1 | slider-widgets 2 | -------------------------------------------------------------------------------- /resources/videos/csv-to-firestore/readme.md: -------------------------------------------------------------------------------- 1 | csv-to-firestore 2 | -------------------------------------------------------------------------------- /resources/videos/readme.md: -------------------------------------------------------------------------------- 1 | # Resources From Videos & Livestreams 2 | -------------------------------------------------------------------------------- /resources/videos/codescanner-checkout-app/readme.md: -------------------------------------------------------------------------------- 1 | # codescanner-checkout-app 2 | -------------------------------------------------------------------------------- /resources/videos/appsmith-selfhosted-with-local-databases/readme.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | -------------------------------------------------------------------------------- /resources/videos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/resources/videos/.DS_Store -------------------------------------------------------------------------------- /resources/videos/appsmith-selfhosted-with-local-databases/.env: -------------------------------------------------------------------------------- 1 | USERNAME=admin 2 | PASSWORD=1234567890 3 | -------------------------------------------------------------------------------- /libraries/jsDocLite/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/libraries/jsDocLite/image.png -------------------------------------------------------------------------------- /libraries/svgTags/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/libraries/svgTags/image.png -------------------------------------------------------------------------------- /static/appsmith_logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/static/appsmith_logo_white.png -------------------------------------------------------------------------------- /resources/blogs/Raspberry Pi Dashboard/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/resources/blogs/Raspberry Pi Dashboard/screenshot.jpg -------------------------------------------------------------------------------- /static/952px-Noun_Project_content_icon_1762367.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/static/952px-Noun_Project_content_icon_1762367.svg.png -------------------------------------------------------------------------------- /resources/videos/support-dashboard-hasuracon-2023/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/resources/videos/support-dashboard-hasuracon-2023/.DS_Store -------------------------------------------------------------------------------- /resources/videos/support-dashboard-hasuracon-2023/deck/HasuraCon 2023.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appsmithorg/foundry/HEAD/resources/videos/support-dashboard-hasuracon-2023/deck/HasuraCon 2023.pdf -------------------------------------------------------------------------------- /resources/videos/secure-db-login-with-rls/users.csv: -------------------------------------------------------------------------------- 1 | email,password 2 | confidence@appsmith.com,$2a$10$nHUKPyr4nbKRgwAVQtDoB.hJpws74.UJnkVRVCbGddCAmKJKS1iR2 3 | vihar@appsmith.com,$2a$10$WHwI6if6d4Y1PBPVOqbc3.xujyzApoXE9vaf9tB4AGF2Wm9pyGcaW -------------------------------------------------------------------------------- /resources/videos/dynamodb-admin-panel-livestream/readme.md: -------------------------------------------------------------------------------- 1 | # dynamodb-admin-panel-livestream 2 | 3 | - Livestream [https://youtu.be/FQjTgnngTgA](https://youtu.be/FQjTgnngTgA) 4 | - App JSON [app.json](./app.json) 5 | - Dummy data [products.csv](./products.csv) 6 | -------------------------------------------------------------------------------- /resources/blogs/Deadline Manager/README.md: -------------------------------------------------------------------------------- 1 | # Building a deadline manager with Firestore and Appsmith 2 | 3 | ![Final Application](https://user-images.githubusercontent.com/55969597/197471334-97e74267-dd4c-4023-b29b-cb9e81061a4c.gif) 4 | 5 | To build this Deadline Manager using Firestore and Appsmith, check out the blog [here]() 6 | -------------------------------------------------------------------------------- /resources/README.md: -------------------------------------------------------------------------------- 1 | # Deprecated directory 2 | 3 | This folder is from the previous incarnation of this repo, and some of these resources are linked from content. We need to migrate these to portal posts and community templates, and then we can remove it. 4 | 5 | For the purposes of this repo as a JS library toolset, this diredctory can be ignored. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "@rollup/plugin-node-resolve": "^15.2.3", 4 | "@rollup/plugin-terser": "^0.4.4", 5 | "rollup": "^2.79.1" 6 | }, 7 | "scripts": { 8 | "umd.generate": "rollup --config tools/rollup.config.js", 9 | "readme.generate": "node tools/readme.generate.js", 10 | "build": "npm run umd.generate && npm run readme.generate" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /resources/blogs/Raspberry Pi Dashboard/README.md: -------------------------------------------------------------------------------- 1 | # Build a Raspberry Pi monitoring dashboard in under 30 minutes 2 | 3 | ![Raspberry Pi Dashboard Screenshot](screenshot.jpg) 4 | 5 | > The dashboard shows CPU, disk, and memory stats without additional hardware and 17/10 dev skills. 6 | 7 | This app export goes along with a tutorial that walks you through building an on-demand Raspberry Pi monitoring dashboard fast to see CPU, memory, and disk stats in real-time and add more views + actions over time just as easily. 8 | 9 | -------------------------------------------------------------------------------- /resources/videos/support-dashboard-hasuracon-2023/readme.md: -------------------------------------------------------------------------------- 1 | # support dashboard 2 | 3 | Link to presentation: 4 | [https://app.pitch.com/app/presentation/bb3ca642-ba48-4ccc-a88c-34931e28dab0/311d4c0f-cbc5-436b-89f2-732b008dee6d](https://app.pitch.com/app/presentation/bb3ca642-ba48-4ccc-a88c-34931e28dab0/311d4c0f-cbc5-436b-89f2-732b008dee6d) 5 | 6 | Link to live demo: 7 | [https://app.appsmith.com/app/support-dashboard/home-6483b3915262b67a983112b6](https://app.appsmith.com/app/support-dashboard/home-6483b3915262b67a983112b6) 8 | 9 | Link to GraphQL API: 10 | [https://support-tickets-hscn.hasura.app/v1/graphql](https://support-tickets-hscn.hasura.app/v1/graphql) 11 | -------------------------------------------------------------------------------- /resources/videos/todo-kanban-app-with-mongodb/readme.md: -------------------------------------------------------------------------------- 1 | # Todo Kanban App With MongoDB 2 | This app was built with Appsmith and MongoDB, and was built live in [How To Build A Kanban Board Todo App With MongoDB 3 | ](https://youtu.be/xr0s4fWq86w) livestream. 4 | 5 | 6 | The app can be directly imported using the app's JSON file [Todo Kanban App With MongoDB.json](./Todo%20Kanban%20App%20With%20MongoDB.json) 7 | 8 | > Follow this guide to [learn how to import apps from JSON files](https://docs.appsmith.com/advanced-concepts/more/backup-restore#import-from-an-application-json-file) 9 | 10 | You can also import the CSV file [todos.csv](./todos.csv) into your database for easy setup. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/template-submission.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Template submission 3 | about: Add your template to the community listing. 4 | title: "[TEMPLATE] Title goes here" 5 | labels: community contrib 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Description 11 | A clear and concise description of what the template is and the use case it is intended to solve for. 12 | 13 | ### Integrations and features 14 | A list of specific integrations, data sources, and specific features 15 | - some DB 16 | - an API 17 | - table with update modal 18 | 19 | #### Attachments 20 | - [ ] **Link to app** - Link to the _public_ app 21 | - [ ] **Screenshots** - Add one or more screenshots to help show your app. 22 | - [ ] **JSON Export** - Attach the [JSON export](https://docs.appsmith.com/advanced-concepts/more/backup-restore#export-application) for your app to the issue. 23 | -------------------------------------------------------------------------------- /resources/videos/secure-db-login-with-rls/readme.md: -------------------------------------------------------------------------------- 1 | # secure-db-login-with-rls 2 | 3 | Video link [https://youtu.be/8qPTZQvJ9fA](https://youtu.be/8qPTZQvJ9fA) 4 | 5 | ## SQL commands 6 | 7 | Enable RLS 8 | 9 | ```sql 10 | ALTER TABLE todos ENABLE ROW LEVEL SECURITY; 11 | ``` 12 | 13 | Create an access policy 14 | 15 | ```sql 16 | DROP POLICY IF EXISTS "Enable all actions for user based on ID" ON todos; 17 | 18 | CREATE POLICY "Enable all actions for user based on ID" ON todos 19 | USING (todos.user = current_setting('app.app_user')); 20 | ``` 21 | 22 | Create an RLS app user 23 | 24 | ```sql 25 | CREATE USER appsmith WITH PASSWORD 'appsmith'; 26 | 27 | GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO appsmith; 28 | 29 | GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO appsmith; 30 | ``` 31 | 32 | Set user session 33 | 34 | ```sql 35 | SET app.app_user TO 'confidence@appsmith.com'; 36 | ``` 37 | 38 | Get user session 39 | 40 | ``` 41 | SELECT current_setting('app.app_user'); 42 | ``` 43 | -------------------------------------------------------------------------------- /resources/videos/appsmith-selfhosted-with-local-databases/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | appsmith: 5 | image: index.docker.io/appsmith/appsmith-ce 6 | container_name: appsmith 7 | ports: 8 | - 8080:80 9 | volumes: 10 | - ./stacks:/appsmith-stacks 11 | restart: unless-stopped 12 | labels: 13 | com.centurylinklabs.watchtower.enable: true 14 | depends_on: 15 | - mongo 16 | - postgres 17 | mongo: 18 | image: mongo:latest 19 | restart: unless-stopped 20 | environment: 21 | - MONGO_INITDB_ROOT_USERNAME=$USERNAME 22 | - MONGO_INITDB_ROOT_PASSWORD=$PASSWORD 23 | ports: 24 | - 27017:27017 25 | volumes: 26 | - ./mongo-data:/data/db 27 | env_file: 28 | - .env 29 | postgres: 30 | image: postgres:latest 31 | restart: unless-stopped 32 | environment: 33 | - POSTGRES_USER=$USERNAME 34 | - POSTGRES_PASSWORD=$PASSWORD 35 | ports: 36 | - 5432:5432 37 | volumes: 38 | - ./postgres-data:/var/lib/postgresql/data 39 | env_file: 40 | - .env 41 | 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Appsmith 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /tools/rollup.config.js: -------------------------------------------------------------------------------- 1 | import resolve from '@rollup/plugin-node-resolve'; 2 | import terser from '@rollup/plugin-terser'; 3 | import path from 'path'; 4 | import fs from 'fs'; 5 | 6 | // Adjust the base directory to the project root 7 | const baseDir = path.resolve(__dirname, '..'); 8 | 9 | // Dynamically generate the Rollup configuration for each library 10 | const libraryFolders = fs.readdirSync(path.join(baseDir, 'libraries')).filter(file => { 11 | return fs.statSync(path.join(baseDir, 'libraries', file)).isDirectory(); 12 | }); 13 | 14 | const outputConfig = libraryFolders.map(folder => { 15 | return { 16 | input: path.join(baseDir, `libraries/${folder}/index.js`), 17 | output: { 18 | file: path.join(baseDir, `dist/${folder}.umd.js`), 19 | format: 'umd', 20 | name: folder.replace(/-\w/g, m => m[1].toUpperCase()), // Convert kebab-case to CamelCase 21 | globals: { 22 | // Define globals here if your libraries depend on external modules 23 | } 24 | }, 25 | plugins: [ 26 | resolve(), 27 | terser(), 28 | ], 29 | external: [ 30 | // Add external dependencies here if needed 31 | ] 32 | }; 33 | }); 34 | 35 | export default outputConfig; 36 | -------------------------------------------------------------------------------- /resources/videos/self-host-on-k8s/readme.md: -------------------------------------------------------------------------------- 1 | # How To Self-host Appsmith On Kubernetes 2 | 3 | Video Link [https://youtu.be/wZzYL1uZwds](https://youtu.be/wZzYL1uZwds) 4 | 5 | Install k3s 6 | 7 | ```sh 8 | curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - 9 | ``` 10 | 11 | Install Helm 12 | 13 | ```sh 14 | curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 15 | ``` 16 | 17 | Download Appsmith config values 18 | 19 | ```sh 20 | curl -L https://bit.ly/3ETEgPT -o "$PWD/values.yml" 21 | ``` 22 | 23 | Add the Appsmith registry 24 | 25 | ```sh 26 | helm repo add appsmith https://helm.appsmith.com 27 | ``` 28 | 29 | Update local repository 30 | 31 | ```sh 32 | helm repo update 33 | ``` 34 | 35 | Create an Appsmith namespace 36 | 37 | ```sh 38 | kubectl create namespace myappsmith 39 | ``` 40 | 41 | Add the `kUBECONFIG` variable 42 | 43 | ```sh 44 | echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> ~/.bashrc 45 | source ~/.bashrc 46 | ``` 47 | 48 | Install Appsmith 49 | 50 | ```sh 51 | helm install appsmith appsmith/appsmith --namespace myappsmith 52 | ``` 53 | 54 | Create a NodePort service to expose the cluster 55 | 56 | ```sh 57 | kubectl expose pod appsmith-0 --name=appsmith-srv --port=80 --type=NodePort -n myappsmith 58 | kubectl describe service appsmith-srv -n myappsmith | grep NodePort: 59 | ``` 60 | -------------------------------------------------------------------------------- /dist/jsDocLite.umd.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).jsDocLite=t()}(this,(function(){"use strict";return{entryRegex:{function:/@(function|func|method)\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm,constant:/@(const|constant|property)\s+{(\w+)}\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm,module:/@(module|class)\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm},tagRegex:{params:/@(param|arg|argument)\s+{([\s\S]*?)}\s+([a-zA-Z_$][0-9a-zA-Z_$]*)\s*-([\s\S]*?)(?=@|$)/g,returns:/@returns\s+{([\s\S]*?)}\s+([\s\S]*?)(?=@|$)/g,async:/@async/g,example:/@example\s+([\s\S]*?)(?=@|$)/g,see:/@(see|link|doc)\s+([\s\S]*?)(?=@|$)/g},jsdocRegex:/\/\*\*([\s\S]*?)\*\//g,async parseFromUrl(e){const t=await this.fetchJsContent(e);return this.parse(t)},parse(e){const t=e.match(this.jsdocRegex)||[],s={modules:{},constants:{},functions:{}};return t.forEach((e=>{const t=this.cleanCommentBlock(e),n=this.parseComment(t);n&&n.entryName&&(s[n.entryType+"s"][n.entryName]=n)})),s},parseComment(e){let t=null,s=null,n=null;const a=e.match(/^(.+?)(?=@|$)/s),r=a?a[0].trim():null;if(Object.entries(this.entryRegex).forEach((([a,r])=>{r.lastIndex=0;const c=r.exec(e);if(c)switch(s=a,a){case"constant":n=c[2],t=c[3];break;case"module":t=c[1];break;default:t=c[2]}})),!t)return null;const c={entryType:s,entryName:t,description:r,...n?{dataType:n}:{}};for(const[t,s]of Object.entries(this.tagRegex)){const n=[...e.matchAll(s)];if(n.length)switch(t){case"params":c[t]=n.map((e=>({type:e[2]?.trim(),name:e[3]?.trim(),description:e[4]?.trim()})));break;case"returns":c[t]=n.map((e=>({type:e[1]?.trim(),description:e[2]?.trim()})));break;case"async":c[t]=!0;break;case"link":c[t]=n[0][1].trim();break;default:c[t]=n.map((e=>e[1]?.trim()))}}return c},cleanCommentBlock:e=>e=(e=e.replace(/\/\*\*|\*\//g,"").trim()).replace(/^\s*\*+/gm,"").trim(),async fetchJsContent(e){const t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch JS content from ${e}`);return t.text()}}})); 2 | -------------------------------------------------------------------------------- /dist/svgTags.umd.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).svgTags=t()}(this,(function(){"use strict";return{stringToNum(e="@#$%^&*",t=46){if(t<=0)throw new Error("modSize must be greater than 0");return[...e].reduce(((e,n)=>(e+n.charCodeAt(0))%t),0)},colors:["#DA0862","#E3005D","#E90047","#EC0A28","#EB1700","#EA2500","#E63100","#DF3D00","#D35100","#CB5E00","#BF6D00","#B07000","#A17A00","#8F8000","#777700","#659400","#4E9B00","#1E9F00","#00A000","#00A21A","#00A43B","#00A653","#00A869","#00A87F","#00A693","#00A2A7","#00A0B3","#009FBD","#009AC9","#0094D4","#008CF0","#0084FF","#007CFF","#0072FF","#2D6BFF","#4E63FF","#625BFF","#724FFF","#7F49F8","#8E43E3","#9D3DD8","#AA36CA","#B52FB8","#C126A7","#CA1D94","#D31580"],listToTags(e="Testing, one, two, three"){return`\n
\n ${e.split(",").map((e=>e.trim())).map((e=>{const t=this.stringToNum(e),n=this.colors[t];return`\n `})).join("")}\n
\n `},nameToInitialsSVG(e="Test User "){const t=this.colors[this.stringToNum(e)],n=`${t}33`,o=e.split(" ").map((e=>e.charAt(0).toUpperCase())).join(""),s=`\n \n \n \n ${o}\n \n \n `;return`data:image/svg+xml;base64,${btoa(s)}`},selectOptions:(e=getUsers.data.results,t="name.first",n="login.username")=>_.orderBy(_.uniqBy(e.map((e=>({label:_.get(e,t),value:_.get(e,n)}))).filter((e=>!!e.label&&!!e.value)),(e=>e.label)),"label"),objToRows:(e="123")=>e&&"object"==typeof e?Object.entries(e).map((([e,t])=>({prop:e,value:t}))):[]}})); 2 | -------------------------------------------------------------------------------- /libraries/jsDocLite/README.md: -------------------------------------------------------------------------------- 1 | # jsDocLite 2 | 3 | ![jsDocLite image](image.png) 4 | 5 | This module provides functionality to parse JSDoc comments from JavaScript code. 6 | 7 | ## Usage 8 | 9 | You can use the JSDelivr CDN to import this custom library into Appsmith. 10 | ```sh 11 | https://cdn.jsdelivr.net/gh/appsmithorg/foundry@main/dist/jsDocLite.umd.js 12 | ``` 13 | 14 | ## Methods 15 | 16 | - [parseFromUrl](#jsdocliteparsefromurlurl) 17 | - [parse](#jsdocliteparsecode) 18 | - [parseComment](#jsdocliteparsecommentcomment) 19 | - [cleanCommentBlock](#jsdoclitecleancommentblockcommentblock) 20 | - [fetchJsContent](#jsdoclitefetchjscontenturl) 21 | ----- 22 | ### jsDocLite.parseFromUrl(url) 23 | 24 | Asynchronously fetches JavaScript content from a URL and parses the JSDoc comments. 25 | 26 | - *parameters* 27 | - `url`: The URL to fetch the JavaScript content from. 28 | 29 | - *returns* 30 | 31 | - `Promise`: An object containing the parsed JSDoc comments. 32 | 33 | - *async* 34 | 35 | 36 | 37 | ----- 38 | ### jsDocLite.parse(code) 39 | 40 | Parses the provided JavaScript code to extract JSDoc comments. 41 | 42 | - *parameters* 43 | - `code`: The JavaScript code to parse. 44 | 45 | - *returns* 46 | 47 | - `object`: An object containing the parsed JSDoc comments. 48 | 49 | 50 | 51 | ----- 52 | ### jsDocLite.parseComment(comment) 53 | 54 | Parses a single JSDoc comment block to extract information. 55 | 56 | - *parameters* 57 | - `comment`: The JSDoc comment block to parse. 58 | 59 | - *returns* 60 | 61 | - `object|null`: An object containing the parsed information from the JSDoc comment, or null if no recognized entry tag is found. 62 | 63 | 64 | 65 | ----- 66 | ### jsDocLite.cleanCommentBlock(commentBlock) 67 | 68 | @function cleanCommentBlock Cleans a JSDoc comment block by removing the commenting marks from each line. 69 | 70 | - *parameters* 71 | - `commentBlock`: The JSDoc comment block to clean. 72 | 73 | - *returns* 74 | 75 | - `string`: The cleaned comment block. 76 | 77 | 78 | 79 | ----- 80 | ### jsDocLite.fetchJsContent(url) 81 | 82 | Asynchronously fetches JavaScript content from a URL. 83 | 84 | - *parameters* 85 | - `url`: The URL to fetch the JavaScript content from. 86 | 87 | - *returns* 88 | 89 | - `Promise`: A promise that resolves with the fetched JavaScript content as text. 90 | 91 | - *async* 92 | 93 | 94 | 95 | ----- 96 | ## Constants 97 | 98 | ### entryRegex 99 | 100 | An object of regex to help identify entries for documentation (functions, constants, and modules). 101 | 102 | ### tagRegex 103 | 104 | An object of regex to help identify tags for identified entries. 105 | 106 | ### jsdocRegex 107 | 108 | Regex to help identify JS Doc blocks in code. 109 | 110 | ## Contributing 111 | 112 | Contributions are always welcome! 113 | 114 | ## License 115 | 116 | [MIT](https://choosealicense.com/licenses/mit/) 117 | -------------------------------------------------------------------------------- /libraries/svgTags/README.md: -------------------------------------------------------------------------------- 1 | # svgTags 2 | 3 | ![svgTags image](image.png) 4 | 5 | @module svgTags Provides methods to generate SVG based tags for content and object. 6 | 7 | ## Usage 8 | 9 | You can use the JSDelivr CDN to import this custom library into Appsmith. 10 | ```sh 11 | https://cdn.jsdelivr.net/gh/appsmithorg/foundry@main/dist/svgTags.umd.js 12 | ``` 13 | 14 | ## Methods 15 | 16 | - [stringToNum](#svgtagsstringtonuminputstringmodsize) 17 | - [listToTags](#svgtagslisttotagsinputstring) 18 | - [nameToInitialsSVG](#svgtagsnametoinitialssvgstr) 19 | - [selectOptions](#svgtagsselectoptionsdatalabelvalue) 20 | - [objToRows](#svgtagsobjtorowsobj) 21 | ----- 22 | ### svgTags.stringToNum(inputString,modSize) 23 | 24 | @method stringToNum Convert a string into a repeatable numeric value in a range from 0 to modSize. 25 | 26 | - *parameters* 27 | - `inputString`: The input string to be converted. 28 | - `modSize`: The modulo value (must be greater than 0). Set to 1 + max desired return value. 29 | 30 | - *returns* 31 | 32 | - `number`: The numeric representation of the input string. 33 | 34 | 35 | 36 | ----- 37 | ### svgTags.listToTags(inputString) 38 | 39 | @method listToTags Create colored tags based on the input string of comma separated values. 40 | 41 | - *parameters* 42 | - `inputString`: The input string to create colored tags from. 43 | 44 | - *returns* 45 | 46 | - `string`: HTML representation of colored elements. 47 | 48 | 49 | 50 | ----- 51 | ### svgTags.nameToInitialsSVG(str) 52 | 53 | @method nameToInitialsSVG Create an SVG representation of colored initials from the input string and return it as a Data URI. 54 | 55 | - *parameters* 56 | - `str`: The input string to generate initials from. 57 | 58 | - *returns* 59 | 60 | - `string`: Data URI of the generated SVG. 61 | 62 | 63 | 64 | ----- 65 | ### svgTags.selectOptions(data,label,value) 66 | 67 | @method selectOptions Generates array of {label, value} objects sorted by label & with unique values, for use in Select or List widgets. 68 | Supports nested paths, and filters out options where the label or value are null or undefined. 69 | 70 | - *parameters* 71 | - `data`: An array of objects, from your API or Query response. 72 | - `label`: A property name, or valid json path. 73 | - `value`: A property name, or valid json path. 74 | 75 | - *returns* 76 | 77 | - `array`: - [{label, value},...] or empty array if path is invalid. 78 | 79 | 80 | 81 | ----- 82 | ### svgTags.objToRows(obj) 83 | 84 | @method objToRows Converts a single object to an array of {property, value} objects, 85 | for viewing a single row vertically in Select or List widgets. 86 | 87 | - *parameters* 88 | - `obj`: A single row of data from an API, Query, or selected table/list row. 89 | 90 | - *returns* 91 | 92 | - `array`: - [{property, value},...] or empty array if obj us invalid. 93 | 94 | 95 | 96 | ----- 97 | ## Constants 98 | 99 | ### colors 100 | 101 | @const {array} colors Array of colors for use with various SVG generators. 102 | 103 | ## Contributing 104 | 105 | Contributions are always welcome! 106 | 107 | ## License 108 | 109 | [MIT](https://choosealicense.com/licenses/mit/) 110 | -------------------------------------------------------------------------------- /tools/readme.generate.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const jsDocLite = require('../dist/jsDocLite.umd.js'); // Adjust the path as necessary 4 | 5 | const librariesPath = './libraries'; 6 | const jsDeliverPrefix = 'https://cdn.jsdelivr.net/gh/appsmithorg/foundry@main/dist/'; 7 | 8 | fs.readdirSync(librariesPath).forEach(lib => { 9 | const libPath = path.join(librariesPath, lib, 'index.js'); 10 | if (fs.existsSync(libPath)) { 11 | const code = fs.readFileSync(libPath, 'utf-8'); 12 | const parsedDocs = jsDocLite.parse(code); 13 | const readmeContent = generateReadmeContent(parsedDocs, lib); 14 | const readmePath = path.join(librariesPath, lib, 'README.md'); 15 | fs.writeFileSync(readmePath, readmeContent); 16 | console.log("Writing " + readmePath); 17 | } 18 | }); 19 | 20 | // @todo Replace with an actual template (using mustache?) 21 | function generateReadmeContent(parsedDocs, lib) { 22 | let content = `# ${lib}\n\n`; 23 | 24 | // Description 25 | if (parsedDocs.description) { 26 | content += `${parsedDocs.description}\n\n`; 27 | } 28 | 29 | // Check for an image file and include it if it exists 30 | const imagePath = path.join(librariesPath, lib, 'image.png'); // Assuming the image is a PNG 31 | if (fs.existsSync(imagePath)) { 32 | content += `![${lib} image](image.png)\n\n`; 33 | } 34 | 35 | // Modules (if any) 36 | if (parsedDocs.modules && Object.keys(parsedDocs.modules).length > 0) { 37 | for (const [moduleName, module] of Object.entries(parsedDocs.modules)) { 38 | content += `${module.description}\n\n`; 39 | } 40 | } 41 | 42 | // Installation (assuming this is a JS library) 43 | content += `## Usage\n\n`; 44 | content += `You can use the JSDelivr CDN to import this custom library into Appsmith.\n` 45 | content += '```sh\n'; 46 | content += `${jsDeliverPrefix}${lib}.umd.js\n`; // Replace with actual package name 47 | content += '```\n\n'; 48 | 49 | // Methods 50 | if (parsedDocs.functions && Object.keys(parsedDocs.functions).length > 0) { 51 | content += `## Methods\n\n`; 52 | let methodContent = ''; 53 | let headingTag = ''; 54 | 55 | for (const [funcName, func] of Object.entries(parsedDocs.functions)) { 56 | let params = ''; 57 | if (func.params && func.params.length > 0) { 58 | func.params.forEach(param => { 59 | params = params + param.name + ','; 60 | }); 61 | params = params.slice(0, -1); 62 | } 63 | // Method list & links 64 | headingTag = lib + funcName + params.replace(/,/g, ""); 65 | content += `- [${funcName}](#${headingTag.toLowerCase()}) \n`; 66 | // Method heading and section 67 | methodContent += '-----\n'; 68 | methodContent += `### ${lib}.${funcName}(${params})\n\n`; 69 | methodContent += `${func.description}\n\n`; 70 | 71 | // Parameters 72 | if (func.params && func.params.length > 0) { 73 | methodContent += `- *parameters*\n`; 74 | func.params.forEach(param => { 75 | methodContent += ` - \`${param.name}\`: ${param.description} \n`; 76 | }); 77 | methodContent += '\n'; 78 | } 79 | 80 | // Returns 81 | if (func.returns && func.returns.length > 0) { 82 | methodContent += `- *returns*\n\n`; 83 | methodContent += ` - \`${func.returns[0].type}\`: ${func.returns[0].description}\n\n`; 84 | } 85 | 86 | // Examples 87 | if (func.examples && func.examples.length > 0) { 88 | methodContent += `- *examples*\n`; 89 | func.examples.forEach(example => { 90 | methodContent += '```js\n'; 91 | methodContent += `${example}\n`; 92 | methodContent += '```\n'; 93 | }); 94 | methodContent += '\n'; 95 | } 96 | 97 | // Async 98 | if (func.async) { 99 | methodContent += `- *async*\n\n`; 100 | } 101 | 102 | methodContent += `\n\n`; 103 | } 104 | 105 | content += methodContent; 106 | } 107 | 108 | // Constants 109 | if (parsedDocs.constants && Object.keys(parsedDocs.constants).length > 0) { 110 | content += `-----\n ## Constants\n\n`; 111 | 112 | for (const [constName, constant] of Object.entries(parsedDocs.constants)) { 113 | content += `### ${constName}\n\n`; 114 | content += `${constant.description}\n\n`; 115 | } 116 | } 117 | 118 | // Contributing 119 | content += `## Contributing\n\n`; 120 | content += 'Contributions are always welcome!\n\n'; 121 | 122 | // License 123 | content += `## License\n\n`; 124 | content += `[MIT](https://choosealicense.com/licenses/mit/)\n`; 125 | 126 | return content; 127 | } 128 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Appsmith Logo 4 | 5 |

6 | 7 | # Appsmith Foundry Custom Library 8 | 9 | This is a collection of utility functions for common tasks in JavaScript. This module includes functions to work with arrays, objects, and generate unique IDs. It's designed to be simple to use and can be easily integrated into your Node.js, browser-based projects or Appsmith apps. 10 | 11 | *Note: This method requires a public Github repository.* 12 | 13 | ## Installation 14 | 15 | You can clone this repo using Git to create and modify: 16 | 17 | ```sh 18 | git clone git@github.com:appsmithorg/foundry.git 19 | ``` 20 | Once cloned, you will need to install the Node modules to get it ready for usage. This should only be needed the first time (unless you add extra modules). 21 | ```sh 22 | npm install 23 | ``` 24 | Alternatively, you can follow the tutorial to set your own foundry up from scratch. (coming soon) 25 | 26 | ## Usage 27 | 1. Create a new sub-directory in the `libraries` folder. This should be the name of your custom library. 28 | 2. Create an `index.js` file in that folder, and copy your code in there. Currently, this is expected to be an Appsmith JSObject. 29 | 3. Run `npm build` to generate the UMM file and a helpful README for your library. 30 | 4. Commit and push your changes to a public Github repo. 31 | 32 | Your library is ready for usage using JSDelivr. See the generated README for the link. 33 | 34 | ## Repo management 35 | Each library should be added to its own folder in the `libraries` directory as a single `index.js` file. This is intended to support simple libraries that are contained in a single file with few or no dependencies. The default expectation is that you can directly cut/paste an Appsmith JSObject into your `index.js`. 36 | 37 | The repo used `@rollup` to process your code into a UDM file, and expects to use JSDelivr for CDN delivery. 38 | 39 | ### Scripts 40 | - **build** - runs both the UMD & the readme file generation commands. In essence, it is the same as running `umd.generate` & `readme.generate`. This is the default command to update your repo when you add or update a library. 41 | ```js 42 | npm run build 43 | ``` 44 | - **readme.generate** - used to generate a readme file for each library. It uses the `jsDocLite` library in this repo to parse the JSDoc comments out of the library `index.js` file. It will iterate over each library and save the README to that directory. 45 | ```js 46 | npm run readme.generate 47 | ``` 48 | - **umd.generate** - used to generate the UMD code versions in the `dist` directory. This will iterate over every folder in the `libraries` directory and use the `index.js` in each one. The name of the folder will be the name of the library. 49 | ```js 50 | npm run umd.generate 51 | ``` 52 | 53 | ## Libraries availble 54 | 55 | Here are the libraries available in this repo and how to use them. All of them are availble using JSDelivr so you can import them into your Appsmith app. 56 | 57 | ## `jsDocLite` 58 | 59 | This is a simple library that uses basic JSDoc style docblocks to comment your code and generate docs. We are actually using it in this repo to automatically generate a README for each library. It doesn't offer full JSDoc support, but the basics are good. 60 | - [documentation](https://github.com/appsmithorg/foundry/tree/main/libraries/jsDocLite) 61 | - [commenting guidelines](https://github.com/appsmithorg/foundry/tree/main/libraries/jsDocLite/COMMENTING.md) 62 | - usage: 63 | 64 | ```sh 65 | https://cdn.jsdelivr.net/gh/appsmithorg/foundry@main/dist/jsDocLite.umd.js 66 | ``` 67 | 68 | 69 | ----- 70 | 71 | ### FAQ 72 | 1. *Can I remove the libraries in the original repo?*\ 73 | Yes! The `build` command currently expects the jsDocLite library to be available. It uses the JSDelivr version of the library, so you can safely remove it from your clone of this repo. 74 | 2. *Why does this method require a public Github repository?*\ 75 | Firstly, JSDelivr has a native Github integration that makes it easy for us to create a CDN URL without any registration or setup. Secondly, in order to work, both JSDelivr and the app need to be able to access the library over a public connection. 76 | 3. *Why did you create a JSDocLite library instead of using JSDoc?*\ 77 | Partly because JSDoc is a bit overkill for our use case, and partly because we wanted a simple JSDoc parser that can be used client side... such a thing doesn't exist. Mostly - for fun. 78 | 79 | ### Dev dependencies 80 | - npm 81 | - You will need the Rollup node modules for doing the UMD generation 82 | - The readme.generate command relies on the jsDocLite library, which is included as a CDN call to JSDelivr. 83 | 84 | ### Todo 85 | - jsDocLite 86 | - Allow it to work with multiple comment lines 87 | - add @todo 88 | - Make readme generator easier to use with a template 89 | 90 | ## Contributing 91 | 92 | Contributions are always welcome! Open an issue or a PR! 93 | 94 | ## License 95 | 96 | [MIT](https://choosealicense.com/licenses/mit/) -------------------------------------------------------------------------------- /libraries/svgTags/index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | /** 3 | * @module svgTags Provides methods to generate SVG based tags for content and object. 4 | */ 5 | 6 | /** 7 | * @method stringToNum Convert a string into a repeatable numeric value in a range from 0 to modSize. 8 | * @param {string} inputString - The input string to be converted. 9 | * @param {number} modSize - The modulo value (must be greater than 0). Set to 1 + max desired return value. 10 | * @returns {number} The numeric representation of the input string. 11 | */ 12 | stringToNum(inputString = '@#$%^&*', modSize = 46) { 13 | if (modSize <= 0) { throw new Error('modSize must be greater than 0'); } 14 | return [...inputString].reduce((acc, char) => (acc + char.charCodeAt(0)) % modSize, 0); 15 | }, 16 | 17 | 18 | /** 19 | * @const {array} colors Array of colors for use with various SVG generators. 20 | */ 21 | colors: [ 22 | "#DA0862", 23 | "#E3005D", 24 | "#E90047", 25 | "#EC0A28", 26 | "#EB1700", 27 | "#EA2500", 28 | "#E63100", 29 | "#DF3D00", 30 | "#D35100", 31 | "#CB5E00", 32 | "#BF6D00", 33 | "#B07000", 34 | "#A17A00", 35 | "#8F8000", 36 | "#777700", 37 | "#659400", 38 | "#4E9B00", 39 | "#1E9F00", 40 | "#00A000", 41 | "#00A21A", 42 | "#00A43B", 43 | "#00A653", 44 | "#00A869", 45 | "#00A87F", 46 | "#00A693", 47 | "#00A2A7", 48 | "#00A0B3", 49 | "#009FBD", 50 | "#009AC9", 51 | "#0094D4", 52 | "#008CF0", 53 | "#0084FF", 54 | "#007CFF", 55 | "#0072FF", 56 | "#2D6BFF", 57 | "#4E63FF", 58 | "#625BFF", 59 | "#724FFF", 60 | "#7F49F8", 61 | "#8E43E3", 62 | "#9D3DD8", 63 | "#AA36CA", 64 | "#B52FB8", 65 | "#C126A7", 66 | "#CA1D94", 67 | "#D31580" 68 | ], 69 | 70 | /** 71 | * @method listToTags Create colored tags based on the input string of comma separated values. 72 | * @param {string} inputString - The input string to create colored tags from. 73 | * @returns {string} HTML representation of colored elements. 74 | */ 75 | listToTags(inputString = 'Testing, one, two, three') { 76 | const values = inputString.split(',').map((value) => value.trim()); 77 | 78 | const coloredElements = values.map((value) => { 79 | const colorIndex = this.stringToNum(value); 80 | const textColor = this.colors[colorIndex]; 81 | const backgroundColor = `${textColor}22`; 82 | 83 | return ` 84 | `; 98 | }); 99 | 100 | const coloredElementsHTML = coloredElements.join(''); 101 | 102 | return ` 103 |
104 | ${coloredElementsHTML} 105 |
106 | `; 107 | }, 108 | 109 | /** 110 | * @method nameToInitialsSVG Create an SVG representation of colored initials from the input string and return it as a Data URI. 111 | * @param {string} str - The input string to generate initials from. 112 | * @returns {string} Data URI of the generated SVG. 113 | */ 114 | nameToInitialsSVG(str = 'Test User ') { 115 | const color = this.colors[this.stringToNum(str)]; 116 | const backgroundColor = `${color}33`; 117 | const initials = str.split(' ').map(word => word.charAt(0).toUpperCase()).join(''); 118 | 119 | const svg = ` 120 | 121 | 122 | 123 | ${initials} 124 | 125 | 126 | `; 127 | 128 | const dataURI = `data:image/svg+xml;base64,${btoa(svg)}`; 129 | 130 | return dataURI; 131 | }, 132 | 133 | /** 134 | * @method selectOptions Generates array of {label, value} objects sorted by label & with unique values, for use in Select or List widgets. 135 | * Supports nested paths, and filters out options where the label or value are null or undefined. 136 | * @param {array} data - An array of objects, from your API or Query response. 137 | * @param {string} label - A property name, or valid json path. 138 | * @param {array} value - A property name, or valid json path. 139 | * @returns {array} - [{label, value},...] or empty array if path is invalid. 140 | */ 141 | selectOptions(data = getUsers.data.results, label = 'name.first', value = 'login.username') { 142 | return _.orderBy( 143 | _.uniqBy( 144 | data.map(obj => ({ 145 | label: _.get(obj, label), 146 | value: _.get(obj, value) 147 | })).filter(obj => !!obj.label && !!obj.value), 148 | o => o.label 149 | ), 150 | 'label' 151 | ); 152 | }, 153 | 154 | /** 155 | * @method objToRows Converts a single object to an array of {property, value} objects, 156 | * for viewing a single row vertically in Select or List widgets. 157 | * @param {object} obj - A single row of data from an API, Query, or selected table/list row. 158 | * @returns {array} - [{property, value},...] or empty array if obj us invalid. 159 | */ 160 | objToRows(obj = '123') { 161 | if (!obj || typeof obj != 'object') { return [] } 162 | return Object.entries(obj).map(([prop, value]) => ({ prop, value })) 163 | } 164 | 165 | } -------------------------------------------------------------------------------- /resources/videos/todo-kanban-app-with-mongodb/todos.csv: -------------------------------------------------------------------------------- 1 | "status","title","description","createdAt","dueAt","assignedTo" 2 | "in-progress","Engineer backing parse","Molestiae labore iure modi. Consequatur tenetur libero consequuntur.","2022-08-17","2022-11-18","confidence@appsmith.com" 3 | "in-progress","Shirt","Quaerat cumque illo autem ut voluptas doloribus et nemo. Amet esse ad sequi nisi ut quasi hic. Cumque assumenda numquam provident. Eum doloremque doloribus. Aut magnam ut corporis nemo voluptatum nostrum. Sit ratione quis perferendis quia nesciunt. Quo voluptatibus sunt. Libero unde voluptas. Excepturi iure placeat id dignissimos expedita molestiae et. Eius nobis minima porro minima minima quisquam alias accusamus.","2022-08-18","2023-07-12","confidence@appsmith.com" 4 | "todo","Customer Massachusetts","Dolor et dicta laudantium qui quos aut voluptatibus mollitia autem. Et quos laudantium numquam maxime ut quasi dolores quae. Molestias alias hic vel quisquam architecto quis. Omnis qui et eum tempore molestias vitae assumenda dolor fuga. Repellendus et necessitatibus qui. Et iste autem quos quia suscipit quidem dolorem.","2022-08-17","2023-08-03","confidence@appsmith.com" 5 | "todo","Incredible","Hic rerum quod magnam commodi sit asperiores pariatur. Minima numquam quo corrupti. Perferendis omnis cupiditate sit. Tenetur in placeat cupiditate quos ut numquam deserunt laudantium rerum. Inventore numquam earum facere praesentium.","2022-08-17","2023-04-13","vihar@appsmith.com" 6 | "todo","Sleek Marketing Implementation","Et amet occaecati quod laudantium ullam consectetur omnis velit velit. Est omnis voluptatem et voluptatem et dolorum velit debitis.","2022-08-18","2022-09-06","vihar@appsmith.com" 7 | "in-progress","District Rubber","Et id eos ut aspernatur a. Soluta illo quo voluptatem. Numquam accusantium illum et cumque exercitationem ut. Temporibus mollitia necessitatibus magnam ut cupiditate sint veniam. Sapiente soluta nihil ex ea commodi quidem et accusamus. Harum molestiae ex eius harum aliquam assumenda aut. Accusamus accusantium aliquid. Dolor voluptas labore id libero nihil voluptatem. Ea eveniet ex omnis laudantium aut adipisci dolores aspernatur.","2022-08-18","2022-10-14","confidence@appsmith.com" 8 | "in-progress","enable New","Quidem aspernatur rerum qui rerum porro nemo. Perferendis quidem vel nostrum ullam impedit in iusto.","2022-08-17","2023-06-22","confidence@appsmith.com" 9 | "in-progress","hack","Placeat asperiores in quo voluptatum molestiae omnis est dolores. Vel quia id ipsum incidunt. Quaerat aut aut ut laborum possimus sint.","2022-08-18","2023-01-01","vihar@appsmith.com" 10 | "todo","Sudan cyan Vermont","Labore magni ut unde atque harum sed.","2022-08-17","2023-05-29","confidence@appsmith.com" 11 | "todo","Factors maximize","Corrupti laboriosam possimus et est voluptatem. Id iste illo maiores dolor rerum laudantium incidunt perferendis enim. Distinctio voluptatem iusto nisi tenetur et dolores velit aliquam recusandae. Occaecati sit ut. Quia autem laboriosam quaerat aliquid qui maxime voluptatum.","2022-08-17","2023-06-19","confidence@appsmith.com" 12 | "in-progress","Optimized Lithuania","Est modi illum odit minus enim praesentium. In ad quo. Veniam dolorum qui. Et ea ea quo qui consectetur velit doloribus. Quis delectus blanditiis tenetur sequi. Fuga non minima iure aut perspiciatis velit autem. Ab consequatur sit quibusdam cumque. Animi cum voluptas consequatur quia voluptatem expedita.","2022-08-17","2023-07-21","vihar@appsmith.com" 13 | "done","Analyst invoice","Cupiditate et et voluptas. Alias odio ipsum saepe ratione.","2022-08-17","2023-08-14","vihar@appsmith.com" 14 | "in-progress","Alley bluetooth","Mollitia repellendus eius id. Laboriosam necessitatibus nemo et est nam aperiam inventore reprehenderit natus. Occaecati voluptas sint enim quae distinctio vel. Rerum minus culpa eum fugit fugit ratione totam. Nulla fugiat asperiores qui perspiciatis ipsa sed. Et sed earum voluptas. Qui dolorum in quae commodi quia atque voluptatibus est. Architecto molestiae accusamus ipsam laboriosam eos.","2022-08-17","2023-07-23","confidence@appsmith.com" 15 | "done","Bedfordshire Supervisor","Et ratione laborum ex eum recusandae voluptatem ullam velit dicta.","2022-08-17","2022-12-29","vihar@appsmith.com" 16 | "done","Cedi quantifying","Rem libero rerum illum architecto. Ad eius doloribus dolorum possimus earum ut dolorum.","2022-08-17","2023-06-05","vihar@appsmith.com" 17 | "todo","Officer Lead parse","Perferendis molestiae fugiat itaque voluptas recusandae ut perferendis qui. Sapiente nostrum aut sint corrupti harum. Non dignissimos ab omnis quia ut. Voluptatum iusto quo error corporis ut aut facere dolorem. Veniam excepturi qui placeat voluptatem aut impedit nemo quod. Omnis fuga debitis laudantium quo impedit soluta. Occaecati et et. Consectetur facere consequuntur porro dolores nobis aut nobis.","2022-08-18","2023-05-26","vihar@appsmith.com" 18 | "in-progress","Representative","Fugiat nihil non ad voluptatem quis. Quisquam recusandae beatae ut. Nisi quia qui temporibus ut voluptatum deserunt vero magni eum. Suscipit cum voluptatibus rem dignissimos commodi eveniet voluptatem sed a. Eligendi voluptatum incidunt aliquam tempore sed esse magni pariatur. Quis eius inventore.","2022-08-17","2023-03-29","vihar@appsmith.com" 19 | "in-progress","Planner Future optimizing","Deserunt exercitationem quia repudiandae quasi dolores omnis distinctio nisi rerum. Rerum in rerum id et. Minus dolore iusto. Ex veritatis quas ea iusto quaerat quis non. Rem iure qui ipsam eaque possimus quasi quisquam omnis. Voluptatibus consequuntur dolores dolor natus officiis eaque autem id quia. Eum ipsam facere qui pariatur ipsam aut qui.","2022-08-17","2022-11-13","vihar@appsmith.com" 20 | "done","Fresh payment","Rerum sed laborum fuga. Est mollitia voluptas error reprehenderit in quasi laboriosam praesentium corporis.","2022-08-17","2023-03-21","vihar@appsmith.com" 21 | "in-progress","Specialist Expressway","Rerum nisi perspiciatis corrupti. Accusantium quis quisquam aut nihil qui asperiores quia quia. Iure cumque labore corporis.","2022-08-17","2023-02-10","vihar@appsmith.com" -------------------------------------------------------------------------------- /libraries/jsDocLite/COMMENTING.md: -------------------------------------------------------------------------------- 1 | # jsDocLite Supported tags 2 | 3 | ## Overview 4 | `jsDocLite` does not offer full JSDoc support. Instead, it supports a subset of docblock tags that can be used to comment your code and auto-generate documentation. The library will return an object with the doc information ([example](#example)), and you can parse that into whatever template or app that you need. 5 | 6 | The library supports 3 entries: 7 | - modules 8 | - functions 9 | - constants 10 | 11 | For a complete example, see the jsDocLite library [code](./index.js) itself. 12 | 13 | ## Description 14 | The description for each entry is the first text line _before_ any tags. This makes the code more readable for the developer. 15 | _NOTE: description support is limited, and the library works best with single line descriptions._ 16 | 17 | ## Module 18 | This is a very simple system and really only expects a single module to define the library. This is typically the information about the library itself. 19 | - `@module` 20 | 21 | **example** 22 | ```js 23 | /** 24 | * This module provides functionality to parse JSDoc comments from JavaScript code. 25 | * @module JSDocLite 26 | */ 27 | ``` 28 | 29 | ## Functions 30 | Functions can be noted with 3 optional tags - any of the three will work: 31 | - `@function` - expects a name and description 32 | - _alternative: `@method` or `@func`_ 33 | 34 | Functions can have a few different tags to describe them. Each tag is slightly different: 35 | - `@params`- expects a type, name, and description 36 | - _alternative: `@param`, `@arg`, or `@argument`_ 37 | - `@returns` - expects a type and description 38 | - _alternative: `@return` or `@ret`_ 39 | - `@async` - this is a boolean tag to mark this as an async function 40 | - `@link` - an optional URL to docs or some other information 41 | - _alternative: `@doc`_ 42 | 43 | All tags are optional, but should be used if needed. 44 | 45 | **example** 46 | ```js 47 | /** 48 | * Asynchronously fetches JavaScript content from a URL and parses the JSDoc comments. 49 | * @function parseFromUrl 50 | * @param {string} url - The URL to fetch the JavaScript content from. 51 | * @returns {Promise} An object containing the parsed JSDoc comments. 52 | * @async 53 | */ 54 | ``` 55 | 56 | _NOTE: any functions without a `function/func/method` tag will not be listed at all. This is great for helper functions or other "private" functions that are not intended to be used directly._ 57 | 58 | ## Constants 59 | Constants are quite typically variables declared in the library and are notated with: 60 | - `@constant` - expects a type, name, and description 61 | - _alternative: `@const`_ 62 | 63 | **example** 64 | ```js 65 | /** 66 | * Regex to help identify JS Doc blocks in code. 67 | * @constant {object} jsdocRegex 68 | */ 69 | ``` 70 | 71 | ## Example output 72 | Here is an example of the output of the `parse()` method for `jsDocLite` itself: 73 | ```js 74 | { 75 | "modules": { 76 | "JSDocLite": { 77 | "entryType": "module", 78 | "entryName": "JSDocLite", 79 | "description": "This module provides functionality to parse JSDoc comments from JavaScript code." 80 | } 81 | }, 82 | "constants": { 83 | "entryRegex": { 84 | "entryType": "constant", 85 | "entryName": "entryRegex", 86 | "description": "An object of regex to help identify entries for documentation (functions, constants, and modules).", 87 | "dataType": "object" 88 | }, 89 | "tagRegex": { 90 | "entryType": "constant", 91 | "entryName": "tagRegex", 92 | "description": "An object of regex to help identify tags for identified entries.", 93 | "dataType": "object" 94 | }, 95 | "jsdocRegex": { 96 | "entryType": "constant", 97 | "entryName": "jsdocRegex", 98 | "description": "Regex to help identify JS Doc blocks in code.", 99 | "dataType": "object" 100 | } 101 | }, 102 | "functions": { 103 | "parseFromUrl": { 104 | "entryType": "function", 105 | "entryName": "parseFromUrl", 106 | "description": "Asynchronously fetches JavaScript content from a URL and parses the JSDoc comments.", 107 | "params": [ 108 | { 109 | "type": "string", 110 | "name": "url", 111 | "description": "The URL to fetch the JavaScript content from." 112 | } 113 | ], 114 | "async": [ 115 | {} 116 | ] 117 | }, 118 | "parse": { 119 | "entryType": "function", 120 | "entryName": "parse", 121 | "description": "Parses the provided JavaScript code to extract JSDoc comments.", 122 | "params": [ 123 | { 124 | "type": "string", 125 | "name": "code", 126 | "description": "The JavaScript code to parse." 127 | } 128 | ] 129 | }, 130 | "parseComment": { 131 | "entryType": "function", 132 | "entryName": "parseComment", 133 | "description": "Parses a single JSDoc comment block to extract information.", 134 | "params": [ 135 | { 136 | "type": "string", 137 | "name": "comment", 138 | "description": "The JSDoc comment block to parse." 139 | } 140 | ] 141 | }, 142 | "cleanCommentBlock": { 143 | "entryType": "function", 144 | "entryName": "cleanCommentBlock", 145 | "description": "@function cleanCommentBlock Cleans a JSDoc comment block by removing the commenting marks from each line.", 146 | "params": [ 147 | { 148 | "type": "string", 149 | "name": "commentBlock", 150 | "description": "The JSDoc comment block to clean." 151 | } 152 | ] 153 | }, 154 | "fetchJsContent": { 155 | "entryType": "function", 156 | "entryName": "fetchJsContent", 157 | "description": "Asynchronously fetches JavaScript content from a URL.", 158 | "params": [ 159 | { 160 | "type": "string", 161 | "name": "url", 162 | "description": "The URL to fetch the JavaScript content from." 163 | } 164 | ], 165 | "async": [ 166 | {} 167 | ] 168 | } 169 | } 170 | } 171 | ``` -------------------------------------------------------------------------------- /resources/videos/secure-db-login-with-rls/todos.csv: -------------------------------------------------------------------------------- 1 | "id","description","user","status","title" 2 | "016vn","Ipsa illo ut adipisci. Ut ut voluptas modi porro vel esse odit error sapiente. Eum qui quis culpa doloribus autem illum eveniet illo. Sit eius optio quo libero nihil dolores qui sunt. Dolore sapiente eligendi rerum non sint.","confidence@appsmith.com","todo","Shoes" 3 | "1p4ca","Unde enim aut quae quis unde. Nihil quo architecto quibusdam doloribus. Debitis quod laudantium id minus accusantium. Odio hic impedit. Ratione laborum qui possimus ut eligendi eum et qui id. Autem mollitia ad laudantium pariatur magnam autem. Blanditiis expedita quisquam.","vihar@appsmith.com","in-progress","Lanka disintermediate Operative" 4 | "45t9g","Cupiditate ipsam a nobis deleniti consequuntur et nulla adipisci rem. Qui sit quia accusamus. In omnis pariatur assumenda excepturi corporis animi ut rerum doloribus. Dolor in quae. Non dolores reprehenderit sit. Tempore deleniti accusantium delectus est.","confidence@appsmith.com","todo","hierarchy" 5 | "4fybf","Sit ipsum velit placeat molestias. Neque id et. Et quam sit illum rerum. Odit consequuntur aliquid expedita voluptatibus eveniet quaerat perspiciatis. Adipisci et et perspiciatis omnis. Est et aut. Sint voluptates rem atque dolor perferendis.","vihar@appsmith.com","done","SCSI Soft Garden" 6 | "53q8y","Dolorem nemo est et assumenda nihil in in qui. Quasi ut corrupti qui ullam officia quia.","vihar@appsmith.com","done","Dynamic Market Soft" 7 | "5wr7x","Qui aut consequatur asperiores perspiciatis iusto vel asperiores assumenda temporibus. Deleniti voluptatem quia qui blanditiis architecto quae perspiciatis molestiae doloremque.","vihar@appsmith.com","todo","Music" 8 | "7ik95","Dolorem qui molestiae porro est. Nihil commodi rem ipsa suscipit tempora. Omnis dignissimos aut fugit alias reiciendis debitis vitae inventore. Maxime at dignissimos non quis. Asperiores ex est quia aut sequi sed. Dolores ex et ad. Aut est voluptas sequi eligendi id consequatur officiis.","confidence@appsmith.com","todo","Plastic Norway Rustic" 9 | "93ijm","Quo eum nulla delectus dolor aut commodi ipsa est quisquam. Dolores quia sit. Qui vel fugit harum. Quia est qui rerum illo eius deserunt quisquam blanditiis qui.","confidence@appsmith.com","in-progress","fresh-thinking Garden RAM" 10 | "9mr2t","Dolore dolor possimus in sit laborum saepe aliquid voluptatem qui.","confidence@appsmith.com","done","Virgin Buckinghamshire Associate" 11 | "eib0e","Accusantium reprehenderit cum. Ut ut illum praesentium ea nobis placeat. Illo ut similique quos fugit. Distinctio dolores itaque laboriosam aliquam praesentium assumenda occaecati illo.","confidence@appsmith.com","done","e-tailers Cotton" 12 | "fd6wt","Iusto architecto magnam et quia sit ea. Dolor exercitationem possimus velit mollitia in. Ducimus ut est animi aliquid perferendis. Enim quaerat esse explicabo eos pariatur fuga. Quo deserunt consequuntur quibusdam. Recusandae laboriosam consequuntur repellendus maiores. A quia qui quia.","confidence@appsmith.com","in-progress","Buckinghamshire" 13 | "g46mo","Cumque ut sit ex voluptatibus quod non aliquid et qui. Sed voluptas consequatur laborum. Molestias esse vitae aut qui est possimus. Sapiente repellat ipsa debitis. Illo cum ut. Deserunt ducimus dolor aperiam est aliquid magnam et. Ut dolor fugit rerum deleniti. Sequi et id eos voluptatem asperiores accusantium. Illum officia dolores.","confidence@appsmith.com","in-progress","Representative" 14 | "lwapu","Porro minima omnis. Consequatur molestias ducimus dolor cum repudiandae. Minus sunt recusandae non praesentium. Labore ducimus beatae quaerat optio repellat. Dolorum dolore sunt rerum. Minima itaque debitis voluptas ut quia autem provident quaerat. Ad fugiat non doloribus laudantium recusandae vitae quibusdam tempore. Sed nesciunt quo ipsa eos eius. Omnis dolorem quia aperiam magni.","confidence@appsmith.com","in-progress","Home" 15 | "q13u7","Blanditiis labore et fugit et commodi eum nam qui perferendis. Debitis molestiae eum eum. Aliquid ut alias perferendis illo corrupti. Ratione quasi ratione sit provident. Magnam doloribus incidunt expedita consequuntur. Corporis quae enim molestias quibusdam temporibus. Doloremque harum a sunt libero deleniti. Earum voluptas ducimus vel dignissimos perspiciatis occaecati repellat asperiores. Consequatur sit fugiat laborum dolorum voluptatem voluptas excepturi rerum voluptatem.","vihar@appsmith.com","todo","TCP Virtual" 16 | "tz96m","Consequuntur porro cumque. Sed est inventore aspernatur esse ducimus dolorem ad. Quae ratione temporibus aut. Nihil libero omnis doloremque. Debitis sapiente aut totam qui nulla ea. Libero fuga incidunt ut laborum. Et dolorem quisquam saepe perspiciatis. Ut non adipisci omnis fugiat debitis. Ut dolor blanditiis. Tempora dolor beatae nulla quam in harum.","vihar@appsmith.com","done","attitude-oriented Reactive" 17 | "ul9gg","Cum dolores illum corrupti est sed nihil id repellat. Rerum consequatur nesciunt ipsam incidunt molestias sit quis quam. Officiis nemo quia libero. Placeat molestias harum. Corrupti iste mollitia asperiores beatae dolorum voluptate.","vihar@appsmith.com","done","Syrian User Corporate" 18 | "un8hz","Fuga beatae quas totam repellendus in iusto sit reprehenderit. Omnis ullam occaecati aut voluptatem porro. Corporis et delectus praesentium suscipit earum at quis. Magni possimus et facere aut labore. Itaque repellat et odit. Perferendis eum quia delectus. Non perspiciatis nesciunt sed ea at incidunt provident. Corrupti rem dolorem corrupti rerum odit. Non voluptas numquam consequatur at et itaque dolorum et. Expedita perferendis magni dolores molestias minima dolor quasi.","confidence@appsmith.com","done","indexing Small" 19 | "w39c6","Provident at similique perferendis amet facilis tenetur nobis. Aut rerum dolorem aut placeat ducimus occaecati.","confidence@appsmith.com","in-progress","input" 20 | "x6h71","Ut et minus aliquam sapiente. Magni repudiandae unde incidunt voluptas dolores molestias. Nostrum non aliquid commodi qui voluptatum. Molestiae aut nihil. Impedit aut iusto enim similique excepturi odit dicta est. Est unde velit atque temporibus cupiditate. Repudiandae vel optio. Doloremque corrupti perspiciatis deserunt. Animi aperiam facilis.","vihar@appsmith.com","todo","architect maximized Hill" 21 | "ziik9","Recusandae odit beatae et et qui voluptas. Iure cumque voluptatem libero ratione at.","vihar@appsmith.com","todo","monitor" 22 | -------------------------------------------------------------------------------- /resources/videos/appsmith-selfhosted-with-local-databases/todos.csv: -------------------------------------------------------------------------------- 1 | "id","status","title","description","createdAt","dueAt","assignedTo" 2 | "g46mo","in-progress","Representative","Cumque ut sit ex voluptatibus quod non aliquid et qui. Sed voluptas consequatur laborum. Molestias esse vitae aut qui est possimus. Sapiente repellat ipsa debitis. Illo cum ut. Deserunt ducimus dolor aperiam est aliquid magnam et. Ut dolor fugit rerum deleniti. Sequi et id eos voluptatem asperiores accusantium. Illum officia dolores.","2022-09-15","2023-02-14","confidence@appsmith.com" 3 | "1p4ca","in-progress","Lanka disintermediate Operative","Unde enim aut quae quis unde. Nihil quo architecto quibusdam doloribus. Debitis quod laudantium id minus accusantium. Odio hic impedit. Ratione laborum qui possimus ut eligendi eum et qui id. Autem mollitia ad laudantium pariatur magnam autem. Blanditiis expedita quisquam.","2022-09-15","2023-02-06","vihar@appsmith.com" 4 | "ul9gg","done","Syrian User Corporate","Cum dolores illum corrupti est sed nihil id repellat. Rerum consequatur nesciunt ipsam incidunt molestias sit quis quam. Officiis nemo quia libero. Placeat molestias harum. Corrupti iste mollitia asperiores beatae dolorum voluptate.","2022-09-15","2022-12-03","vihar@appsmith.com" 5 | "4fybf","done","SCSI Soft Garden","Sit ipsum velit placeat molestias. Neque id et. Et quam sit illum rerum. Odit consequuntur aliquid expedita voluptatibus eveniet quaerat perspiciatis. Adipisci et et perspiciatis omnis. Est et aut. Sint voluptates rem atque dolor perferendis.","2022-09-15","2022-11-19","vihar@appsmith.com" 6 | "93ijm","in-progress","fresh-thinking Garden RAM","Quo eum nulla delectus dolor aut commodi ipsa est quisquam. Dolores quia sit. Qui vel fugit harum. Quia est qui rerum illo eius deserunt quisquam blanditiis qui.","2022-09-15","2023-08-04","confidence@appsmith.com" 7 | "45t9g","todo","hierarchy","Cupiditate ipsam a nobis deleniti consequuntur et nulla adipisci rem. Qui sit quia accusamus. In omnis pariatur assumenda excepturi corporis animi ut rerum doloribus. Dolor in quae. Non dolores reprehenderit sit. Tempore deleniti accusantium delectus est.","2022-09-15","2023-04-11","confidence@appsmith.com" 8 | "x6h71","todo","architect maximized Hill","Ut et minus aliquam sapiente. Magni repudiandae unde incidunt voluptas dolores molestias. Nostrum non aliquid commodi qui voluptatum. Molestiae aut nihil. Impedit aut iusto enim similique excepturi odit dicta est. Est unde velit atque temporibus cupiditate. Repudiandae vel optio. Doloremque corrupti perspiciatis deserunt. Animi aperiam facilis.","2022-09-15","2022-10-11","vihar@appsmith.com" 9 | "lwapu","in-progress","Home","Porro minima omnis. Consequatur molestias ducimus dolor cum repudiandae. Minus sunt recusandae non praesentium. Labore ducimus beatae quaerat optio repellat. Dolorum dolore sunt rerum. Minima itaque debitis voluptas ut quia autem provident quaerat. Ad fugiat non doloribus laudantium recusandae vitae quibusdam tempore. Sed nesciunt quo ipsa eos eius. Omnis dolorem quia aperiam magni.","2022-09-15","2023-06-06","confidence@appsmith.com" 10 | "eib0e","done","e-tailers Cotton","Accusantium reprehenderit cum. Ut ut illum praesentium ea nobis placeat. Illo ut similique quos fugit. Distinctio dolores itaque laboriosam aliquam praesentium assumenda occaecati illo.","2022-09-15","2023-08-09","confidence@appsmith.com" 11 | "un8hz","done","indexing Small","Fuga beatae quas totam repellendus in iusto sit reprehenderit. Omnis ullam occaecati aut voluptatem porro. Corporis et delectus praesentium suscipit earum at quis. Magni possimus et facere aut labore. Itaque repellat et odit. Perferendis eum quia delectus. Non perspiciatis nesciunt sed ea at incidunt provident. Corrupti rem dolorem corrupti rerum odit. Non voluptas numquam consequatur at et itaque dolorum et. Expedita perferendis magni dolores molestias minima dolor quasi.","2022-09-15","2022-12-20","confidence@appsmith.com" 12 | "53q8y","done","Dynamic Market Soft","Dolorem nemo est et assumenda nihil in in qui. Quasi ut corrupti qui ullam officia quia.","2022-09-15","2023-02-24","vihar@appsmith.com" 13 | "w39c6","in-progress","input","Provident at similique perferendis amet facilis tenetur nobis. Aut rerum dolorem aut placeat ducimus occaecati.","2022-09-15","2023-06-08","confidence@appsmith.com" 14 | "5wr7x","todo","Music","Qui aut consequatur asperiores perspiciatis iusto vel asperiores assumenda temporibus. Deleniti voluptatem quia qui blanditiis architecto quae perspiciatis molestiae doloremque.","2022-09-15","2023-08-31","vihar@appsmith.com" 15 | "9mr2t","done","Virgin Buckinghamshire Associate","Dolore dolor possimus in sit laborum saepe aliquid voluptatem qui.","2022-09-15","2023-02-13","confidence@appsmith.com" 16 | "7ik95","todo","Plastic Norway Rustic","Dolorem qui molestiae porro est. Nihil commodi rem ipsa suscipit tempora. Omnis dignissimos aut fugit alias reiciendis debitis vitae inventore. Maxime at dignissimos non quis. Asperiores ex est quia aut sequi sed. Dolores ex et ad. Aut est voluptas sequi eligendi id consequatur officiis.","2022-09-15","2023-03-26","confidence@appsmith.com" 17 | "ziik9","todo","monitor","Recusandae odit beatae et et qui voluptas. Iure cumque voluptatem libero ratione at.","2022-09-15","2022-11-01","vihar@appsmith.com" 18 | "fd6wt","in-progress","Buckinghamshire","Iusto architecto magnam et quia sit ea. Dolor exercitationem possimus velit mollitia in. Ducimus ut est animi aliquid perferendis. Enim quaerat esse explicabo eos pariatur fuga. Quo deserunt consequuntur quibusdam. Recusandae laboriosam consequuntur repellendus maiores. A quia qui quia.","2022-09-15","2023-07-24","confidence@appsmith.com" 19 | "tz96m","done","attitude-oriented Reactive","Consequuntur porro cumque. Sed est inventore aspernatur esse ducimus dolorem ad. Quae ratione temporibus aut. Nihil libero omnis doloremque. Debitis sapiente aut totam qui nulla ea. Libero fuga incidunt ut laborum. Et dolorem quisquam saepe perspiciatis. Ut non adipisci omnis fugiat debitis. Ut dolor blanditiis. Tempora dolor beatae nulla quam in harum.","2022-09-15","2022-11-18","vihar@appsmith.com" 20 | "016vn","todo","Shoes","Ipsa illo ut adipisci. Ut ut voluptas modi porro vel esse odit error sapiente. Eum qui quis culpa doloribus autem illum eveniet illo. Sit eius optio quo libero nihil dolores qui sunt. Dolore sapiente eligendi rerum non sint.","2022-09-15","2023-01-16","confidence@appsmith.com" 21 | "q13u7","todo","TCP Virtual","Blanditiis labore et fugit et commodi eum nam qui perferendis. Debitis molestiae eum eum. Aliquid ut alias perferendis illo corrupti. Ratione quasi ratione sit provident. Magnam doloribus incidunt expedita consequuntur. Corporis quae enim molestias quibusdam temporibus. Doloremque harum a sunt libero deleniti. Earum voluptas ducimus vel dignissimos perspiciatis occaecati repellat asperiores. Consequatur sit fugiat laborum dolorum voluptatem voluptas excepturi rerum voluptatem.","2022-09-15","2023-09-12","vihar@appsmith.com" -------------------------------------------------------------------------------- /libraries/jsDocLite/index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | /** 3 | * This module provides functionality to parse JSDoc comments from JavaScript code. 4 | * @module JSDocLite 5 | */ 6 | 7 | /** 8 | * An object of regex to help identify entries for documentation (functions, constants, and modules). 9 | * @constant {object} entryRegex 10 | */ 11 | entryRegex: { 12 | 'function': /@(function|func|method)\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm, 13 | 'constant': /@(const|constant|property)\s+{(\w+)}\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm, 14 | 'module': /@(module|class)\s+([a-zA-Z_$][0-9a-zA-Z_$]*)/gm 15 | }, 16 | 17 | /** 18 | * An object of regex to help identify tags for identified entries. 19 | * @constant {object} tagRegex 20 | */ 21 | tagRegex: { 22 | 'params': /@(param|arg|argument)\s+{([\s\S]*?)}\s+([a-zA-Z_$][0-9a-zA-Z_$]*)\s*-([\s\S]*?)(?=@|$)/g, 23 | 'returns': /@returns\s+{([\s\S]*?)}\s+([\s\S]*?)(?=@|$)/g, 24 | 'async': /@async/g, 25 | 'example': /@example\s+([\s\S]*?)(?=@|$)/g, 26 | 'see': /@(see|link|doc)\s+([\s\S]*?)(?=@|$)/g 27 | }, 28 | 29 | /** 30 | * Regex to help identify JS Doc blocks in code. 31 | * @constant {object} jsdocRegex 32 | */ 33 | jsdocRegex: /\/\*\*([\s\S]*?)\*\//g, 34 | 35 | /** 36 | * Asynchronously fetches JavaScript content from a URL and parses the JSDoc comments. 37 | * @function parseFromUrl 38 | * @param {string} url - The URL to fetch the JavaScript content from. 39 | * @returns {Promise} An object containing the parsed JSDoc comments. 40 | * @async 41 | */ 42 | async parseFromUrl(url) { 43 | const code = await this.fetchJsContent(url); 44 | return this.parse(code); 45 | }, 46 | 47 | /** 48 | * Parses the provided JavaScript code to extract JSDoc comments. 49 | * @function parse 50 | * @param {string} code - The JavaScript code to parse. 51 | * @returns {object} An object containing the parsed JSDoc comments. 52 | */ 53 | parse(code) { 54 | // Go through the code and identify the comment blocks. 55 | const jsdocComments = code.match(this.jsdocRegex) || []; 56 | const parsedData = { 57 | modules: {}, 58 | constants: {}, 59 | functions: {} 60 | }; 61 | 62 | // Check each comment block, process it, and aggregate the doc results. 63 | jsdocComments.forEach(commentBlock => { 64 | const cleanedCommentBlock = this.cleanCommentBlock(commentBlock); 65 | const parsedComment = this.parseComment(cleanedCommentBlock); 66 | 67 | if (parsedComment && parsedComment.entryName) { 68 | parsedData[parsedComment.entryType + 's'][parsedComment.entryName] = parsedComment; 69 | } 70 | }); 71 | 72 | return parsedData; 73 | }, 74 | 75 | /** 76 | * Parses a single JSDoc comment block to extract information. 77 | * @function parseComment 78 | * @param {string} comment - The JSDoc comment block to parse. 79 | * @returns {object|null} An object containing the parsed information from the JSDoc comment, or null if no recognized entry tag is found. 80 | */ 81 | parseComment(comment) { 82 | let entryName = null; 83 | let entryType = null; 84 | let entryDataType = null; 85 | 86 | // Extract the description before the first @ tag 87 | const descriptionMatch = comment.match(/^(.+?)(?=@|$)/s); 88 | const description = descriptionMatch ? descriptionMatch[0].trim() : null; 89 | 90 | // Process the comment block looking for an entry (function, module, constant) 91 | Object.entries(this.entryRegex).forEach(([type, regex]) => { 92 | regex.lastIndex = 0; // Reset lastIndex to 0 93 | const match = regex.exec(comment); 94 | if (match) { 95 | entryType = type; 96 | switch (type) { 97 | case 'constant': 98 | entryDataType = match[2]; // Capture the data type for constants 99 | entryName = match[3]; // Capture the name for constants 100 | break; 101 | case 'module': 102 | entryName = match[1]; // Capture the name for modules 103 | break; 104 | default: 105 | entryName = match[2]; // Capture the name for functions and methods 106 | break; 107 | } 108 | } 109 | }); 110 | 111 | // Skip comments without a recognized entry tag 112 | if (!entryName) { 113 | return null; 114 | } 115 | 116 | // Create the intial return object 117 | const details = { entryType, entryName, description, ...(entryDataType ? { dataType: entryDataType } : {}) }; 118 | 119 | // Check the rest of the comment for the tags to output. 120 | for (const [tag, regex] of Object.entries(this.tagRegex)) { 121 | const matches = [...comment.matchAll(regex)]; 122 | if (!matches.length) continue; 123 | 124 | switch (tag) { 125 | case 'params': 126 | // 'params' expects type, name, and description 127 | details[tag] = matches.map(match => ({ 128 | type: match[2]?.trim(), 129 | name: match[3]?.trim(), 130 | description: match[4]?.trim() 131 | })); 132 | break; 133 | 134 | case 'returns': 135 | // 'returns' expects type and description, no name 136 | details[tag] = matches.map(match => ({ 137 | type: match[1]?.trim(), 138 | description: match[2]?.trim() 139 | })); 140 | break; 141 | 142 | case 'async': 143 | // 'async' is a boolean flag, if the tag is present, the function is async 144 | details[tag] = true; 145 | break; 146 | 147 | case 'link': 148 | // 'link' expects a URL, which is the first capturing group in the regex 149 | details[tag] = matches[0][1].trim(); 150 | break; 151 | 152 | default: 153 | // Any other tags that may be added in the future 154 | details[tag] = matches.map(match => match[1]?.trim()); 155 | break; 156 | } 157 | } 158 | 159 | 160 | return details; 161 | }, 162 | 163 | /** 164 | * @function cleanCommentBlock Cleans a JSDoc comment block by removing the commenting marks from each line. 165 | * @param {string} commentBlock - The JSDoc comment block to clean. 166 | * @returns {string} The cleaned comment block. 167 | */ 168 | cleanCommentBlock(commentBlock) { 169 | // Remove the leading /** and trailing */ 170 | commentBlock = commentBlock.replace(/\/\*\*|\*\//g, '').trim(); 171 | // Remove leading * from each line 172 | commentBlock = commentBlock.replace(/^\s*\*+/gm, '').trim(); 173 | return commentBlock; 174 | }, 175 | 176 | /** 177 | * Asynchronously fetches JavaScript content from a URL. 178 | * @function fetchJsContent 179 | * @param {string} url - The URL to fetch the JavaScript content from. 180 | * @returns {Promise} A promise that resolves with the fetched JavaScript content as text. 181 | * @async 182 | */ 183 | async fetchJsContent(url) { 184 | const response = await fetch(url); 185 | if (!response.ok) { 186 | throw new Error(`Failed to fetch JS content from ${url}`); 187 | } 188 | return response.text(); 189 | }, 190 | }; 191 | -------------------------------------------------------------------------------- /resources/videos/support-dashboard-hasuracon-2023/data/tickets.csv: -------------------------------------------------------------------------------- 1 | "id","user","description","status","priority","category","assignedTo","createdAt" 2 | 1,"john@example.com","Encountered an error while submitting a form.","open","high","other","jane@example.com","2023-06-09" 3 | 2,"mary@example.com","Cannot login to the system.","open","medium","account","james@example.com","2023-06-09" 4 | 3,"peter@example.com","The application crashes when I click on a specific button.","open","low","software","sarah@example.com","2023-06-09" 5 | 4,"david@example.com","Billing information is not updating correctly.","closed","high","account","jane@example.com","2023-06-09" 6 | 5,"lisa@example.com","The search feature is returning incorrect results.","open","medium","software","james@example.com","2023-06-09" 7 | 6,"steve@example.com","Cannot access the admin panel.","open","low","account",,"2023-06-09" 8 | 7,"emily@example.com","The application is slow and unresponsive.","closed","high","operations","jane@example.com","2023-06-09" 9 | 8,"michael@example.com","Data is not saving properly in the database.","open","medium","software","james@example.com","2023-06-09" 10 | 9,"olivia@example.com","The system is generating incorrect reports.","open","low","operations","sarah@example.com","2023-06-09" 11 | 10,"andrew@example.com","Unable to upload files to the server.","closed","high","software","jane@example.com","2023-04-09" 12 | 11,"sophia@example.com","Missing data in the user profile.","open","medium","account","james@example.com","2023-06-09" 13 | 12,"benjamin@example.com","The application freezes frequently.","open","low","operations","sarah@example.com","2023-06-09" 14 | 13,"ava@example.com","Error message displayed when trying to process a payment.","closed","high","software","jane@example.com","2023-06-09" 15 | 14,"jack@example.com","The system is not sending email notifications.","open","medium","operations","james@example.com","2023-06-09" 16 | 15,"harper@example.com","Cannot access the support documentation.","open","low","account","sarah@example.com","2023-06-10" 17 | 16,"daniel@example.com","The application is displaying incorrect pricing information.","closed","high","other","jane@example.com","2023-06-10" 18 | 17,"mia@example.com","The system crashes when performing a specific action.","open","medium","software","james@example.com","2023-06-10" 19 | 18,"ethan@example.com","The search feature is not working at all.","open","low","other","sarah@example.com","2023-06-10" 20 | 19,"amelia@example.com","Incorrect data displayed on the dashboard.","closed","high","operations","jane@example.com","2023-06-10" 21 | 20,"oliver@example.com","The application throws an error during checkout.","open","medium","software","james@example.com","2023-06-10" 22 | 21,"william@example.com","The application is not loading properly in Internet Explorer.","open","low","software","sarah@example.com","2023-06-10" 23 | 22,"sophia@example.com","Incorrect calculations in the financial module.","closed","high","operations","jane@example.com","2023-06-10" 24 | 23,"jackson@example.com","Error message displayed when trying to submit a support ticket.","open","medium","other","james@example.com","2023-06-10" 25 | 24,"emma@example.com","The system is not allowing me to change my password.","open","low","account","sarah@example.com","2023-06-10" 26 | 25,"aiden@example.com","Images are not displaying correctly in the gallery.","closed","high","software","jane@example.com","2023-06-10" 27 | 26,"mia@example.com","The application crashes when opening multiple tabs.","open","medium","other","james@example.com","2023-06-11" 28 | 27,"liam@example.com","The search feature is not returning any results.","open","low","software","sarah@example.com","2023-06-11" 29 | 28,"ava@example.com","Unable to download the generated reports.","closed","high","operations","jane@example.com","2023-06-11" 30 | 29,"noah@example.com","The system is not sending email confirmations.","open","medium","operations","james@example.com","2023-06-11" 31 | 30,"olivia@example.com","Cannot update the shipping address in the checkout process.","open","low","account","sarah@example.com","2023-06-11" 32 | 31,"logan@example.com","Error message displayed when trying to process a payment.","closed","high","software","jane@example.com","2023-04-11" 33 | 32,"amelia@example.com","The application is not displaying the correct currency symbol.","open","medium","other","james@example.com","2023-06-11" 34 | 33,"carter@example.com","Incorrect data displayed in the customer profile.","open","low","account","sarah@example.com","2023-06-11" 35 | 34,"henry@example.com","The system is freezing when generating large reports.","closed","high","operations","jane@example.com","2023-06-11" 36 | 35,"harper@example.com","Cannot add items to the shopping cart.","open","medium","software","james@example.com","2023-06-11" 37 | 36,"ryan@example.com","The application is not displaying the correct product images.","open","low","other","sarah@example.com","2023-06-11" 38 | 37,"abigail@example.com","Unable to create a new account.","closed","high","account","jane@example.com","2023-06-12" 39 | 38,"jacob@example.com","The system is not generating invoices correctly.","open","medium","operations","james@example.com","2023-06-12" 40 | 39,"lily@example.com","Error message displayed when trying to update the customer information.","open","low","other","sarah@example.com","2023-06-12" 41 | 40,"lucas@example.com","The application crashes when trying to print shipping labels.","closed","high","software","jane@example.com","2023-06-12" 42 | 41,"oliver@example.com","The application is not displaying the correct pricing for products.","open","low","software","sarah@example.com","2023-06-12" 43 | 42,"isabella@example.com","Unable to access the knowledge base articles.","closed","high","operations","jane@example.com","2023-06-12" 44 | 43,"ethan@example.com","Error message displayed when trying to process a payment.","open","medium","other","james@example.com","2023-06-12" 45 | 44,"mia@example.com","The system is not allowing me to change my account password.","open","low","account","sarah@example.com","2023-06-12" 46 | 45,"aiden@example.com","Images are not loading in the product gallery.","closed","high","software","jane@example.com","2023-06-12" 47 | 46,"ava@example.com","The application crashes when opening multiple tabs.","open","medium","other","james@example.com","2023-06-13" 48 | 47,"liam@example.com","The search results are not being displayed.","open","low","software","sarah@example.com","2023-06-13" 49 | 48,"sophia@example.com","Unable to download the generated reports.","closed","high","operations","jane@example.com","2023-06-13" 50 | 49,"noah@example.com","The system is not sending email notifications.","open","medium","operations","james@example.com","2023-06-13" 51 | 50,"olivia@example.com","Cannot update the shipping address during checkout.","open","low","account","sarah@example.com","2023-06-13" 52 | 51,"logan@example.com","Error message displayed when trying to process a payment.","closed","high","software","jane@example.com","2023-06-13" 53 | 52,"amelia@example.com","The application is not displaying the correct currency symbol.","open","medium","other","james@example.com","2023-06-13" 54 | 53,"jackson@example.com","Incorrect data displayed in the customer profile.","open","low","account","sarah@example.com","2023-06-13" 55 | 54,"henry@example.com","The system is freezing when generating large reports.","closed","high","operations","jane@example.com","2023-06-13" 56 | 55,"harper@example.com","Cannot add items to the shopping cart.","open","medium","software","james@example.com","2023-06-13" 57 | 56,"ryan@example.com","The application is not displaying the correct product images.","open","low","other","sarah@example.com","2023-06-13" 58 | 57,"abigail@example.com","Unable to create a new account.","closed","high","account","jane@example.com","2023-06-14" 59 | 58,"jacob@example.com","The system is not generating invoices correctly.","open","medium","operations","james@example.com","2023-06-14" 60 | 59,"lily@example.com","Error message displayed when trying to update the customer information.","open","low","other",,"2023-06-14" 61 | 60,"lucas@example.com","The application crashes when trying to print shipping labels.","closed","high","software","jane@example.com","2023-06-14" 62 | 61,"oliver@example.com","The application is not displaying the correct pricing for products.","open","low","software","sarah@example.com","2023-06-14" 63 | 62,"isabella@example.com","Unable to access the knowledge base articles.","closed","high","operations","jane@example.com","2023-06-14" 64 | 63,"ethan@example.com","Error message displayed when trying to process a payment.","open","medium","other","james@example.com","2023-06-14" 65 | 64,"mia@example.com","The system is not allowing me to change my account password.","open","low","account","sarah@example.com","2023-06-14" 66 | 65,"aiden@example.com","Images are not loading in the product gallery.","closed","high","software","jane@example.com","2023-06-14" 67 | 66,"ava@example.com","The application crashes when opening multiple tabs.","open","medium","other","james@example.com","2023-06-15" 68 | 67,"liam@example.com","The search results are not being displayed.","open","low","software","sarah@example.com","2023-06-15" 69 | 68,"sophia@example.com","Unable to download the generated reports.","closed","high","operations","jane@example.com","2023-06-15" 70 | 69,"noah@example.com","The system is not sending email notifications.","open","medium","operations","james@example.com","2023-04-15" 71 | 70,"olivia@example.com","Cannot update the shipping address during checkout.","open","low","account","sarah@example.com","2023-06-15" 72 | 71,"logan@example.com","Error message displayed when trying to process a payment.","closed","high","software","jane@example.com","2023-06-15" 73 | 72,"amelia@example.com","The application is not displaying the correct currency symbol.","open","medium","other","james@example.com","2023-06-15" 74 | 73,"jackson@example.com","Incorrect data displayed in the customer profile.","open","low","account","sarah@example.com","2023-06-15" 75 | 74,"henry@example.com","The system is freezing when generating large reports.","closed","high","operations","jane@example.com","2023-06-15" 76 | 75,"harper@example.com","Cannot add items to the shopping cart.","open","medium","software","james@example.com","2023-06-15" 77 | 76,"ryan@example.com","The application is not displaying the correct product images.","open","low","other","sarah@example.com","2023-06-15" 78 | 77,"abigail@example.com","Unable to create a new account.","closed","high","account","jane@example.com","2023-06-16" 79 | 78,"jacob@example.com","The system is not generating invoices correctly.","open","medium","operations","james@example.com","2023-04-16" 80 | 79,"lily@example.com","Error message displayed when trying to update the customer information.","open","low","other","sarah@example.com","2023-06-16" 81 | 80,"lucas@example.com","The application crashes when trying to print shipping labels.","closed","high","software","jane@example.com","2023-06-16" 82 | -------------------------------------------------------------------------------- /resources/videos/csv-to-firestore/app.json: -------------------------------------------------------------------------------- 1 | {"clientSchemaVersion":1.0,"serverSchemaVersion":6.0,"exportedApplication":{"name":"CSV to Firestore","isPublic":false,"pages":[{"id":"Page1","isDefault":true}],"publishedPages":[{"id":"Page1","isDefault":true}],"viewMode":false,"appIsExample":false,"unreadCommentThreads":0.0,"color":"#EAEDFB","icon":"pie-chart","slug":"csv-to-firestore","evaluationVersion":2.0,"applicationVersion":2.0,"isManualUpdate":false,"deleted":false},"datasourceList":[{"name":"Firebase","pluginId":"firestore-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"gitSyncId":"602b9a4012ba0d29d3ec153c_63526588dc264920d5e259c4"}],"pageList":[{"unpublishedPage":{"name":"Page1","slug":"page1","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":4896.0,"snapColumns":64.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":720.0,"containerStyle":"none","snapRows":125.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":64.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[{"boxShadow":"none","widgetName":"FilePicker1","buttonColor":"{{appsmith.theme.colors.primaryColor}}","displayName":"FilePicker","iconSVG":"/static/media/icon.7c5ad9c357928c6ff5701bf51a56c2e5.svg","searchTags":["upload_row"],"topRow":10.0,"bottomRow":14.0,"parentRowSpace":10.0,"allowedFileTypes":[],"type":"FILE_PICKER_WIDGET_V2","hideCard":false,"animateLoading":true,"parentColumnSpace":15.0625,"dynamicTriggerPathList":[],"leftColumn":3.0,"dynamicBindingPathList":[{"key":"buttonColor"},{"key":"borderRadius"}],"isDisabled":false,"key":"03eygmmgwm","isRequired":false,"isDeprecated":false,"rightColumn":19.0,"isDefaultClickDisabled":true,"widgetId":"4qfuo8uxy5","isVisible":true,"label":"Select CSV Files","maxFileSize":5.0,"dynamicTyping":true,"version":1.0,"fileDataType":"Array","parentId":"0","selectedFiles":[],"renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","files":[],"maxNumFiles":1.0},{"boxShadow":"{{appsmith.theme.boxShadow.appBoxShadow}}","isVisibleDownload":true,"iconSVG":"/static/media/icon.db8a9cbd2acd22a31ea91cc37ea2a46c.svg","topRow":14.0,"isSortable":true,"type":"TABLE_WIDGET_V2","inlineEditingSaveOption":"ROW_LEVEL","animateLoading":true,"dynamicBindingPathList":[{"key":"accentColor"},{"key":"borderRadius"},{"key":"boxShadow"},{"key":"childStylesheet.button.buttonColor"},{"key":"childStylesheet.button.borderRadius"},{"key":"childStylesheet.menuButton.menuColor"},{"key":"childStylesheet.menuButton.borderRadius"},{"key":"childStylesheet.iconButton.buttonColor"},{"key":"childStylesheet.iconButton.borderRadius"},{"key":"childStylesheet.editActions.saveButtonColor"},{"key":"childStylesheet.editActions.saveBorderRadius"},{"key":"childStylesheet.editActions.discardButtonColor"},{"key":"childStylesheet.editActions.discardBorderRadius"},{"key":"tableData"},{"key":"primaryColumns.id.computedValue"},{"key":"primaryColumns.name.computedValue"},{"key":"primaryColumns.email.computedValue"},{"key":"primaryColumns.username.computedValue"},{"key":"primaryColumns.job.computedValue"},{"key":"primaryColumns.phone.computedValue"}],"leftColumn":3.0,"delimiter":",","defaultSelectedRowIndex":0.0,"accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisibleFilters":true,"isVisible":true,"enableClientSideSearch":true,"version":1.0,"totalRecordsCount":0.0,"isLoading":false,"childStylesheet":{"button":{"buttonColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"menuButton":{"menuColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"iconButton":{"buttonColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"editActions":{"saveButtonColor":"{{appsmith.theme.colors.primaryColor}}","saveBorderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","discardButtonColor":"{{appsmith.theme.colors.primaryColor}}","discardBorderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}"}},"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","defaultSelectedRowIndices":[0.0],"widgetName":"Table1","defaultPageSize":0.0,"columnOrder":["id","name","email","username","job","phone"],"dynamicPropertyPathList":[],"displayName":"Table","bottomRow":55.0,"columnWidthMap":{"task":245.0,"step":62.0,"status":75.0},"parentRowSpace":10.0,"hideCard":false,"parentColumnSpace":15.0625,"dynamicTriggerPathList":[],"primaryColumns":{"id":{"allowCellWrapping":false,"index":1.0,"width":150.0,"originalId":"id","id":"id","alias":"id","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"id","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"id\"]))}}","validation":{}},"name":{"allowCellWrapping":false,"index":3.0,"width":150.0,"originalId":"name","id":"name","alias":"name","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"name","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"name\"]))}}","validation":{}},"email":{"allowCellWrapping":false,"index":2.0,"width":150.0,"originalId":"email","id":"email","alias":"email","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"email","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"email\"]))}}","validation":{}},"username":{"allowCellWrapping":false,"index":3.0,"width":150.0,"originalId":"username","id":"username","alias":"username","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"username","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"username\"]))}}","validation":{}},"job":{"allowCellWrapping":false,"index":4.0,"width":150.0,"originalId":"job","id":"job","alias":"job","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"job","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"job\"]))}}","validation":{}},"phone":{"allowCellWrapping":false,"index":5.0,"width":150.0,"originalId":"phone","id":"phone","alias":"phone","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"phone","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"phone\"]))}}","validation":{}}},"key":"w85r0e6p9y","isDeprecated":false,"rightColumn":61.0,"textSize":"0.875rem","widgetId":"n492yqx2go","tableData":"{{FilePicker1.files[0].data}}","label":"Data","searchKey":"","parentId":"0","renderMode":"CANVAS","horizontalAlignment":"LEFT","isVisibleSearch":true,"isVisiblePagination":true,"verticalAlignment":"CENTER"},{"resetFormOnClick":false,"boxShadow":"none","widgetName":"Button1","onClick":"{{utils.upload()}}","buttonColor":"{{appsmith.theme.colors.primaryColor}}","displayName":"Button","iconSVG":"/static/media/icon.cca026338f1c8eb6df8ba03d084c2fca.svg","searchTags":["click","submit"],"topRow":10.0,"bottomRow":14.0,"parentRowSpace":10.0,"type":"BUTTON_WIDGET","hideCard":false,"animateLoading":true,"parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onClick"}],"leftColumn":45.0,"dynamicBindingPathList":[{"key":"buttonColor"},{"key":"borderRadius"}],"text":"Upload","isDisabled":false,"key":"v6yl1xd8v0","isDeprecated":false,"rightColumn":61.0,"isDefaultClickDisabled":true,"widgetId":"li9mjg531y","isVisible":true,"recaptchaType":"V3","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"disabledWhenInvalid":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","buttonVariant":"PRIMARY","placement":"CENTER"},{"widgetName":"Text1","displayName":"Text","iconSVG":"/static/media/icon.97c59b523e6f70ba6f40a10fc2c7c5b5.svg","searchTags":["typography","paragraph","label"],"topRow":1.0,"bottomRow":6.0,"parentRowSpace":10.0,"type":"TEXT_WIDGET","hideCard":false,"animateLoading":true,"overflow":"NONE","fontFamily":"{{appsmith.theme.fontFamily.appFont}}","parentColumnSpace":15.0625,"dynamicTriggerPathList":[],"leftColumn":17.0,"dynamicBindingPathList":[{"key":"fontFamily"},{"key":"borderRadius"}],"shouldTruncate":false,"truncateButtonColor":"#FFC13D","text":"CSV To Firestore","key":"isetgoa8ql","isDeprecated":false,"rightColumn":48.0,"textAlign":"CENTER","widgetId":"o231crhddr","isVisible":true,"fontStyle":"BOLD","textColor":"#231F20","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","fontSize":"1.875rem"}]},"layoutOnLoadActions":[],"layoutOnLoadActionErrors":[],"validOnPageLoadActions":true,"id":"Page1","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[]},"publishedPage":{"name":"Page1","slug":"page1","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":1224.0,"snapColumns":16.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":1250.0,"containerStyle":"none","snapRows":33.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":4.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[]},"validOnPageLoadActions":true,"id":"Page1","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[]},"deleted":false,"gitSyncId":"63565c13dc264920d5e28674_63565c13dc264920d5e28676"}],"actionList":[{"pluginType":"DB","pluginId":"firestore-plugin","unpublishedAction":{"name":"upload_row","datasource":{"name":"Firebase","pluginId":"firestore-plugin","messages":[],"isAutoGenerated":false,"id":"Firebase","deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"selfReferencingDataPaths":[],"formData":{"command":{"data":"SET_DOCUMENT"},"path":{"data":"users/{{this.params.id}}"},"timestampValuePath":{"data":""},"body":{"data":"{{this.params.rowData}}"},"orderBy":{"data":""},"next":{"data":""},"prev":{"data":""},"limitDocuments":{"data":"10"},"where":{"data":{"condition":"AND"}},"deleteKeyPath":{"data":""},"smartSubstitution":true}},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"formData.path.data"},{"key":"formData.body.data"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["this.params.rowData","this.params.id"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_upload_row","deleted":false,"gitSyncId":"63565c13dc264920d5e28674_63565d334b1a8d429123872c"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"upload","fullyQualifiedName":"utils.upload","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","collectionId":"Page1_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n const uploads = FilePicker1.files[0].data.map(row => {\n const {id, ...rowData} = row;\n return upload_row.run({\n id,\n rowData\n });\n });\n return Promise.all(uploads).then(() => showAlert('Upload complete', 'success')).catch(e => showAlert(e.message, 'warning'));\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n const uploads = FilePicker1.files[0].data.map(row => {\n const {id, ...rowData} = row;\n return upload_row.run({\n id,\n rowData\n });\n });\n return Promise.all(uploads).then(() => showAlert('Upload complete', 'success')).catch(e => showAlert(e.message, 'warning'));\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_utils.upload","deleted":false,"gitSyncId":"63565c13dc264920d5e28674_63565e60f6cdb970519c10b4"}],"actionCollectionList":[{"unpublishedCollection":{"name":"utils","pageId":"Page1","pluginId":"js-plugin","pluginType":"JS","actions":[],"archivedActions":[],"body":"export default {\n\tupload: () => {\n\t\tconst uploads = FilePicker1.files[0].data.map(row => {\n\t\t\tconst {id, ...rowData} = row;\n\t\t\treturn upload_row.run({id, rowData});\n\t\t});\n\t\t\n\t\treturn Promise.all(uploads)\n\t\t.then(() => showAlert('Upload complete', 'success'))\n\t\t.catch(e => showAlert(e.message, 'warning'));\n\t}\n}","variables":[]},"id":"Page1_utils","deleted":false,"gitSyncId":"63565c13dc264920d5e28674_63565e5531cf9c0f49180099"}],"updatedResources":{"actionList":["upload_row##ENTITY_SEPARATOR##Page1","utils.upload##ENTITY_SEPARATOR##Page1"],"pageList":["Page1"],"actionCollectionList":["utils##ENTITY_SEPARATOR##Page1"]},"editModeTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false},"publishedTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false}} -------------------------------------------------------------------------------- /resources/videos/codescanner-checkout-app/app.json: -------------------------------------------------------------------------------- 1 | {"clientSchemaVersion":1.0,"serverSchemaVersion":6.0,"exportedApplication":{"name":"CodeScanner","isPublic":false,"pages":[{"id":"Page1","isDefault":true}],"publishedPages":[{"id":"Page1","isDefault":true}],"viewMode":false,"appIsExample":false,"unreadCommentThreads":0.0,"color":"#C2DAF0","icon":"basketball","slug":"codescanner","evaluationVersion":2.0,"applicationVersion":2.0,"isManualUpdate":false,"deleted":false},"datasourceList":[{"name":"supabase","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"gitSyncId":"602b9a4012ba0d29d3ec153c_61d7011c87725863b5edf104"}],"pageList":[{"unpublishedPage":{"name":"Page1","slug":"page1","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":4896.0,"snapColumns":64.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":910.0,"containerStyle":"none","snapRows":125.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":63.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[{"boxShadow":"none","widgetName":"CodeScanner1","buttonColor":"{{appsmith.theme.colors.primaryColor}}","dynamicPropertyPathList":[],"displayName":"Code Scanner","iconSVG":"/static/media/icon.c4a2da6d32c0f212d031fca147e4f7cb.svg","searchTags":["barcode scanner","qr scanner","code detector","barcode reader"],"topRow":6.0,"bottomRow":10.0,"parentRowSpace":10.0,"type":"CODE_SCANNER_WIDGET","hideCard":false,"animateLoading":true,"parentColumnSpace":17.0625,"dynamicTriggerPathList":[{"key":"onCodeDetected"}],"leftColumn":40.0,"dynamicBindingPathList":[{"key":"buttonColor"},{"key":"borderRadius"}],"isDisabled":false,"key":"y95170hb73","isRequired":false,"isDeprecated":false,"rightColumn":56.0,"isDefaultClickDisabled":true,"widgetId":"wlwz2mj157","onCodeDetected":"{{app.getProduct()}}","isVisible":true,"label":"Add Item","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","placement":"CENTER"},{"widgetName":"Text1","displayName":"Text","iconSVG":"/static/media/icon.97c59b523e6f70ba6f40a10fc2c7c5b5.svg","searchTags":["typography","paragraph","label"],"topRow":6.0,"bottomRow":10.0,"parentRowSpace":10.0,"type":"TEXT_WIDGET","hideCard":false,"animateLoading":true,"overflow":"NONE","fontFamily":"{{appsmith.theme.fontFamily.appFont}}","parentColumnSpace":17.0625,"dynamicTriggerPathList":[],"leftColumn":8.0,"dynamicBindingPathList":[{"key":"fontFamily"},{"key":"borderRadius"}],"shouldTruncate":false,"truncateButtonColor":"#FFC13D","text":"Checkout","key":"colk8wiuuw","isDeprecated":false,"rightColumn":24.0,"textAlign":"LEFT","widgetId":"suti8yte99","isVisible":true,"fontStyle":"BOLD","textColor":"#231F20","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","fontSize":"1.875rem"},{"widgetName":"Text2","displayName":"Text","iconSVG":"/static/media/icon.97c59b523e6f70ba6f40a10fc2c7c5b5.svg","searchTags":["typography","paragraph","label"],"topRow":51.0,"bottomRow":55.0,"parentRowSpace":10.0,"type":"TEXT_WIDGET","hideCard":false,"animateLoading":true,"overflow":"NONE","fontFamily":"{{appsmith.theme.fontFamily.appFont}}","parentColumnSpace":17.0625,"dynamicTriggerPathList":[],"leftColumn":8.0,"dynamicBindingPathList":[{"key":"fontFamily"},{"key":"borderRadius"}],"shouldTruncate":false,"truncateButtonColor":"#FFC13D","text":"Total","key":"colk8wiuuw","isDeprecated":false,"rightColumn":11.0,"textAlign":"LEFT","widgetId":"5fzrbvr3dc","isVisible":true,"fontStyle":"","textColor":"#231F20","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","fontSize":"1rem"},{"widgetName":"Text3","displayName":"Text","iconSVG":"/static/media/icon.97c59b523e6f70ba6f40a10fc2c7c5b5.svg","searchTags":["typography","paragraph","label"],"topRow":51.0,"bottomRow":55.0,"parentRowSpace":10.0,"type":"TEXT_WIDGET","hideCard":false,"animateLoading":true,"overflow":"NONE","fontFamily":"{{appsmith.theme.fontFamily.appFont}}","parentColumnSpace":17.0625,"dynamicTriggerPathList":[],"leftColumn":11.0,"dynamicBindingPathList":[{"key":"fontFamily"},{"key":"borderRadius"},{"key":"text"}],"shouldTruncate":false,"truncateButtonColor":"#FFC13D","text":"${{appsmith.store.checkout.reduce((p,c) => (p+=c.price*c.quantity), 0)}}","key":"colk8wiuuw","isDeprecated":false,"rightColumn":27.0,"textAlign":"LEFT","widgetId":"nrw5uk9hsw","isVisible":true,"fontStyle":"BOLD","textColor":"#231F20","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","fontSize":"1rem"},{"boxShadow":"{{appsmith.theme.boxShadow.appBoxShadow}}","isVisibleDownload":true,"iconSVG":"/static/media/icon.db8a9cbd2acd22a31ea91cc37ea2a46c.svg","topRow":11.0,"isSortable":true,"type":"TABLE_WIDGET_V2","inlineEditingSaveOption":"ROW_LEVEL","animateLoading":true,"dynamicBindingPathList":[{"key":"accentColor"},{"key":"borderRadius"},{"key":"boxShadow"},{"key":"childStylesheet.button.buttonColor"},{"key":"childStylesheet.button.borderRadius"},{"key":"childStylesheet.menuButton.menuColor"},{"key":"childStylesheet.menuButton.borderRadius"},{"key":"childStylesheet.iconButton.buttonColor"},{"key":"childStylesheet.iconButton.borderRadius"},{"key":"childStylesheet.editActions.saveButtonColor"},{"key":"childStylesheet.editActions.saveBorderRadius"},{"key":"childStylesheet.editActions.discardButtonColor"},{"key":"childStylesheet.editActions.discardBorderRadius"},{"key":"tableData"},{"key":"primaryColumns.id.computedValue"},{"key":"primaryColumns.name.computedValue"},{"key":"primaryColumns.price.computedValue"},{"key":"primaryColumns.quantity.computedValue"},{"key":"primaryColumns.customColumn1.borderRadius"},{"key":"primaryColumns.customColumn1.boxShadow"},{"key":"primaryColumns.customColumn2.borderRadius"},{"key":"primaryColumns.customColumn2.boxShadow"},{"key":"primaryColumns.customColumn1.buttonColor"}],"leftColumn":8.0,"delimiter":",","defaultSelectedRowIndex":0.0,"accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisibleFilters":true,"isVisible":true,"enableClientSideSearch":true,"version":1.0,"totalRecordsCount":0.0,"isLoading":false,"childStylesheet":{"button":{"buttonColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"menuButton":{"menuColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"iconButton":{"buttonColor":"{{appsmith.theme.colors.primaryColor}}","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","boxShadow":"none"},"editActions":{"saveButtonColor":"{{appsmith.theme.colors.primaryColor}}","saveBorderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","discardButtonColor":"{{appsmith.theme.colors.primaryColor}}","discardBorderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}"}},"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","defaultSelectedRowIndices":[0.0],"widgetName":"Table1","defaultPageSize":0.0,"columnOrder":["id","name","price","quantity","customColumn1","customColumn2"],"dynamicPropertyPathList":[{"key":"primaryColumns.customColumn1.onClick"},{"key":"primaryColumns.customColumn2.onClick"}],"displayName":"Table","bottomRow":50.0,"columnWidthMap":{"task":245.0,"step":62.0,"status":75.0,"customColumn1":95.0,"quantity":118.0,"price":105.0},"parentRowSpace":10.0,"hideCard":false,"parentColumnSpace":17.0625,"dynamicTriggerPathList":[{"key":"primaryColumns.customColumn1.onClick"},{"key":"primaryColumns.customColumn2.onClick"}],"primaryColumns":{"id":{"allowCellWrapping":false,"index":0.0,"width":150.0,"originalId":"id","id":"id","alias":"id","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"id","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"id\"]))}}","validation":{}},"name":{"allowCellWrapping":false,"index":1.0,"width":150.0,"originalId":"name","id":"name","alias":"name","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"name","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"name\"]))}}","validation":{}},"price":{"allowCellWrapping":false,"index":2.0,"width":150.0,"originalId":"price","id":"price","alias":"price","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"price","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"price\"]))}}","validation":{}},"quantity":{"allowCellWrapping":false,"index":3.0,"width":150.0,"originalId":"quantity","id":"quantity","alias":"quantity","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"text","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":false,"label":"quantity","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( currentRow[\"quantity\"]))}}","validation":{}},"customColumn1":{"allowCellWrapping":false,"index":4.0,"width":150.0,"originalId":"customColumn1","id":"customColumn1","alias":"customColumn1","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"iconButton","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":true,"label":"add","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"","validation":{},"buttonStyle":"rgb(3, 179, 101)","labelColor":"#FFFFFF","buttonColor":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( appsmith.theme.colors.primaryColor))}}","borderRadius":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( appsmith.theme.borderRadius.appBorderRadius))}}","boxShadow":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( 'none'))}}","customAlias":"","iconName":"plus","onClick":"{{app.addToCheckout(currentRow)}}","buttonVariant":"SECONDARY"},"customColumn2":{"allowCellWrapping":false,"index":5.0,"width":150.0,"originalId":"customColumn2","id":"customColumn2","alias":"customColumn2","horizontalAlignment":"LEFT","verticalAlignment":"CENTER","columnType":"iconButton","textSize":"0.875rem","enableFilter":true,"enableSort":true,"isVisible":true,"isDisabled":false,"isCellEditable":false,"isEditable":false,"isCellVisible":true,"isDerived":true,"label":"remove","isSaveVisible":true,"isDiscardVisible":true,"computedValue":"","validation":{},"buttonStyle":"rgb(3, 179, 101)","labelColor":"#FFFFFF","buttonColor":"#f87171","borderRadius":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( appsmith.theme.borderRadius.appBorderRadius))}}","boxShadow":"{{Table1.processedTableData.map((currentRow, currentIndex) => ( 'none'))}}","customAlias":"","iconName":"minus","onClick":"{{app.removeFromCheckout(currentRow)}}","buttonVariant":"SECONDARY"}},"key":"1hr1suxhf7","isDeprecated":false,"rightColumn":56.0,"textSize":"0.875rem","widgetId":"afm8jdaqct","tableData":"{{appsmith.store.checkout}}","label":"Data","searchKey":"","parentId":"0","renderMode":"CANVAS","horizontalAlignment":"LEFT","isVisibleSearch":true,"isVisiblePagination":true,"verticalAlignment":"CENTER"}]},"layoutOnLoadActions":[],"validOnPageLoadActions":true,"id":"Page1","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[]},"publishedPage":{"name":"Page1","slug":"page1","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":1224.0,"snapColumns":16.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":1250.0,"containerStyle":"none","snapRows":33.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":4.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[]},"validOnPageLoadActions":true,"id":"Page1","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[]},"deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332b794e049b617dfe4fb70"}],"actionList":[{"pluginType":"API","pluginId":"restapi-plugin","unpublishedAction":{"name":"get_users","datasource":{"name":"DEFAULT_REST_DATASOURCE","pluginId":"restapi-plugin","datasourceConfiguration":{"url":"https://mock-api.appsmith.com"},"invalids":[],"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","path":"/users","headers":[],"encodeParamsToggle":true,"queryParameters":[],"bodyFormData":[],"httpMethod":"GET","pluginSpecifiedTemplates":[{"value":true}],"formData":{"apiContentType":"none"}},"executeOnLoad":false,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_get_users","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332b8b836f8125271578b4a"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"get_products","datasource":{"name":"supabase","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"supabase","deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"SELECT * FROM checkout WHERE id = '{{CodeScanner1.value}}';","pluginSpecifiedTemplates":[{"value":false}]},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["CodeScanner1.value"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_get_products","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332f0cf2384d5623d9a057c"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"getProduct","fullyQualifiedName":"app.getProduct","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","collectionId":"Page1_app","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"async () => {\n const [res] = await get_products.run();\n app.addToCheckout(res);\n}","jsArguments":[],"isAsync":true},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["async () => {\n const [res] = await get_products.run();\n app.addToCheckout(res);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_app.getProduct","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332f143e049b617dfe502a4"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"addToCheckout","fullyQualifiedName":"app.addToCheckout","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","collectionId":"Page1_app","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"item => {\n const [i, q, checkout] = app.find(item);\n if (~i) {\n checkout[i] = {\n ...checkout[i],\n quantity: q + 1\n };\n } else {\n checkout.push({\n ...item,\n quantity: 1\n });\n }\n ;\n storeValue('checkout', checkout);\n}","jsArguments":[{}],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["item => {\n const [i, q, checkout] = app.find(item);\n if (~i) {\n checkout[i] = {\n ...checkout[i],\n quantity: q + 1\n };\n } else {\n checkout.push({\n ...item,\n quantity: 1\n });\n }\n ;\n storeValue('checkout', checkout);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_app.addToCheckout","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332f1dfe049b617dfe502ae"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"removeFromCheckout","fullyQualifiedName":"app.removeFromCheckout","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","collectionId":"Page1_app","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"item => {\n const [i, q, checkout] = app.find(item);\n if (q > 1) {\n checkout[i] = {\n ...checkout[i],\n quantity: q - 1\n };\n } else {\n checkout.splice(i, 1);\n }\n storeValue('checkout', checkout);\n}","jsArguments":[{}],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["item => {\n const [i, q, checkout] = app.find(item);\n if (q > 1) {\n checkout[i] = {\n ...checkout[i],\n quantity: q - 1\n };\n } else {\n checkout.splice(i, 1);\n }\n storeValue('checkout', checkout);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_app.removeFromCheckout","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332f52e04289f792a05bb85"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"find","fullyQualifiedName":"app.find","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Page1","collectionId":"Page1_app","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"item => {\n const checkout = appsmith.store.checkout || [];\n const i = checkout.findIndex(i => i.id == item.id);\n const q = checkout[i]?.quantity;\n return [i, q, checkout];\n}","jsArguments":[{}],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["item => {\n const checkout = appsmith.store.checkout || [];\n const i = checkout.findIndex(i => i.id == item.id);\n const q = checkout[i]?.quantity;\n return [i, q, checkout];\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Page1_app.find","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_633412f904289f792a05ce7b"}],"actionCollectionList":[{"unpublishedCollection":{"name":"app","pageId":"Page1","pluginId":"js-plugin","pluginType":"JS","actions":[],"archivedActions":[],"body":"export default {\n\tfind: (item) => {\n\t\tconst checkout = appsmith.store.checkout || [];\n\t\tconst i = checkout.findIndex(i => i.id ==item.id);\n\t\tconst q = checkout[i]?.quantity;\n\t\treturn [i, q, checkout];\n\t},\n\taddToCheckout: (item) => {\n\t\tconst [i, q, checkout] = this.find(item);\n\t\tif(~i) {\n\t\t\tcheckout[i] = {...checkout[i], quantity: q+1};\n\t\t} else {\n\t\t\tcheckout.push({...item, quantity: 1});\n\t\t};\n\t\tstoreValue('checkout', checkout);\n\t},\n\tremoveFromCheckout: (item) => {\n\t\tconst [i, q, checkout] = this.find(item);\n\t\tif(q > 1) {\n\t\t\tcheckout[i] = {...checkout[i], quantity: q-1};\n\t\t} else {\n\t\t\tcheckout.splice(i, 1);\n\t\t}\n\t\tstoreValue('checkout', checkout);\n\t},\n\tgetProduct: async ()=> {\n\t\tconst [res] = await get_products.run();\n\t\tthis.addToCheckout(res);\n\t},\n}","variables":[]},"id":"Page1_app","deleted":false,"gitSyncId":"6332b794e049b617dfe4fb6e_6332b96c7b4c24069e3cad67"}],"updatedResources":{"actionList":["get_users##ENTITY_SEPARATOR##Page1","app.removeFromCheckout##ENTITY_SEPARATOR##Page1","get_products##ENTITY_SEPARATOR##Page1","app.addToCheckout##ENTITY_SEPARATOR##Page1","app.getProduct##ENTITY_SEPARATOR##Page1","app.find##ENTITY_SEPARATOR##Page1"],"pageList":["Page1"],"actionCollectionList":["app##ENTITY_SEPARATOR##Page1"]},"editModeTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false},"publishedTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false}} -------------------------------------------------------------------------------- /resources/videos/dynamodb-admin-panel-livestream/products.csv: -------------------------------------------------------------------------------- 1 | "id","image","price","quantity","expires_at","title","description" 2 | "yv991","https://api.lorem.space/image/shoes?w=300&h=300&s=30079","798.00",89440,"2022-11-14","Rustic Granite Fish","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 3 | "pjh6h","https://api.lorem.space/image/shoes?w=300&h=300&s=93088","257.00",86847,"2023-07-21","Small Cotton Mouse","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 4 | "qllo0","https://api.lorem.space/image/shoes?w=300&h=300&s=17720","345.00",58995,"2022-10-18","Practical Granite Table","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 5 | "dxa1x","https://api.lorem.space/image/shoes?w=300&h=300&s=37258","185.00",61144,"2023-07-20","Fantastic Fresh Pants","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 6 | "jmygd","https://api.lorem.space/image/shoes?w=300&h=300&s=78635","811.00",70369,"2023-01-24","Rustic Metal Shoes","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 7 | "2aei9","https://api.lorem.space/image/shoes?w=300&h=300&s=4165","480.00",67743,"2023-06-14","Handcrafted Cotton Towels","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 8 | "e25ln","https://api.lorem.space/image/shoes?w=300&h=300&s=577","413.00",75232,"2023-05-22","Tasty Concrete Sausages","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 9 | "evdst","https://api.lorem.space/image/shoes?w=300&h=300&s=60017","652.00",90943,"2023-05-25","Ergonomic Metal Ball","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 10 | "l5cop","https://api.lorem.space/image/shoes?w=300&h=300&s=40581","688.00",68886,"2022-11-04","Unbranded Soft Bacon","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 11 | "e821g","https://api.lorem.space/image/shoes?w=300&h=300&s=37212","493.00",65475,"2023-08-21","Handcrafted Metal Fish","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 12 | "7b6uu","https://api.lorem.space/image/shoes?w=300&h=300&s=84292","224.00",101099,"2022-12-13","Handcrafted Metal Chips","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 13 | "oeu5v","https://api.lorem.space/image/shoes?w=300&h=300&s=32277","352.00",88284,"2023-05-22","Ergonomic Cotton Salad","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 14 | "v8ye6","https://api.lorem.space/image/shoes?w=300&h=300&s=12108","635.00",70249,"2023-03-28","Small Concrete Salad","The Football Is Good For Training And Recreational Purposes" 15 | "unjgx","https://api.lorem.space/image/shoes?w=300&h=300&s=62483","734.00",65128,"2022-12-18","Intelligent Concrete Soap","Boston's most advanced compression wear technology increases muscle oxygenation stabilizes active muscles" 16 | "d8u11","https://api.lorem.space/image/shoes?w=300&h=300&s=98738","687.00",100358,"2022-10-08","Awesome Soft Bike","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 17 | "madpc","https://api.lorem.space/image/shoes?w=300&h=300&s=24815","678.00",58924,"2023-07-04","Unbranded Frozen Chair","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 18 | "mjff4","https://api.lorem.space/image/shoes?w=300&h=300&s=9814","459.00",65258,"2022-12-07","Rustic Fresh Pants","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 19 | "falu3","https://api.lorem.space/image/shoes?w=300&h=300&s=8791","525.00",76193,"2023-01-23","Tasty Metal Chips","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 20 | "cn48k","https://api.lorem.space/image/shoes?w=300&h=300&s=74411","633.00",96344,"2023-04-03","Intelligent Wooden Chicken","The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes that started with the 1984 ABC800J" 21 | "nh414","https://api.lorem.space/image/shoes?w=300&h=300&s=49283","658.00",68307,"2022-12-16","Intelligent Concrete Car","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 22 | "va1a6","https://api.lorem.space/image/shoes?w=300&h=300&s=68030","144.00",98602,"2023-01-03","Licensed Concrete Tuna","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 23 | "3shh5","https://api.lorem.space/image/shoes?w=300&h=300&s=73812","106.00",70818,"2022-11-08","Fantastic Rubber Chair","The Football Is Good For Training And Recreational Purposes" 24 | "ew0f8","https://api.lorem.space/image/shoes?w=300&h=300&s=90432","313.00",83332,"2023-06-25","Intelligent Wooden Car","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 25 | "25uhm","https://api.lorem.space/image/shoes?w=300&h=300&s=20205","465.00",70785,"2023-03-17","Ergonomic Frozen Towels","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 26 | "td593","https://api.lorem.space/image/shoes?w=300&h=300&s=81546","589.00",98606,"2022-11-04","Intelligent Frozen Shirt","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 27 | "5btgk","https://api.lorem.space/image/shoes?w=300&h=300&s=98095","913.00",96398,"2023-05-06","Refined Wooden Mouse","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 28 | "b7ttu","https://api.lorem.space/image/shoes?w=300&h=300&s=5880","283.00",56506,"2022-10-17","Gorgeous Frozen Computer","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 29 | "f6ot1","https://api.lorem.space/image/shoes?w=300&h=300&s=12403","212.00",73446,"2022-11-01","Incredible Rubber Sausages","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 30 | "io35k","https://api.lorem.space/image/shoes?w=300&h=300&s=54869","812.00",96587,"2022-11-19","Licensed Plastic Keyboard","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 31 | "1tj8e","https://api.lorem.space/image/shoes?w=300&h=300&s=77544","680.00",83073,"2023-03-20","Handcrafted Steel Table","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 32 | "spjej","https://api.lorem.space/image/shoes?w=300&h=300&s=35878","162.00",64918,"2023-03-23","Licensed Rubber Shoes","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 33 | "qyfrs","https://api.lorem.space/image/shoes?w=300&h=300&s=85068","745.00",87816,"2023-07-08","Licensed Cotton Tuna","The Football Is Good For Training And Recreational Purposes" 34 | "khg9q","https://api.lorem.space/image/shoes?w=300&h=300&s=76311","767.00",87545,"2023-04-17","Rustic Soft Shirt","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 35 | "fnphp","https://api.lorem.space/image/shoes?w=300&h=300&s=37035","274.00",90407,"2023-05-13","Sleek Fresh Gloves","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 36 | "dmer0","https://api.lorem.space/image/shoes?w=300&h=300&s=21974","541.00",91516,"2023-04-10","Sleek Soft Soap","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 37 | "dl0qo","https://api.lorem.space/image/shoes?w=300&h=300&s=90794","598.00",71250,"2023-02-05","Unbranded Concrete Chair","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 38 | "mk6uv","https://api.lorem.space/image/shoes?w=300&h=300&s=41028","446.00",80132,"2023-07-11","Intelligent Metal Cheese","Boston's most advanced compression wear technology increases muscle oxygenation stabilizes active muscles" 39 | "11sks","https://api.lorem.space/image/shoes?w=300&h=300&s=94833","414.00",94242,"2023-07-31","Rustic Concrete Shoes","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 40 | "b8o68","https://api.lorem.space/image/shoes?w=300&h=300&s=83788","606.00",77622,"2022-10-30","Practical Fresh Salad","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 41 | "642y9","https://api.lorem.space/image/shoes?w=300&h=300&s=862","637.00",72478,"2022-10-14","Gorgeous Soft Bike","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 42 | "7vg5w","https://api.lorem.space/image/shoes?w=300&h=300&s=34940","835.00",76228,"2022-10-24","Licensed Fresh Pizza","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 43 | "6ps1m","https://api.lorem.space/image/shoes?w=300&h=300&s=66428","112.00",70305,"2022-11-19","Incredible Granite Chips","The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes that started with the 1984 ABC800J" 44 | "cfzm3","https://api.lorem.space/image/shoes?w=300&h=300&s=28933","722.00",95288,"2023-05-30","Intelligent Steel Towels","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 45 | "zwqua","https://api.lorem.space/image/shoes?w=300&h=300&s=86798","718.00",94611,"2022-11-27","Sleek Rubber Chair","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 46 | "5lr8o","https://api.lorem.space/image/shoes?w=300&h=300&s=99868","962.00",90951,"2022-10-18","Gorgeous Concrete Table","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 47 | "z6hu3","https://api.lorem.space/image/shoes?w=300&h=300&s=96370","685.00",84850,"2022-11-22","Ergonomic Soft Pants","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 48 | "8fop7","https://api.lorem.space/image/shoes?w=300&h=300&s=35179","818.00",93292,"2022-10-18","Handcrafted Plastic Bike","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 49 | "ijkf1","https://api.lorem.space/image/shoes?w=300&h=300&s=35907","912.00",67586,"2023-04-28","Intelligent Cotton Shirt","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 50 | "p5lms","https://api.lorem.space/image/shoes?w=300&h=300&s=75077","427.00",78301,"2022-10-28","Rustic Granite Chair","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 51 | "jk2he","https://api.lorem.space/image/shoes?w=300&h=300&s=29158","82.00",62708,"2023-08-25","Rustic Metal Shirt","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 52 | "37vp9","https://api.lorem.space/image/shoes?w=300&h=300&s=93544","982.00",77478,"2022-12-16","Intelligent Soft Chips","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 53 | "q3dt7","https://api.lorem.space/image/shoes?w=300&h=300&s=31041","458.00",96072,"2022-10-13","Tasty Steel Bike","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 54 | "p8c4p","https://api.lorem.space/image/shoes?w=300&h=300&s=63331","202.00",53728,"2023-07-17","Awesome Steel Pizza","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 55 | "sg2we","https://api.lorem.space/image/shoes?w=300&h=300&s=60567","172.00",72848,"2022-10-23","Ergonomic Rubber Pants","The Football Is Good For Training And Recreational Purposes" 56 | "sgqmk","https://api.lorem.space/image/shoes?w=300&h=300&s=31021","346.00",59755,"2023-09-12","Incredible Plastic Shoes","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 57 | "ehovr","https://api.lorem.space/image/shoes?w=300&h=300&s=75388","988.00",53844,"2023-07-22","Handmade Soft Pants","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 58 | "rs1i8","https://api.lorem.space/image/shoes?w=300&h=300&s=46121","441.00",75771,"2023-04-07","Ergonomic Granite Cheese","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 59 | "mbn7q","https://api.lorem.space/image/shoes?w=300&h=300&s=90363","569.00",68442,"2023-03-07","Awesome Rubber Pizza","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 60 | "3qeec","https://api.lorem.space/image/shoes?w=300&h=300&s=96236","237.00",84512,"2023-08-04","Refined Steel Mouse","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 61 | "pllcy","https://api.lorem.space/image/shoes?w=300&h=300&s=11846","254.00",54058,"2023-06-06","Ergonomic Metal Table","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 62 | "8ppkn","https://api.lorem.space/image/shoes?w=300&h=300&s=58996","766.00",52870,"2022-11-23","Small Rubber Pants","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 63 | "82gke","https://api.lorem.space/image/shoes?w=300&h=300&s=92478","334.00",89878,"2023-07-04","Unbranded Steel Gloves","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 64 | "ay7ml","https://api.lorem.space/image/shoes?w=300&h=300&s=78899","494.00",95286,"2023-05-05","Ergonomic Cotton Soap","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 65 | "09sdp","https://api.lorem.space/image/shoes?w=300&h=300&s=4717","829.00",80482,"2022-11-11","Sleek Cotton Bike","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 66 | "3e77c","https://api.lorem.space/image/shoes?w=300&h=300&s=31991","765.00",59840,"2023-07-21","Handmade Concrete Chips","New ABC 13 9370 13.3 5th Gen CoreA5-8250U 8GB RAM 256GB SSD power UHD Graphics OS 10 Home OS Office A & J 2016" 67 | "oiqa4","https://api.lorem.space/image/shoes?w=300&h=300&s=72819","180.00",67058,"2023-06-15","Unbranded Fresh Chair","The Football Is Good For Training And Recreational Purposes" 68 | "nd0ap","https://api.lorem.space/image/shoes?w=300&h=300&s=29046","460.00",57697,"2023-07-06","Small Rubber Computer","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 69 | "tu49q","https://api.lorem.space/image/shoes?w=300&h=300&s=97988","309.00",75007,"2023-03-23","Fantastic Cotton Tuna","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 70 | "azu75","https://api.lorem.space/image/shoes?w=300&h=300&s=74439","404.00",62797,"2022-12-28","Fantastic Fresh Hat","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 71 | "wpt48","https://api.lorem.space/image/shoes?w=300&h=300&s=68148","477.00",89782,"2022-10-16","Ergonomic Rubber Chair","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 72 | "044ni","https://api.lorem.space/image/shoes?w=300&h=300&s=95268","793.00",55331,"2022-10-19","Intelligent Frozen Sausages","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 73 | "06s38","https://api.lorem.space/image/shoes?w=300&h=300&s=69388","312.00",71273,"2022-12-12","Small Frozen Gloves","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 74 | "zo3k0","https://api.lorem.space/image/shoes?w=300&h=300&s=74597","216.00",87193,"2023-01-11","Tasty Soft Table","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 75 | "kg22z","https://api.lorem.space/image/shoes?w=300&h=300&s=17524","195.00",63416,"2023-07-27","Practical Wooden Sausages","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 76 | "a03rj","https://api.lorem.space/image/shoes?w=300&h=300&s=29099","358.00",75591,"2023-06-15","Handmade Plastic Pizza","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 77 | "fhntl","https://api.lorem.space/image/shoes?w=300&h=300&s=42497","596.00",89423,"2022-11-15","Handcrafted Granite Ball","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 78 | "7ki55","https://api.lorem.space/image/shoes?w=300&h=300&s=82465","653.00",73726,"2023-08-02","Gorgeous Granite Shirt","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 79 | "do9wu","https://api.lorem.space/image/shoes?w=300&h=300&s=40482","425.00",50952,"2023-05-18","Unbranded Concrete Shirt","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 80 | "wnly3","https://api.lorem.space/image/shoes?w=300&h=300&s=47055","176.00",79051,"2023-08-30","Handcrafted Concrete Computer","Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support" 81 | "ujkfa","https://api.lorem.space/image/shoes?w=300&h=300&s=89559","79.00",96049,"2023-06-08","Unbranded Fresh Towels","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 82 | "kx5rp","https://api.lorem.space/image/shoes?w=300&h=300&s=55265","259.00",64625,"2023-03-23","Generic Steel Bike","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart" 83 | "wivf4","https://api.lorem.space/image/shoes?w=300&h=300&s=98035","932.00",70242,"2023-01-01","Intelligent Concrete Keyboard","Andy shoes are designed to keeping in mind durability as well as trends the most stylish range of shoes & sandals" 84 | "sh8gi","https://api.lorem.space/image/shoes?w=300&h=300&s=73690","667.00",74333,"2023-04-03","Licensed Rubber Computer","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 85 | "e2pmp","https://api.lorem.space/image/shoes?w=300&h=300&s=96488","88.00",79981,"2022-12-30","Generic Plastic Chair","Boston's most advanced compression wear technology increases muscle oxygenation stabilizes active muscles" 86 | "ld9ss","https://api.lorem.space/image/shoes?w=300&h=300&s=68870","826.00",94081,"2023-09-11","Rustic Fresh Tuna","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 87 | "ysedo","https://api.lorem.space/image/shoes?w=300&h=300&s=77098","38.00",89629,"2023-02-21","Small Metal Pizza","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 88 | "6rbv7","https://api.lorem.space/image/shoes?w=300&h=300&s=11697","322.00",78393,"2023-07-17","Ergonomic Frozen Keyboard","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 89 | "31pqm","https://api.lorem.space/image/shoes?w=300&h=300&s=8653","208.00",75304,"2023-03-10","Fantastic Soft Chicken","The Apollotech B340 is an affordable wireless mouse with reliable connectivity 12 months battery life and modern design" 90 | "n9ydb","https://api.lorem.space/image/shoes?w=300&h=300&s=37428","971.00",86937,"2023-04-21","Refined Wooden Salad","The Football Is Good For Training And Recreational Purposes" 91 | "5qghl","https://api.lorem.space/image/shoes?w=300&h=300&s=8563","886.00",51535,"2023-07-22","Gorgeous Plastic Bacon","The Football Is Good For Training And Recreational Purposes" 92 | "xwgjz","https://api.lorem.space/image/shoes?w=300&h=300&s=70175","539.00",70856,"2023-07-10","Generic Granite Gloves","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 93 | "ta60j","https://api.lorem.space/image/shoes?w=300&h=300&s=36461","795.00",78119,"2022-11-30","Awesome Frozen Chips","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality" 94 | "bc0kf","https://api.lorem.space/image/shoes?w=300&h=300&s=22532","572.00",75274,"2023-03-26","Practical Wooden Chair","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 95 | "o6427","https://api.lorem.space/image/shoes?w=300&h=300&s=27034","471.00",87958,"2022-12-03","Small Soft Salad","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 96 | "5i615","https://api.lorem.space/image/shoes?w=300&h=300&s=99311","758.00",94098,"2023-04-27","Small Granite Table","The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes that started with the 1984 ABC800J" 97 | "5wnq3","https://api.lorem.space/image/shoes?w=300&h=300&s=71757","588.00",70975,"2023-06-10","Refined Frozen Chips","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit" 98 | "c22n7","https://api.lorem.space/image/shoes?w=300&h=300&s=3488","383.00",57844,"2023-01-01","Ergonomic Metal Chair","The automobile layout consists of a front-engine design with transaxle-type transmissions mounted at the rear of the engine and four wheel drive" 99 | "c9l5v","https://api.lorem.space/image/shoes?w=300&h=300&s=65535","306.00",74577,"2022-12-19","Sleek Wooden Chips","The Football Is Good For Training And Recreational Purposes" 100 | "mqujp","https://api.lorem.space/image/shoes?w=300&h=300&s=31437","143.00",99537,"2023-04-12","Ergonomic Granite Tuna","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients" 101 | "cw948","https://api.lorem.space/image/shoes?w=300&h=300&s=56114","90.00",98672,"2023-02-14","Fantastic Cotton Car","The Football Is Good For Training And Recreational Purposes" -------------------------------------------------------------------------------- /resources/videos/csv-to-firestore/users.csv: -------------------------------------------------------------------------------- 1 | "id","name","email","username","job","phone" 2 | "6oj2g","Eloy Hodkiewicz","Lavinia82@hotmail.com","Rhea.Leuschke","District Markets Consultant","(328) 230-5629 x714" 3 | "09xy5","Cordelia Ratke","Ariel_Rodriguez42@yahoo.com","Izabella_Daniel","Lead Division Supervisor","301-488-2320" 4 | "qon4x","Marilie Boyer","Esmeralda.Aufderhar79@gmail.com","Keanu_Greenfelder","Senior Operations Analyst","740-723-2739 x0828" 5 | "jq0jk","Fredy Cassin","Julien.Conn75@hotmail.com","Eleanore.Klocko","International Program Producer","586-619-1595 x248" 6 | "03b63","Edyth Conroy","Gisselle.Konopelski@yahoo.com","Fabiola.Grimes77","Chief Solutions Architect","837-890-2256 x8736" 7 | "1f8ma","Rhett Mayert","Jaida_Hintz52@gmail.com","Bailey_Cruickshank","Central Applications Executive","1-518-269-6721 x8455" 8 | "7oe0c","Robb Walker","Tyrique.King73@yahoo.com","Curt71","Human Data Assistant","1-378-742-5169 x779" 9 | "zumqz","Rosalia Connelly","Shannon.Barton@yahoo.com","Vilma.Wiegand34","Central Metrics Officer","1-827-343-1867 x583" 10 | "gqn5t","Amira Treutel","Russ.Wolf57@yahoo.com","Rhianna_Bechtelar69","Central Functionality Strategist","587-486-2713 x212" 11 | "ahr03","Juvenal Smith","Rickie.Kreiger@gmail.com","Ellis22","Dynamic Identity Agent","451-299-9104" 12 | "p04m8","Brannon Rosenbaum","Kaycee_Paucek73@yahoo.com","Natalie_Fritsch","Regional Assurance Facilitator","1-480-883-8454" 13 | "0cfhl","Ray Hackett","Collin10@hotmail.com","Euna_Walter","National Applications Orchestrator","1-297-747-4264" 14 | "ul19c","Loraine Bashirian","Aron.Wuckert@yahoo.com","Jeanne81","Global Communications Assistant","(939) 383-0431 x1805" 15 | "hlp5t","Monica Welch","Nikolas_Schoen@hotmail.com","Wilfred79","Investor Functionality Director","1-279-513-4956 x61939" 16 | "6sfu9","Gabrielle Doyle","Enos88@hotmail.com","Green_Willms31","Senior Intranet Coordinator","872-834-5147 x694" 17 | "1zix1","Jeanie Hermann","Giles_Schumm12@hotmail.com","Abbigail.Prosacco76","Central Solutions Architect","1-504-804-3654 x9198" 18 | "4bfop","Tania Little","Craig.Hegmann@yahoo.com","Gustave_Barrows","Forward Usability Administrator","919-207-6798 x5388" 19 | "usdy8","Demarco Towne","Adrianna43@hotmail.com","Ernestine.Pagac","Human Infrastructure Consultant","296-962-3676 x43476" 20 | "cnxqf","Julien McLaughlin","Linnie_Runolfsdottir@hotmail.com","Mireille.Cole68","Principal Intranet Orchestrator","(475) 582-8741" 21 | "56kex","Devante Cruickshank","Osvaldo.Sauer18@hotmail.com","Stephan_OConnell22","Legacy Solutions Strategist","(856) 541-1887 x141" 22 | "2xl84","Amelie Cruickshank","Aleen.Abernathy83@gmail.com","Thalia26","Principal Brand Architect","1-435-823-3171 x29124" 23 | "hsm3j","Beulah Ruecker","Marietta_Gibson62@gmail.com","Xavier_Kertzmann","Future Optimization Coordinator","1-658-693-5980" 24 | "oo7oi","Craig Stroman","Rudolph_Rice35@yahoo.com","Jessika.Bins","Regional Marketing Producer","513-464-7835" 25 | "ro6jo","Angus Ritchie","Jaylen_Jast88@yahoo.com","Jannie95","Human Group Supervisor","(577) 396-6125" 26 | "5s3q8","Claudine Ankunding","Eloy_Shields@gmail.com","Hope_Schneider","National Communications Manager","1-271-660-6028" 27 | "ztgkp","Pinkie Gulgowski","Adolfo.Leffler94@hotmail.com","Shaina7","Future Factors Analyst","(500) 213-0596 x3103" 28 | "g0vmx","Mozelle Schmidt","Jaclyn.Ebert@hotmail.com","Maximillia_Wuckert","Central Identity Technician","467-383-6974 x4245" 29 | "rnm9g","Steve Lebsack","Lucinda70@gmail.com","Delbert.Satterfield34","National Optimization Specialist","716.716.8786 x11780" 30 | "lhgoe","Daniella Grady","Wilmer_Metz39@gmail.com","Korey.Mante39","Dynamic Assurance Administrator","723.223.3855 x901" 31 | "4ikee","Lola Crona","Jackeline_Haag@yahoo.com","Celine_Schneider","National Metrics Assistant","202-305-5913 x4536" 32 | "ny2az","Fermin Jenkins","Broderick.Runte75@gmail.com","Orrin90","Customer Data Facilitator","760.946.5555" 33 | "uga6f","Murl Auer","Vilma64@yahoo.com","Karl.Satterfield30","Lead Data Designer","440.506.2055 x802" 34 | "i18ju","Isaac Lakin","Orlando_Lueilwitz50@hotmail.com","Dallin_Botsford","Direct Usability Designer","(698) 450-3273 x8227" 35 | "f9s32","Jordyn Tillman","Janelle.Gleason21@yahoo.com","Hertha_Adams82","District Intranet Developer","(307) 709-9399 x25102" 36 | "8gw23","Lily Halvorson","Winnifred.Cole90@gmail.com","Bailey.Cormier","Global Tactics Facilitator","(862) 339-3184 x61681" 37 | "rnq64","Dolly Sawayn","Adolf.Parker14@hotmail.com","Julius.Beatty35","Senior Metrics Analyst","517.310.7031 x3730" 38 | "yxtwl","Joel Stracke","Noah.Pfannerstill@hotmail.com","Oran_Kuvalis30","International Marketing Agent","972.884.7537 x063" 39 | "dp9b8","Hunter Gulgowski","Betty86@yahoo.com","Jadyn.Schaden","Direct Functionality Producer","1-598-580-2965" 40 | "9f2um","Kyler Ledner","Larissa_Wuckert@hotmail.com","Augustine16","Dynamic Infrastructure Assistant","1-273-816-0483" 41 | "71soy","Elva Runolfsdottir","Cathryn91@hotmail.com","Victor73","National Web Specialist","701-671-6485" 42 | "ledo1","Micah Willms","Percival.Dicki@hotmail.com","Sallie.Kertzmann6","Human Security Liaison","1-647-464-3645" 43 | "f300b","Paris Hoeger","Remington77@yahoo.com","Lula.Gleason","Dynamic Directives Manager","669.950.4812" 44 | "u28c8","Willard Osinski","Dana.Casper@yahoo.com","Jason.Yundt16","Corporate Optimization Designer","1-343-824-9434 x49271" 45 | "hy8si","Gabriel DuBuque","Donna_Adams23@hotmail.com","Clara74","Global Marketing Facilitator","1-297-486-0210" 46 | "v3nu1","Gilda Beer","Rubye.Reinger90@hotmail.com","Jaleel37","Dynamic Integration Administrator","852.885.1578 x7645" 47 | "d9q30","Ethel Cartwright","Allie.Cruickshank@gmail.com","Kallie.King","Product Integration Officer","581.877.9916" 48 | "pjgon","Cecile Predovic","Christ23@gmail.com","Roderick.Grimes21","Customer Intranet Officer","1-345-767-0601 x762" 49 | "5fxoe","Darrion Willms","Ona75@yahoo.com","Theresa_Schultz49","Investor Implementation Supervisor","399.392.7549" 50 | "uxs54","Amber Bradtke","Tessie_Legros60@hotmail.com","Jayne_Bergnaum","Dynamic Quality Specialist","628-437-0480 x0728" 51 | "h1wd4","Ursula Daugherty","Selmer_Kuhn81@yahoo.com","Dora_Price","Customer Response Facilitator","(907) 692-7874 x450" 52 | "smgfl","Iliana Emard","Mina9@yahoo.com","Fred.Kutch87","Senior Web Planner","752-276-4736 x82655" 53 | "96mpi","Makayla Klein","Stanford_Hermann@gmail.com","Jessie.Nader","Central Accounts Agent","798.257.7695 x70272" 54 | "rc9l8","Cindy Wehner","Sharon97@hotmail.com","Chelsey.Streich70","Investor Branding Liaison","996-444-9916" 55 | "pppb7","Milo Corkery","Madison_Beahan@yahoo.com","Elroy_Cole77","Direct Metrics Director","1-235-461-7381 x952" 56 | "di0g8","Greyson Rosenbaum","Janice.Gerlach@yahoo.com","Mohammed11","Dynamic Tactics Orchestrator","(761) 564-8728 x918" 57 | "zvmx6","Nathan Schuppe","Owen_Homenick@gmail.com","Angela41","Legacy Quality Technician","1-442-501-6121 x582" 58 | "3xe35","Margret Dach","Orpha48@gmail.com","Angie_Thiel","Customer Configuration Producer","849-814-3927" 59 | "c0t0r","Jeramy Strosin","Dalton.Sawayn14@gmail.com","Linnie.Barrows","Global Metrics Manager","501-717-1379 x97334" 60 | "7glsx","Alvera Tremblay","Rodrigo_Boyle@yahoo.com","Noe_Littel","Dynamic Interactions Technician","1-306-690-3433 x09698" 61 | "o76j3","Nathaniel Nikolaus","Karlie.Williamson@gmail.com","Isai80","National Security Engineer","1-538-618-0044 x54374" 62 | "ncu43","Bradley Okuneva","Hailey.Hansen@yahoo.com","Linnie.Kuhic","Legacy Group Representative","1-883-408-7896" 63 | "iq35x","Lura Steuber","Shaniya_Walker@hotmail.com","Willie58","Lead Integration Coordinator","1-629-705-4739 x43855" 64 | "up0xe","Shaina Jenkins","Mallory_Robel@hotmail.com","Maurine.Senger8","Corporate Factors Specialist","833.874.3770 x90933" 65 | "duztg","Caesar Emmerich","Jo_Rodriguez@gmail.com","Osvaldo77","Dynamic Creative Technician","1-955-807-4557" 66 | "094kk","Adan Marvin","Andre78@gmail.com","Sydnee.Berge","Lead Interactions Associate","535.467.2815 x08063" 67 | "nnjo8","Catharine Anderson","Hyman.Mann@hotmail.com","Barton.Breitenberg70","Product Usability Officer","802.553.4822" 68 | "d121j","Ethyl Marvin","Enrique_Wintheiser@gmail.com","Jonathon99","Lead Configuration Engineer","583-836-3118" 69 | "auxpf","Quentin Bashirian","Isabella10@gmail.com","Ova_Ward","Legacy Division Engineer","(357) 341-8462" 70 | "wbzk0","Shanon Flatley","Wilfrid.Luettgen31@hotmail.com","Evie50","Product Factors Director","363.462.5468 x36011" 71 | "6uij5","Felix Littel","Graham.Wisoky@hotmail.com","Augustus94","Direct Quality Supervisor","859-537-1811 x0707" 72 | "5lwan","Nia McDermott","Gilberto.Hane@gmail.com","Orpha40","Global Identity Architect","612-214-8333 x28523" 73 | "170wt","Rodolfo Hyatt","Ciara_Ernser10@gmail.com","Zackary_Block85","Legacy Integration Analyst","(618) 596-5547" 74 | "k1zi4","Adolph Greenholt","Florian_Lockman73@yahoo.com","Tiffany.Funk91","Lead Mobility Assistant","(690) 758-9804 x1164" 75 | "yvdpi","Emily Raynor","Ozella81@gmail.com","Wyatt44","Chief Web Engineer","498-541-2391 x45350" 76 | "c25tg","Emelie Gottlieb","Antwon.Wyman10@gmail.com","Lavada_Homenick","Central Solutions Manager","551.687.2897 x95897" 77 | "8d4qa","Melisa Klein","Henri98@hotmail.com","Cruz11","Dynamic Interactions Facilitator","1-736-859-1475" 78 | "nbdqq","Regan Stehr","Keara12@yahoo.com","Ivah_Okuneva","Product Group Manager","(236) 514-7764 x06280" 79 | "fc2wj","Kade Turner","Frida41@hotmail.com","Morgan56","Corporate Web Consultant","385.615.8978" 80 | "7x8ze","Vicky Collins","Andy6@hotmail.com","Terrell_Mohr","Legacy Paradigm Producer","(841) 723-7173" 81 | "02bgs","Valentine Hane","Buddy.Legros68@hotmail.com","Max62","Corporate Solutions Supervisor","548-294-0730 x2232" 82 | "01flw","Sylvan Koelpin","Jackie39@yahoo.com","Alexandria35","Corporate Factors Analyst","927-620-7634 x1246" 83 | "t0ywr","Antwon Berge","Maia69@gmail.com","Golda63","Human Identity Assistant","269-533-6568" 84 | "vyteh","Loyce Powlowski","Tremayne_Schinner@gmail.com","Lillie.Fritsch","Regional Communications Consultant","(781) 487-7010 x49886" 85 | "przjg","Vincent Von","Antonio.Mueller28@hotmail.com","Donnie.Kutch12","Forward Response Manager","870-382-8452" 86 | "2nbq2","Norbert Kuvalis","Jordy_Bayer56@hotmail.com","Selmer4","Human Quality Facilitator","385.407.5407 x756" 87 | "kt1oc","Tierra Sanford","Antonetta_Trantow@yahoo.com","Stone.Luettgen","Legacy Directives Planner","1-999-589-5533 x494" 88 | "pddzv","Bill Donnelly","Tracey11@hotmail.com","Wendell59","District Assurance Assistant","896.666.0914 x396" 89 | "rpms5","Nannie Kilback","Ottilie.Volkman60@yahoo.com","Delmer_Block29","Principal Infrastructure Orchestrator","290-507-4149" 90 | "ld1q7","Beryl Bayer","Abe.Quitzon24@gmail.com","Danial_Lowe","Corporate Group Liaison","1-623-619-8350 x5312" 91 | "rf3hi","Alexie Parisian","Lura_Lindgren@yahoo.com","Stefanie.Daugherty","Legacy Data Administrator","325-295-1323" 92 | "i4jpo","Reta Hand","Jeffry51@yahoo.com","Jessy.Gerhold2","National Integration Manager","1-200-777-6711 x195" 93 | "y5kz8","Karl Watsica","Selena_Kuhic@gmail.com","Burley74","Legacy Optimization Analyst","559-528-7795 x1099" 94 | "4d7q4","Fernando Swaniawski","Martin_Moore@yahoo.com","Ebony_Legros","Regional Usability Director","1-212-203-2253 x58755" 95 | "ftcj5","Zoila Mueller","Darryl52@hotmail.com","Bobby8","Dynamic Creative Engineer","630.933.6806 x82905" 96 | "u2r9x","Lisa Stokes","Leonardo.Upton82@yahoo.com","Esther77","Dynamic Accountability Orchestrator","1-476-319-6105" 97 | "xvpt2","Garrett Runte","Raul0@hotmail.com","Alfonso_Schaden","Product Solutions Manager","638.827.5310 x48621" 98 | "sm21s","Tierra Hettinger","Pink_Cummerata@hotmail.com","Julie_Johnson","Legacy Markets Consultant","456.302.6741 x5826" 99 | "yftwa","Hettie Wuckert","Jody_Lowe@hotmail.com","Carli_Koelpin","Central Intranet Planner","228.587.8827" 100 | "rlmjm","Loraine Konopelski","Wanda_Johns38@hotmail.com","Dino35","National Implementation Strategist","(432) 581-4517" 101 | "zxuet","Garrett Williamson","Dakota41@gmail.com","Anibal.Sipes","Senior Intranet Supervisor","624-513-6453 x8241" 102 | "rjw0j","Era Huels","Susan19@hotmail.com","Waino26","Dynamic Interactions Analyst","(742) 951-3888" 103 | "p82vh","Tremayne Leuschke","Lou.Bartoletti@gmail.com","Lennie.Upton16","Principal Branding Associate","334.405.9683" 104 | "dp54f","Russell Brekke","Hilario.Adams61@yahoo.com","Brigitte44","Dynamic Quality Officer","(501) 688-0717 x607" 105 | "0pip8","Nona Pollich","Janick.Rohan@hotmail.com","Waldo10","Central Brand Liaison","1-936-772-2054" 106 | "fidc7","Bernice Streich","Kobe_Bailey85@gmail.com","Josiane8","Regional Assurance Analyst","1-395-625-5635 x37477" 107 | "6888u","Harrison Cummerata","Diego_Hodkiewicz84@hotmail.com","Morton.Fahey","Chief Group Liaison","960.890.2595 x0606" 108 | "rbjkw","Herman Dickens","Dan.Crona52@hotmail.com","Daren27","Dynamic Marketing Orchestrator","999.434.5899" 109 | "nwahw","Cordia Connelly","Daron_Friesen@hotmail.com","Ollie11","Product Program Specialist","208-423-0180" 110 | "mxnku","Gabriella Kessler","Osvaldo48@gmail.com","Camilla_King58","Regional Branding Associate","604-345-9601 x238" 111 | "cctky","Cathy Homenick","Ali3@hotmail.com","Salma71","Product Factors Designer","(629) 999-5592 x94252" 112 | "sh3zb","Tianna Lubowitz","Nellie.Oberbrunner@yahoo.com","Julius.Wolff26","National Solutions Analyst","550-496-5558" 113 | "7ths5","Nicholas Kshlerin","Rylan_Veum@yahoo.com","Effie_Bartell9","Customer Creative Consultant","(497) 248-6418" 114 | "56uq0","Reva Lockman","Archibald_Lang@yahoo.com","Ezequiel29","Legacy Factors Producer","1-930-455-2832" 115 | "0e1qg","Kory Cronin","Joana.Fay@gmail.com","Lynn.Corkery24","Chief Response Associate","(514) 387-6948" 116 | "ygpgj","Anthony Weber","Nadia.Olson@hotmail.com","Desmond_Terry1","International Branding Director","(256) 927-7055 x628" 117 | "nwiiv","Shanna Schultz","Juliana47@gmail.com","Guadalupe_Reynolds","Legacy Quality Developer","1-383-312-4345 x429" 118 | "x1dq6","Vida Corkery","Novella_Wilderman21@gmail.com","Melissa71","Principal Usability Producer","528-312-8596 x0396" 119 | "w3lov","Miguel Morar","Tania.Brakus@gmail.com","Princess_Bode10","Direct Program Orchestrator","868-553-3205 x00348" 120 | "448h9","Pete Sanford","Nigel41@gmail.com","Kenneth.Block42","Human Directives Facilitator","702.379.4491 x9516" 121 | "uv931","Maureen Barton","Trenton71@gmail.com","Zachary_Zemlak","Global Accountability Officer","(256) 311-1129 x14653" 122 | "qb8ty","Rafaela Reilly","Kaden18@gmail.com","Avis_Hand15","Corporate Response Administrator","1-663-386-2185 x684" 123 | "fpv85","Lavada Rowe","America.Bauch24@yahoo.com","Rusty46","Principal Operations Liaison","918-424-7681 x925" 124 | "x7i44","Johnnie Steuber","Lavon.Buckridge@gmail.com","Luna95","Forward Configuration Technician","313-544-5162 x141" 125 | "yk02s","Chadd Borer","Andre23@gmail.com","Armand_Padberg","Human Mobility Developer","1-396-980-3852 x2016" 126 | "uh8a0","Austin Gerlach","Ima.Schuster17@hotmail.com","Boris.Hessel","Regional Solutions Manager","(283) 377-0445 x398" 127 | "0ruy0","Germaine Hansen","Elwyn_Heathcote78@gmail.com","Ruth56","Forward Research Engineer","419-829-5380 x57831" 128 | "oge8y","Stewart Rolfson","Chelsea_Gulgowski98@hotmail.com","Jarrod26","Chief Research Designer","1-671-768-7149 x837" 129 | "zvg0y","Sasha Erdman","Hosea_Doyle24@hotmail.com","Tressa.Ratke","Future Infrastructure Planner","(448) 927-3999 x9897" 130 | "yhzp5","Kenton Borer","Rex35@yahoo.com","Lori_Hauck","Product Factors Administrator","(987) 526-9474" 131 | "9dxhh","Clementina Hills","Josianne.McGlynn@hotmail.com","Donavon.Conroy","Future Creative Consultant","1-652-517-0312" 132 | "oah2j","Herman Rempel","Eriberto21@hotmail.com","Eleanore_Heaney19","District Optimization Designer","798-379-0537" 133 | "qeqet","Stephanie Kovacek","Mireya.Koepp@yahoo.com","Fleta.Schimmel6","Corporate Infrastructure Agent","997.576.2220" 134 | "d02yw","Hillary Gislason","Darrel.Rolfson60@yahoo.com","Jovani_Trantow","Principal Branding Executive","1-273-566-1560 x974" 135 | "gu622","Jeanette Stroman","Billie80@yahoo.com","Pasquale68","Direct Accountability Specialist","947-584-3955" 136 | "o1qxm","Brenden Kessler","Ezekiel80@hotmail.com","Jody.Tromp67","Forward Assurance Agent","(571) 723-9377" 137 | "hmbsy","Dane Jerde","Efrain.Swift@yahoo.com","Schuyler_Grady","Lead Integration Executive","690-972-7240 x369" 138 | "iztf9","Lisandro Hagenes","Morton_Borer71@hotmail.com","Lia_Stehr","Central Functionality Coordinator","684-507-2101" 139 | "6y9t2","Mollie Schiller","Mandy_Torp52@yahoo.com","Halie_Jones","International Accountability Manager","353-273-5331" 140 | "zgloq","Michele Lebsack","Tina95@gmail.com","Rae_Paucek","Product Infrastructure Orchestrator","205-310-9456" 141 | "26ds3","Anahi Parker","Mallory_Hartmann98@hotmail.com","Melody41","Legacy Metrics Producer","1-591-374-1874 x34490" 142 | "9s6rq","Demond Braun","Jordi71@gmail.com","Herminio_Halvorson26","Regional Tactics Planner","1-345-992-4710 x426" 143 | "143c8","Micheal Bergstrom","Jazmin_Kihn@yahoo.com","Jevon72","Future Quality Producer","1-345-518-0875 x7885" 144 | "h9br4","Beatrice Mayer","Halle_Parisian@yahoo.com","Velva51","Regional Accountability Associate","1-899-243-4233 x2191" 145 | "yb3cn","Chad McGlynn","Angelo_Torphy61@gmail.com","Gertrude_Schroeder2","Dynamic Mobility Associate","(473) 511-4386" 146 | "sy51y","Jonatan Legros","Ashlee.Douglas@yahoo.com","Jerrod.Runte35","Senior Directives Architect","1-560-898-9895 x96894" 147 | "zxilj","Verna Ward","Cindy10@yahoo.com","Maryjane.Aufderhar99","District Branding Manager","625-874-1998" 148 | "d8nff","Mustafa Tremblay","Destinee.Hills@yahoo.com","Leta.Schultz","Dynamic Marketing Agent","614.813.9539" 149 | "3kyqi","Freida Gerhold","Ethel_Streich@yahoo.com","Charlene_Bradtke","Future Group Executive","(841) 668-7890" 150 | "kga4w","Marques Russel","Camila10@hotmail.com","Hugh_Kozey","Global Creative Supervisor","345-795-3457 x62261" 151 | "mtjek","Reese Lynch","Ernestine_Goldner@gmail.com","Jaylen72","Central Solutions Developer","434-274-8622" 152 | "bfxer","Arnulfo Lynch","Lloyd78@hotmail.com","Nicolas_Hackett41","Global Assurance Orchestrator","950.388.3209" 153 | "r3d7r","Florian Ratke","Jody.Feeney14@gmail.com","Sadie24","Lead Data Administrator","644-701-8384" 154 | "giod2","Kaleb Marvin","Zoe_Jacobs21@gmail.com","Russell68","Direct Directives Officer","658-761-1774 x63652" 155 | "5585c","Assunta Moore","Zackery57@gmail.com","Rosalyn87","Regional Applications Producer","1-658-899-4968" 156 | "32zo6","Jena Frami","Heather98@yahoo.com","Angela.Yost98","Corporate Metrics Facilitator","(456) 304-9397 x22125" 157 | "bot6t","Gabe Wilkinson","Ray27@gmail.com","Ayla_Howe","Corporate Program Designer","(782) 262-6244 x68633" 158 | "a5to0","Paris Feeney","Greta_Bernier@hotmail.com","Karen_Hartmann48","Future Usability Designer","(662) 900-6769 x3191" 159 | "8th9n","Neva Roberts","Esteban.Altenwerth21@gmail.com","Jeanette_Heidenreich0","Dynamic Operations Assistant","311-647-3497" 160 | "vusle","Kim Nitzsche","Gladyce.Ratke@yahoo.com","Antwan1","Product Paradigm Engineer","(796) 319-0215 x161" 161 | "t3vu0","Crystel Murray","Reina_Cassin@hotmail.com","Salma.Rowe18","Human Infrastructure Facilitator","903-530-4182 x902" 162 | "5d0sv","Jeremie Bode","Moses43@hotmail.com","Ibrahim_Upton63","Regional Division Strategist","(470) 558-5963 x9304" 163 | "c37tm","Claudine Baumbach","April9@hotmail.com","Marcia27","Dynamic Assurance Orchestrator","1-353-383-2112 x592" 164 | "ok7o1","Vernice Langosh","Alyson.Nienow@yahoo.com","Yadira.Raynor85","Forward Operations Analyst","1-503-531-8603 x412" 165 | "fpgjj","Lilly Douglas","Osborne.Jacobs8@gmail.com","Abagail_Wisozk","Chief Web Developer","1-915-792-6738 x056" 166 | "7g5gq","Greg Rippin","Chanel_Cronin@gmail.com","Camylle.Connelly","Forward Program Coordinator","1-823-205-5894 x79512" 167 | "94f0w","Janae Sporer","Bernice31@gmail.com","Cyrus13","International Usability Architect","1-574-726-6376" 168 | "amd0r","Grover Reichel","Maybell29@gmail.com","Thad.Willms30","Central Implementation Executive","1-921-384-7841" 169 | "j6280","Trey Morissette","Clarissa.Kuphal@gmail.com","Alison_Thiel82","Corporate Accountability Manager","(715) 379-2738 x02254" 170 | "z22h7","Nella Koss","Hosea35@gmail.com","Francesca_Flatley92","National Accounts Agent","(504) 772-1640" 171 | "9cjt2","Obie Bergnaum","Jennie.Leuschke34@gmail.com","Giovanny.Haag42","Dynamic Accounts Producer","634-879-6538 x28208" 172 | "aggbf","Donnell Paucek","Vicente_Schmitt@hotmail.com","Brian.Purdy","Principal Applications Associate","1-596-874-5384 x280" 173 | "2l9j8","Carmella Wintheiser","Charlie1@gmail.com","Earline.Moore","Dynamic Interactions Architect","926.204.3598 x119" 174 | "ninqh","Glenda Carroll","Kennedi_Mohr@gmail.com","Giovanny_Runte","Forward Directives Representative","(813) 837-8837" 175 | "6bqgk","Floy Deckow","Stuart_Kub70@hotmail.com","Jadon68","Corporate Assurance Director","736-355-8348 x422" 176 | "rjvar","Dariana Bashirian","Cecilia_Kessler@yahoo.com","Christine90","Product Interactions Developer","(778) 818-9962" 177 | "odm2g","Albertha Turner","Megane_Schaefer@hotmail.com","Rhoda_Turcotte","Regional Branding Officer","769.538.5040 x55065" 178 | "tg21d","Tamara Rodriguez","Levi_Cormier@yahoo.com","Vernie.Ledner93","Future Paradigm Associate","629-386-0219 x84746" 179 | "bnamp","Maxie Klein","Alivia.Bins@hotmail.com","Damien_Kling","Regional Metrics Director","1-287-215-3729 x8064" 180 | "ksuo7","Shany Hodkiewicz","Marjolaine36@yahoo.com","Lafayette_Bosco30","Senior Infrastructure Planner","1-681-688-6823 x29917" 181 | "3gczt","Wanda McDermott","Gillian_Macejkovic91@gmail.com","Andrew.Donnelly19","Principal Applications Associate","1-447-665-9015" 182 | "clr4j","Paxton Roberts","Virginie56@gmail.com","Heber10","Legacy Factors Liaison","751.581.2384 x7696" 183 | "k3mj3","Tod Schaefer","Jermain_Senger45@yahoo.com","Kayleigh.Terry54","Legacy Interactions Strategist","1-558-899-6313 x86699" 184 | "deem9","Novella Schneider","Pierce.Considine4@gmail.com","Mylene.Grady3","Future Research Strategist","1-472-309-7797 x23648" 185 | "b4zos","Lucienne Hermiston","Maxime.Adams@hotmail.com","Norval.Greenholt85","Lead Solutions Engineer","(317) 965-9472" 186 | "27o1k","Lyda McLaughlin","Ava6@hotmail.com","Marcel14","National Quality Producer","882-829-8701 x05981" 187 | "vxs7i","Adela Mayert","Waino.Gerhold@hotmail.com","Dana.Mann","Legacy Tactics Assistant","403-651-6187" 188 | "xn8p5","Elroy Hahn","Garrett.Parker36@gmail.com","Kaylah.Mitchell18","Human Branding Supervisor","1-311-642-8642 x25080" 189 | "g55iu","Hertha D'Amore","Gladyce36@yahoo.com","Darien.Green41","Product Functionality Strategist","790-795-9111 x823" 190 | "hvddk","Kimberly Zulauf","Ambrose.Walter85@yahoo.com","Tess.Auer32","Human Metrics Producer","950-571-6557 x4802" 191 | "8t12c","Reese Mayer","Melyna_Leannon@yahoo.com","Evalyn_Crooks33","National Research Developer","1-423-698-3641 x4478" 192 | "vzlpe","Maximilian Wunsch","Carmella.Romaguera78@gmail.com","Damaris0","Human Functionality Assistant","(638) 559-2303 x900" 193 | "3luoh","Sadye Weissnat","Arnulfo22@yahoo.com","Alvena.Huel","Product Tactics Architect","1-793-743-8724 x440" 194 | "8ba62","Marietta D'Amore","Mavis.Pouros@gmail.com","Cassidy.Wuckert71","Legacy Applications Agent","293-236-4521 x33350" 195 | "rqhbw","Muriel Jakubowski","Shanie40@hotmail.com","Abbigail55","Central Implementation Agent","466.546.0596 x238" 196 | "g2jpt","Misty Lehner","Aimee_Kub@yahoo.com","Liam.Fadel17","Dynamic Response Orchestrator","703.547.8304 x9087" 197 | "30w37","Marjory Hirthe","Maxwell_Braun25@yahoo.com","Bart_Johnston82","Future Program Executive","1-857-836-0987" 198 | "8yru1","Lourdes Dickinson","Kiera_Kertzmann@hotmail.com","Victoria.Brakus86","Chief Assurance Architect","719-559-3363" 199 | "bzxlj","Monserrate Kshlerin","Candelario_Schaefer92@gmail.com","Abbey_Leffler39","Investor Optimization Director","953.356.0080 x333" 200 | "7umhf","Pearlie Stoltenberg","Mae.Lueilwitz61@yahoo.com","Maggie_Kshlerin","District Data Producer","(863) 711-2240 x80319" 201 | "1kjkx","Ova Kuphal","Kennith88@yahoo.com","Troy.Goodwin1","Global Intranet Associate","(247) 298-3507 x19099" -------------------------------------------------------------------------------- /resources/videos/slider-widgets/app.json: -------------------------------------------------------------------------------- 1 | {"clientSchemaVersion":1.0,"serverSchemaVersion":6.0,"exportedApplication":{"name":"Slider Widgets","isPublic":false,"pages":[{"isDefault":false},{"isDefault":false},{"id":"Lab","isDefault":true},{"id":"Playground","isDefault":false}],"publishedPages":[{"isDefault":false},{"isDefault":false},{"id":"Page1","isDefault":true},{"isDefault":false}],"viewMode":false,"appIsExample":false,"unreadCommentThreads":0.0,"color":"#FBF4ED","icon":"bitcoin","slug":"slider-widgets","unpublishedAppLayout":{"type":"DESKTOP"},"publishedAppLayout":{"type":"DESKTOP"},"evaluationVersion":2.0,"applicationVersion":1.0,"isManualUpdate":false,"deleted":false},"datasourceList":[{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"isTemplate":true,"deleted":false,"gitSyncId":"61b6d49e33c6ae6163af2716_62a720d884b913372519bc5e"}],"pageList":[{"unpublishedPage":{"name":"Lab","slug":"lab","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":4896.0,"snapColumns":64.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":890.0,"containerStyle":"none","snapRows":125.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":64.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[{"widgetName":"RangeSlider1","displayName":"Range Slider","iconSVG":"/static/media/icon.8216245f04c391d4ae315397e9194dd4.svg","defaultStartValue":"10","tooltipAlwaysOn":false,"labelText":"Percentage","topRow":7.0,"bottomRow":15.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"RANGE_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":"0","parentColumnSpace":17.0625,"dynamicTriggerPathList":[],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"labelPosition":"Left","shouldTruncate":false,"isDisabled":false,"defaultEndValue":"100","key":"w067k7iv37","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"max":"100","widgetId":"cb4pd74tsd","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":"[\n {\n \"value\": 25,\n \"label\": \"25%\"\n },\n {\n \"value\": 50,\n \"label\": \"50%\"\n },\n {\n \"value\": 75,\n \"label\": \"75%\"\n }\n]","sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":"1","showMarksLabel":true,"minRange":"5"},{"widgetName":"CategorySlider1","dynamicPropertyPathList":[],"displayName":"Category Slider","iconSVG":"/static/media/icon.cbd0db7a0bd317a6e4cbbd72417f8dee.svg","labelText":"Size","searchTags":["range"],"topRow":20.0,"bottomRow":28.0,"parentRowSpace":10.0,"labelWidth":5.0,"type":"CATEGORY_SLIDER_WIDGET","hideCard":false,"defaultOptionValue":"md","animateLoading":true,"parentColumnSpace":17.0625,"dynamicTriggerPathList":[],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","options":[{"label":"Extra Small","value":"xs"},{"label":"Small","value":"sm"},{"label":"Medium","value":"md"},{"label":"Large","value":"lg"},{"label":"Extra Large","value":"xl"},{"label":"Utltra Large","value":"xxl"}],"isDisabled":false,"key":"pksr4r3l3a","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"widgetId":"fgo8qsdl6d","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"showMarksLabel":true},{"widgetName":"NumberSlider1","defaultValue":10.0,"displayName":"Number Slider","iconSVG":"/static/media/icon.f122000eb591fcd1410a4775a54f9f0d.svg","tooltipAlwaysOn":false,"labelText":"Percentage","searchTags":["range"],"topRow":32.0,"bottomRow":40.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"NUMBER_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":0.0,"parentColumnSpace":17.0625,"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","isDisabled":false,"key":"gxi5r81obi","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"max":100.0,"widgetId":"wgdunjwa4g","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":[{"value":25.0,"label":"25%"},{"value":50.0,"label":"50%"},{"value":75.0,"label":"75%"}],"sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":1.0,"showMarksLabel":true}]},"layoutOnLoadActions":[],"layoutOnLoadActionErrors":[],"validOnPageLoadActions":true,"id":"Lab","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[],"isHidden":false},"publishedPage":{"name":"Page1","slug":"page1","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":4896.0,"snapColumns":64.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":730.0,"containerStyle":"none","snapRows":125.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":64.0,"minHeight":1292.0,"dynamicTriggerPathList":[],"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[{"widgetName":"RangeSlider1","displayName":"Range Slider","iconSVG":"/static/media/icon.8216245f04c391d4ae315397e9194dd4.svg","defaultStartValue":10.0,"tooltipAlwaysOn":false,"labelText":"Percentage","topRow":7.0,"bottomRow":15.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"RANGE_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":0.0,"parentColumnSpace":17.9375,"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"labelPosition":"Left","shouldTruncate":false,"isDisabled":false,"defaultEndValue":100.0,"key":"tvmqvyorsq","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"max":100.0,"widgetId":"scjx6lt6fh","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":[{"value":25.0,"label":"25%"},{"value":50.0,"label":"50%"},{"value":75.0,"label":"75%"}],"sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":1.0,"showMarksLabel":true,"minRange":5.0},{"widgetName":"CategorySlider1","dynamicPropertyPathList":[],"displayName":"Category Slider","iconSVG":"/static/media/icon.cbd0db7a0bd317a6e4cbbd72417f8dee.svg","labelText":"Size","searchTags":["range"],"topRow":23.0,"bottomRow":31.0,"parentRowSpace":10.0,"labelWidth":5.0,"type":"CATEGORY_SLIDER_WIDGET","hideCard":false,"defaultOptionValue":"md","animateLoading":true,"parentColumnSpace":17.9375,"dynamicTriggerPathList":[],"leftColumn":10.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","options":[{"label":"Extra Small","value":"xs"},{"label":"Small","value":"sm"},{"label":"Medium","value":"md"},{"label":"Large","value":"lg"},{"label":"Extra Large","value":"xl"},{"label":"label","value":"value"}],"isDisabled":false,"key":"70vzhekuy9","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":52.0,"widgetId":"uq4ivbqicb","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"showMarksLabel":false},{"widgetName":"NumberSlider1","defaultValue":10.0,"displayName":"Number Slider","iconSVG":"/static/media/icon.f122000eb591fcd1410a4775a54f9f0d.svg","tooltipAlwaysOn":false,"labelText":"Percentage","searchTags":["range"],"topRow":37.0,"bottomRow":45.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"NUMBER_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":0.0,"parentColumnSpace":17.9375,"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","isDisabled":false,"key":"3kq2fmjxn9","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"max":100.0,"widgetId":"ox63umc6iq","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":[{"value":25.0,"label":"25%"},{"value":50.0,"label":"50%"},{"value":75.0,"label":"75%"}],"sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":1.0,"showMarksLabel":true}]},"layoutOnLoadActions":[],"layoutOnLoadActionErrors":[],"validOnPageLoadActions":true,"id":"Page1","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[]},"deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_6352500ef6cdb970519be2d0"},{"unpublishedPage":{"name":"Playground","slug":"playground","layouts":[{"viewMode":false,"dsl":{"widgetName":"MainContainer","backgroundColor":"none","rightColumn":1224.0,"snapColumns":64.0,"detachFromLayout":true,"widgetId":"0","topRow":0.0,"bottomRow":880.0,"containerStyle":"none","snapRows":72.0,"parentRowSpace":1.0,"type":"CANVAS_WIDGET","canExtend":true,"version":64.0,"minHeight":730.0,"parentColumnSpace":1.0,"dynamicBindingPathList":[],"leftColumn":0.0,"children":[{"widgetName":"NumberSlider3","defaultValue":"0","displayName":"Number Slider","iconSVG":"/static/media/icon.f122000eb591fcd1410a4775a54f9f0d.svg","tooltipAlwaysOn":false,"labelText":"End","searchTags":["range"],"topRow":70.0,"bottomRow":75.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"NUMBER_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":"0","parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onChange"}],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","isDisabled":false,"key":"rjc19pmvax","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"onChange":"{{utils.endGain()}}","max":"1","widgetId":"ufu8nc19a3","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":"[\n {\n \"value\": 0.25,\n \"label\": \"25%\"\n },\n {\n \"value\": 0.50,\n \"label\": \"50%\"\n },\n {\n \"value\": 0.75,\n \"label\": \"75%\"\n }\n]","sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":"0.1","showMarksLabel":true},{"widgetName":"NumberSlider1","defaultValue":"0","displayName":"Number Slider","iconSVG":"/static/media/icon.f122000eb591fcd1410a4775a54f9f0d.svg","tooltipAlwaysOn":false,"labelText":"Start","searchTags":["range"],"topRow":58.0,"bottomRow":62.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"NUMBER_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":"0","parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onChange"}],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","isDisabled":false,"key":"rjc19pmvax","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"onChange":"{{utils.startGain()}}","max":"1","widgetId":"f1y5f3cbjc","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":"[\n\t{\n \"value\": 0.25,\n \"label\": \"25%\"\n },\n {\n \"value\": 0.50,\n \"label\": \"50%\"\n },\n {\n \"value\": 0.75,\n \"label\": \"75%\"\n }\n]","sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":"0.1","showMarksLabel":true},{"boxShadow":"{{appsmith.theme.boxShadow.appBoxShadow}}","widgetName":"Chart1","allowScroll":false,"displayName":"Chart","iconSVG":"/static/media/icon.6adbe31ed817fc4bfd66f9f0a6fc105c.svg","searchTags":["graph","visuals","visualisations"],"topRow":0.0,"bottomRow":45.0,"parentRowSpace":10.0,"type":"CHART_WIDGET","hideCard":false,"chartData":{"jhl2z8gm8s":{"seriesName":"Sales","data":[{"x":"Product1","y":20000.0},{"x":"Product2","y":22000.0},{"x":"Product3","y":32000.0}]}},"animateLoading":true,"fontFamily":"{{appsmith.theme.fontFamily.appFont}}","parentColumnSpace":17.9375,"dynamicTriggerPathList":[],"leftColumn":5.0,"dynamicBindingPathList":[{"key":"borderRadius"},{"key":"boxShadow"},{"key":"accentColor"},{"key":"fontFamily"},{"key":"customFusionChartConfig"}],"customFusionChartConfig":"{\n \"type\": \"spline\",\n \"dataSource\": {\n \"chart\": {\n \"caption\": \"Randomly Generated Chart\",\n \"xAxisName\": \"Day\",\n \"yAxisName\": \"Quantity\",\n \"lineThickness\": \"2\",\n \"theme\": \"fusion\"\n },\n \"data\": {{appsmith.store.data}}\n}\n}","key":"2gyuist1y4","isDeprecated":false,"rightColumn":58.0,"widgetId":"vuctssx53k","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"version":1.0,"parentId":"0","labelOrientation":"auto","renderMode":"CANVAS","isLoading":false,"yAxisName":"Revenue($)","chartName":"Sales Report","borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","xAxisName":"Product Line","chartType":"CUSTOM_FUSION_CHART"},{"widgetName":"NumberSlider2","defaultValue":"0","displayName":"Number Slider","iconSVG":"/static/media/icon.f122000eb591fcd1410a4775a54f9f0d.svg","tooltipAlwaysOn":false,"labelText":"Middle","searchTags":["range"],"topRow":64.0,"bottomRow":68.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"NUMBER_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":"0","parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onChange"}],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"}],"shouldTruncate":false,"labelPosition":"Left","isDisabled":false,"key":"rjc19pmvax","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"onChange":"{{utils.middleGain()}}","max":"1","widgetId":"9tce4l0p7b","accentColor":"{{appsmith.theme.colors.primaryColor}}","isVisible":true,"marks":"[\n {\n \"value\": 0.25,\n \"label\": \"25%\"\n },\n {\n \"value\": 0.50,\n \"label\": \"50%\"\n },\n {\n \"value\": 0.75,\n \"label\": \"75%\"\n }\n]","sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":"0.1","showMarksLabel":true},{"widgetName":"RangeSlider1","displayName":"Range Slider","iconSVG":"/static/media/icon.8216245f04c391d4ae315397e9194dd4.svg","defaultStartValue":"1","tooltipAlwaysOn":false,"labelText":"Range","topRow":51.0,"bottomRow":56.0,"parentRowSpace":10.0,"labelWidth":8.0,"type":"RANGE_SLIDER_WIDGET","hideCard":false,"animateLoading":true,"min":"1","parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onStartValueChange"},{"key":"onEndValueChange"}],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"accentColor"},{"key":"marks"}],"labelPosition":"Left","shouldTruncate":false,"isDisabled":false,"defaultEndValue":"7","key":"wwgys2criw","labelTextSize":"0.875rem","isDeprecated":false,"rightColumn":51.0,"onEndValueChange":"{{utils.zoomData()}}","max":"7","widgetId":"iyba8gujfo","accentColor":"{{appsmith.theme.colors.primaryColor}}","onStartValueChange":"{{utils.zoomData()}}","isVisible":true,"marks":"{{utils.days().map((d, i) => ({label: d, value: i+1}))}}","sliderSize":"m","shouldScroll":false,"version":1.0,"parentId":"0","labelAlignment":"left","renderMode":"CANVAS","isLoading":false,"step":"1","showMarksLabel":true,"minRange":"1"},{"resetFormOnClick":false,"boxShadow":"none","widgetName":"Button1","onClick":"{{utils.gendata()}}","buttonColor":"{{appsmith.theme.colors.primaryColor}}","displayName":"Button","iconSVG":"/static/media/icon.cca026338f1c8eb6df8ba03d084c2fca.svg","searchTags":["click","submit"],"topRow":46.0,"bottomRow":50.0,"parentRowSpace":10.0,"type":"BUTTON_WIDGET","hideCard":false,"animateLoading":true,"parentColumnSpace":15.0625,"dynamicTriggerPathList":[{"key":"onClick"}],"leftColumn":13.0,"dynamicBindingPathList":[{"key":"buttonColor"},{"key":"borderRadius"}],"text":"Re-gen","isDisabled":false,"key":"jo72v9iroj","isDeprecated":false,"rightColumn":51.0,"isDefaultClickDisabled":true,"iconName":"refresh","widgetId":"6kbc697jis","isVisible":true,"recaptchaType":"V3","version":1.0,"parentId":"0","renderMode":"CANVAS","isLoading":false,"disabledWhenInvalid":false,"borderRadius":"{{appsmith.theme.borderRadius.appBorderRadius}}","buttonVariant":"SECONDARY","iconAlign":"left","placement":"CENTER"}]},"layoutOnLoadActions":[],"layoutOnLoadActionErrors":[],"validOnPageLoadActions":true,"id":"Playground","deleted":false,"policies":[],"userPermissions":[]}],"userPermissions":[],"policies":[],"isHidden":false},"deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63567ee0dc264920d5e288d7"}],"actionList":[{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"randomCustomerID","fullyQualifiedName":"randomID.randomCustomerID","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_randomID","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n return Math.ceil(Math.random() * (99999 - +1)) + 1;\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n return Math.ceil(Math.random() * (99999 - +1)) + 1;\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"randomCustomerID","fullyQualifiedName":"randomID.randomCustomerID","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_randomID","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n return Math.ceil(Math.random() * (99999 - +1)) + 1;\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n return Math.ceil(Math.random() * (99999 - +1)) + 1;\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_randomID.randomCustomerID","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.409417Z"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"getCarSalesRevenue","fullyQualifiedName":"JSObject1.getCarSalesRevenue","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_JSObject1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n const arr = select_showroom_db.data.map(x => parseInt(x.selling_price));\n return arr.reduce((a, b) => a + b, 0);\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n const arr = select_showroom_db.data.map(x => parseInt(x.selling_price));\n return arr.reduce((a, b) => a + b, 0);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"getCarSalesRevenue","fullyQualifiedName":"JSObject1.getCarSalesRevenue","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_JSObject1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n const arr = select_showroom_db.data.map(x => parseInt(x.selling_price));\n return arr.reduce((a, b) => a + b, 0);\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n const arr = select_showroom_db.data.map(x => parseInt(x.selling_price));\n return arr.reduce((a, b) => a + b, 0);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_JSObject1.getCarSalesRevenue","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.411329Z"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"update_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"UPDATE showroom_db\nSET customer_phone= {{PhoneInput1.text}}, \n\t\tcustomer_email= {{Input1.text}},\n\t\tselling_price={{CurrencyInput3.value}},\n\t\tsalesperson_responsible={{salesperson_select1.selectedOptionLabel}},\n\t\tsalesperson_id={{salesperson_select1.selectedOptionValue}}\nWHERE sales_id={{List.selectedItem.sales_id}};","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["salesperson_select1.selectedOptionLabel","PhoneInput1.text","salesperson_select1.selectedOptionValue","Input1.text","CurrencyInput3.value","List.selectedItem.sales_id"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"update_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"UPDATE showroom_db\nSET customer_phone= {{PhoneInput1.text}}, \n\t\tcustomer_email= {{Input1.text}},\n\t\tselling_price={{CurrencyInput3.value}},\n\t\tsalesperson_responsible={{salesperson_select1.selectedOptionLabel}},\n\t\tsalesperson_id={{salesperson_select1.selectedOptionValue}}\nWHERE sales_id={{List.selectedItem.sales_id}};","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["salesperson_select1.selectedOptionLabel","PhoneInput1.text","salesperson_select1.selectedOptionValue","Input1.text","CurrencyInput3.value","List.selectedItem.sales_id"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_update_showroom_db","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.410130Z"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"select_car_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"select * from cars_db","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"select_car_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"select * from cars_db","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_select_car_db","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.410436Z"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"select_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"SELECT * FROM showroom_db ORDER BY sales_id ASC LIMIT 5 offset {{(List.pageNo - 1) * 5}};","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["(List.pageNo - 1) * 5"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"select_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"SELECT * FROM showroom_db ORDER BY sales_id ASC LIMIT 5 offset {{(List.pageNo - 1) * 5}};","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["(List.pageNo - 1) * 5"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_select_showroom_db","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.409794Z"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"fetch_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"INSERT INTO showroom_db\n\t(customer_id,customer_name,sales_id,customer_email,customer_phone,car_type, car_model_name,car_model_type,car_chassis_no,selling_price,salesperson_responsible,rating, salesperson_id) values\n\t({{customer_id_input.text}},\n\t {{customer_name_input.text}},\n\t {{sales_id_input.text}},\n\t {{customer_email_input.text}},\n\t {{cust_phone_input.text}},\n\t {{car_type_input.selectedOptionValue}}, \n\t {{model_name_select.selectedOptionValue}},\n\t {{car_model_type_input.selectedOptionValue}},\n\t {{car_chassis_no_input.text}},\n\t {{sp_input.value}},\n\t {{select_salesperson2.selectedOptionLabel}},\n\t {{Rating2.value}},\n\t {{select_salesperson2.selectedOptionValue}}\n\t);","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["customer_email_input.text","model_name_select.selectedOptionValue","car_chassis_no_input.text","car_type_input.selectedOptionValue","car_model_type_input.selectedOptionValue","cust_phone_input.text","select_salesperson2.selectedOptionValue","select_salesperson2.selectedOptionLabel","customer_name_input.text","Rating2.value","customer_id_input.text","sales_id_input.text","sp_input.value"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"fetch_showroom_db","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"INSERT INTO showroom_db\n\t(customer_id,customer_name,sales_id,customer_email,customer_phone,car_type, car_model_name,car_model_type,car_chassis_no,selling_price,salesperson_responsible,rating, salesperson_id) values\n\t({{customer_id_input.text}},\n\t {{customer_name_input.text}},\n\t {{sales_id_input.text}},\n\t {{customer_email_input.text}},\n\t {{cust_phone_input.text}},\n\t {{car_type_input.selectedOptionValue}}, \n\t {{model_name_select.selectedOptionValue}},\n\t {{car_model_type_input.selectedOptionValue}},\n\t {{car_chassis_no_input.text}},\n\t {{sp_input.value}},\n\t {{select_salesperson2.selectedOptionLabel}},\n\t {{Rating2.value}},\n\t {{select_salesperson2.selectedOptionValue}}\n\t);","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["customer_email_input.text","model_name_select.selectedOptionValue","car_chassis_no_input.text","car_type_input.selectedOptionValue","car_model_type_input.selectedOptionValue","cust_phone_input.text","select_salesperson2.selectedOptionValue","select_salesperson2.selectedOptionLabel","customer_name_input.text","Rating2.value","customer_id_input.text","sales_id_input.text","sp_input.value"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_fetch_showroom_db","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.410734Z"},{"pluginType":"DB","pluginId":"postgres-plugin","unpublishedAction":{"name":"select_salesperson","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"select * from salesperson","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"select_salesperson","datasource":{"name":"Mock_DB","pluginId":"postgres-plugin","messages":[],"isAutoGenerated":false,"id":"Mock_DB","deleted":false,"policies":[],"userPermissions":[]},"actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"select * from salesperson","selfReferencingDataPaths":[],"pluginSpecifiedTemplates":[{"value":true}]},"executeOnLoad":true,"dynamicBindingPathList":[],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_select_salesperson","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.411654Z"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"randomSalesID","fullyQualifiedName":"randomID.randomSalesID","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_randomID","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n return Math.ceil(Math.random() * (9999 - +1)) + 1;\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n return Math.ceil(Math.random() * (9999 - +1)) + 1;\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"randomSalesID","fullyQualifiedName":"randomID.randomSalesID","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_randomID","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n return Math.ceil(Math.random() * (9999 - +1)) + 1;\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n return Math.ceil(Math.random() * (9999 - +1)) + 1;\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_randomID.randomSalesID","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.408533Z"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"search","fullyQualifiedName":"JSObject1.search","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_JSObject1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n if (Input1Copy.text.length == 0) {\n return select_showroom_db.data;\n } else {\n return select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase()));\n }\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n if (Input1Copy.text.length == 0) {\n return select_showroom_db.data;\n } else {\n return select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase()));\n }\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"deletedAt":"2022-10-24T12:03:41Z","policies":[],"userPermissions":[]},"publishedAction":{"name":"search","fullyQualifiedName":"JSObject1.search","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","organizationId":"61b6d49e33c6ae6163af2716","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"collectionId":"null_JSObject1","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n if (Input1Copy.text.length == 0) {\n return select_showroom_db.data;\n } else {\n return select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase()));\n }\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n if (Input1Copy.text.length == 0) {\n return select_showroom_db.data;\n } else {\n return select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase()));\n }\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"null_JSObject1.search","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_2022-10-24T12:03:12.411039Z"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"gendata","fullyQualifiedName":"utils.gendata","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n const max = 25000;\n const min = 10000;\n const data = utils.days().map(d => ({\n label: d,\n value: Math.floor(Math.random() * (max - min + 1) + min)\n })).map(d => ({\n ...d,\n _: d.value\n }));\n storeValue('data', data);\n storeValue('backup', data);\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":true},"executeOnLoad":false,"clientSideExecution":true,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n const max = 25000;\n const min = 10000;\n const data = utils.days().map(d => ({\n label: d,\n value: Math.floor(Math.random() * (max - min + 1) + min)\n })).map(d => ({\n ...d,\n _: d.value\n }));\n storeValue('data', data);\n storeValue('backup', data);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.gendata","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_635680c431cf9c0f491803ca"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"days","fullyQualifiedName":"utils.days","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.days","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_635683794b1a8d4291238ad3"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"middleGain","fullyQualifiedName":"utils.middleGain","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"async () => {\n const slider = NumberSlider2.value;\n let data = appsmith.store.data;\n const length = data.length;\n if (length % 2) {\n const mid = Math.floor(length / 2);\n data = utils.chgData(data, [mid], slider);\n } else {\n const mid2 = length / 2;\n const mid1 = mid2 - 1;\n data = utils.chgData(data, [mid1, mid2], slider);\n }\n storeValue('data', data);\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":true},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["async () => {\n const slider = NumberSlider2.value;\n let data = appsmith.store.data;\n const length = data.length;\n if (length % 2) {\n const mid = Math.floor(length / 2);\n data = utils.chgData(data, [mid], slider);\n } else {\n const mid2 = length / 2;\n const mid1 = mid2 - 1;\n data = utils.chgData(data, [mid1, mid2], slider);\n }\n storeValue('data', data);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.middleGain","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63568792f6cdb970519c14f9"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"startGain","fullyQualifiedName":"utils.startGain","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"async () => {\n const slider = NumberSlider1.value;\n let data = appsmith.store.data;\n const length = data.length;\n if (length < 4) {\n data = utils.chgData(data, [0], slider);\n } else {\n data = utils.chgData(data, [0, 1], slider);\n }\n storeValue('data', data);\n return data;\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":true},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["async () => {\n const slider = NumberSlider1.value;\n let data = appsmith.store.data;\n const length = data.length;\n if (length < 4) {\n data = utils.chgData(data, [0], slider);\n } else {\n data = utils.chgData(data, [0, 1], slider);\n }\n storeValue('data', data);\n return data;\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.startGain","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63568cf8f6cdb970519c1560"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"endGain","fullyQualifiedName":"utils.endGain","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"async () => {\n const slider = NumberSlider3.value;\n let data = appsmith.store.data;\n const length = data.length;\n const end = length - 1;\n if (length < 4) {\n data = utils.chgData(data, [end], slider);\n } else {\n data = utils.chgData(data, [end, end - 1], slider);\n }\n storeValue('data', data);\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":true},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["async () => {\n const slider = NumberSlider3.value;\n let data = appsmith.store.data;\n const length = data.length;\n const end = length - 1;\n if (length < 4) {\n data = utils.chgData(data, [end], slider);\n } else {\n data = utils.chgData(data, [end, end - 1], slider);\n }\n storeValue('data', data);\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.endGain","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63568e62dc264920d5e28a7f"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"zoomData","fullyQualifiedName":"utils.zoomData","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"() => {\n const backup = appsmith.store.backup;\n storeValue('data', backup.slice(RangeSlider1.start - 1, RangeSlider1.end));\n}","selfReferencingDataPaths":[],"jsArguments":[],"isAsync":true},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["() => {\n const backup = appsmith.store.backup;\n storeValue('data', backup.slice(RangeSlider1.start - 1, RangeSlider1.end));\n}"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.zoomData","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63568fb9f6cdb970519c1593"},{"pluginType":"JS","pluginId":"js-plugin","unpublishedAction":{"name":"chgData","fullyQualifiedName":"utils.chgData","datasource":{"name":"UNUSED_DATASOURCE","pluginId":"js-plugin","messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"pageId":"Playground","collectionId":"Playground_utils","actionConfiguration":{"timeoutInMillisecond":10000.0,"paginationType":"NONE","encodeParamsToggle":true,"body":"(data, arr, mul) => data.map((d, i) => {\n if (!~arr.findIndex(a => a == i)) return d;\n return {\n ...d,\n value: d._ + d._ * mul\n };\n})","selfReferencingDataPaths":[],"jsArguments":[{},{},{}],"isAsync":false},"executeOnLoad":false,"dynamicBindingPathList":[{"key":"body"}],"isValid":true,"invalids":[],"messages":[],"jsonPathKeys":["(data, arr, mul) => data.map((d, i) => {\n if (!~arr.findIndex(a => a == i)) return d;\n return {\n ...d,\n value: d._ + d._ * mul\n };\n})"],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"publishedAction":{"datasource":{"messages":[],"isAutoGenerated":false,"deleted":false,"policies":[],"userPermissions":[]},"messages":[],"userSetOnLoad":false,"confirmBeforeExecute":false,"policies":[],"userPermissions":[]},"id":"Playground_utils.chgData","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_6356922ff6cdb970519c15ca"}],"actionCollectionList":[{"unpublishedCollection":{"name":"randomID","pluginId":"js-plugin","pluginType":"JS","deletedAt":"2022-10-24T12:03:41Z","actions":[],"archivedActions":[],"body":"export default {\n\trandomSalesID: () => {\n return Math.ceil(Math.random() * (9999 - + 1)) + 1;\n},\n\trandomCustomerID: () => {\n return Math.ceil(Math.random() * (99999 - + 1)) + 1;\n} \n\t}","variables":[],"userPermissions":[]},"publishedCollection":{"name":"randomID","pluginId":"js-plugin","pluginType":"JS","actions":[],"archivedActions":[],"body":"export default {\n\trandomSalesID: () => {\n return Math.ceil(Math.random() * (9999 - + 1)) + 1;\n},\n\trandomCustomerID: () => {\n return Math.ceil(Math.random() * (99999 - + 1)) + 1;\n} \n\t}","variables":[],"userPermissions":[]},"id":"null_randomID","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63567f004b1a8d4291238a4f"},{"unpublishedCollection":{"name":"JSObject1","pluginId":"js-plugin","pluginType":"JS","deletedAt":"2022-10-24T12:03:41Z","actions":[],"archivedActions":[],"body":"export default {\n\tmyVar1: [],\n\tmyVar2: {},\n\t\tgetCarSalesRevenue: () => {\n\t\tconst arr = select_showroom_db.data.map(x => parseInt(x.selling_price))\n\t\treturn ((arr.reduce((a, b) => a + b, 0)))\n\t},\n\t\tsearch: () => {\n\t\tif(Input1Copy.text.length==0){\n\t\t\treturn select_showroom_db.data\n\t\t}\n\t\telse{\n\t\t\treturn(select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase())))\n\t\t}\n\t}\n}","variables":[{"name":"myVar1","value":"[]"},{"name":"myVar2","value":"{}"}],"userPermissions":[]},"publishedCollection":{"name":"JSObject1","pluginId":"js-plugin","pluginType":"JS","actions":[],"archivedActions":[],"body":"export default {\n\tmyVar1: [],\n\tmyVar2: {},\n\t\tgetCarSalesRevenue: () => {\n\t\tconst arr = select_showroom_db.data.map(x => parseInt(x.selling_price))\n\t\treturn ((arr.reduce((a, b) => a + b, 0)))\n\t},\n\t\tsearch: () => {\n\t\tif(Input1Copy.text.length==0){\n\t\t\treturn select_showroom_db.data\n\t\t}\n\t\telse{\n\t\t\treturn(select_showroom_db.data.filter(word => word.customer_name.toLowerCase().includes(Input1Copy.text.toLowerCase())))\n\t\t}\n\t}\n}","variables":[{"name":"myVar1","value":"[]"},{"name":"myVar2","value":"{}"}],"userPermissions":[]},"id":"null_JSObject1","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_63567f004b1a8d4291238a51"},{"unpublishedCollection":{"name":"utils","pageId":"Playground","pluginId":"js-plugin","pluginType":"JS","actions":[],"archivedActions":[],"body":"export default {\n\tdays: () => ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n\tchgData: (data, arr, mul) => data.map((d, i) => {\n\t\tif(!~arr.findIndex(a => a==i)) return d;\t\n\t\treturn {...d, value: d._ + (d._ * mul)}\n\t}),\n\tgendata: () => {\n\t\tconst max = 25000;\n\t\tconst min = 10000;\n\n\t\tconst data = this.days()\n\t\t.map(d => ({label: d, value: Math.floor(Math.random() * (max - min + 1) + min)}))\n\t\t.map(d => ({...d, _: d.value}));\n\n\t\tstoreValue('data', data);\n\t\tstoreValue('backup', data);\n\t},\n\tzoomData: () => {\n\t\tconst backup = appsmith.store.backup;\n\t\tstoreValue('data', backup.slice(RangeSlider1.start-1, RangeSlider1.end));\n\t},\n\tmiddleGain: async () => {\n\t\tconst slider = NumberSlider2.value;\n\t\tlet data = appsmith.store.data;\n\t\tconst length = data.length;\n\t\t\n\t\tif(length%2) {\n\t\t\tconst mid = Math.floor((length/2));\n\t\t\tdata = this.chgData(data, [mid], slider);\n\t\t} else {\n\t\t\tconst mid2 = (length/2)\n\t\t\tconst mid1 = mid2-1;\n\t\t\tdata = this.chgData(data, [mid1, mid2], slider);\n\t\t}\n\t\tstoreValue('data', data);\n\t},\n\tstartGain: async () => {\n\t\tconst slider = NumberSlider1.value;\n\t\tlet data = appsmith.store.data;\n\t\tconst length = data.length;\n\t\t\n\t\tif(length < 4) {\n\t\t\tdata = this.chgData(data, [0], slider);\n\t\t} else {\n\t\t\tdata = this.chgData(data, [0, 1], slider);\n\t\t}\n\t\tstoreValue('data', data);\n\t\treturn data;\n\t},\n\tendGain: async () => {\n\t\tconst slider = NumberSlider3.value;\n\t\tlet data = appsmith.store.data;\n\t\tconst length = data.length;\n\t\tconst end = length-1;\n\t\t\n\t\tif(length < 4) {\n\t\t\tdata = this.chgData(data, [end], slider);\n\t\t} else {\n\t\t\tdata = this.chgData(data, [end, end-1], slider);\n\t\t}\n\t\tstoreValue('data', data);\n\t}\n}","variables":[],"userPermissions":[]},"id":"Playground_utils","deleted":false,"gitSyncId":"6352500ef6cdb970519be2ce_635680c431cf9c0f491803ce"}],"updatedResources":{"actionList":["randomID.randomCustomerID##ENTITY_SEPARATOR##null","utils.middleGain##ENTITY_SEPARATOR##Playground","utils.startGain##ENTITY_SEPARATOR##Playground","fetch_showroom_db##ENTITY_SEPARATOR##null","JSObject1.search##ENTITY_SEPARATOR##null","utils.days##ENTITY_SEPARATOR##Playground","utils.endGain##ENTITY_SEPARATOR##Playground","randomID.randomSalesID##ENTITY_SEPARATOR##null","update_showroom_db##ENTITY_SEPARATOR##null","select_salesperson##ENTITY_SEPARATOR##null","utils.gendata##ENTITY_SEPARATOR##Playground","JSObject1.getCarSalesRevenue##ENTITY_SEPARATOR##null","select_car_db##ENTITY_SEPARATOR##null","select_showroom_db##ENTITY_SEPARATOR##null","utils.zoomData##ENTITY_SEPARATOR##Playground","utils.chgData##ENTITY_SEPARATOR##Playground"],"pageList":["Lab","Playground"],"actionCollectionList":["JSObject1##ENTITY_SEPARATOR##null","utils##ENTITY_SEPARATOR##Playground","randomID##ENTITY_SEPARATOR##null"]},"editModeTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false},"publishedTheme":{"name":"Default","displayName":"Modern","isSystemTheme":true,"deleted":false}} --------------------------------------------------------------------------------