diff --git a/.github/ISSUE_TEMPLATE/blank-issue.md b/.github/ISSUE_TEMPLATE/blank-issue.md
index a75a374f..9049e260 100644
--- a/.github/ISSUE_TEMPLATE/blank-issue.md
+++ b/.github/ISSUE_TEMPLATE/blank-issue.md
@@ -2,7 +2,8 @@
name: Blank Issue
about: Consistent formatting make Issues concise and easy to navigate
title: ''
-labels: ''
+labels: 'feature: missing, level: missing, milestone: missing, priority: missing,
+ role: missing, size: missing'
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
new file mode 100644
index 00000000..9c51bf88
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,51 @@
+---
+name: Bug report
+about: Lists out information that would be help developers quickly identify and fix
+ potentail problems.
+title: 'Bug: '
+labels: 'bug, feature: missing, level: missing, milestone: missing, priority: MUST
+ HAVE, role: missing, size: missing'
+assignees: ''
+
+---
+
+#### Describe the bug
+
+REPLACE THIS TEXT - A clear and concise description of what the bug is, who it affects, how it affects users.
+
+(optional) REPLACE THIS TEXT - What is the user's goal?
+
+
+#### Steps to reproduce the issue
+
+(if applicable, please specify platform (iOS, Android, Windows, Mac version) and brower)
+
+REPLACE THE FOLLOWNG TEXT:
+- 1. Go to '...'
+- 2. Click on '....'
+- 3. Scroll down to '....'
+- 4. See error
+
+
+#### What's the expected result?
+
+REPLACE THIS TEXT - What is supposed to happen after following the above steps?
+
+(if you have a suggested solution, you can add it here)
+
+#### What's the actual result?
+
+REPLACE THIS TEXT - What is supposed actually happening after following the above steps?
+
+#### Additional details / screenshot
+
+REPLACE THIS TEXT - Screenshot (drag in)
+REPLACE THIS TEXT - Video recording (drag in)
+
+#### Device configuration
+
+REPLACE THE FOLLOWNG TEXT:
+- Device: [e.g. type of smartphone, tablet, desktop computer]
+- OS version: [e.g. iOS, Android version #]
+- Browser [e.g. Chrome, Firefox, Safari, etc.]
+- Browser version [e.g. 22]
diff --git a/.github/ISSUE_TEMPLATE/control-what-appears-when-you-paste-your-sites-link-in-social-media-sites.md b/.github/ISSUE_TEMPLATE/control-what-appears-when-you-paste-your-sites-link-in-social-media-sites.md
deleted file mode 100644
index 874831b0..00000000
--- a/.github/ISSUE_TEMPLATE/control-what-appears-when-you-paste-your-sites-link-in-social-media-sites.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-name: Control what appears when you paste your sites link in social media sites
-about: Add Open Graph Markup tags to header
-title: Control what appears when you paste your sites link in social media sites
-labels: Tutorial, enhancement, question
-assignees: ''
-
----
-
-### Overview
-When your website is shared on slack, facebook, twitter, etc. It should automatically display with an image and title instead of just the URL.
-
-### Action items
-Identify what to put in the following fields:
-og:url
-g:type
-og:title
-og:description
-og:image
-og:type (optional)
-og:local (option)
-using the standards set forth in the instructions.
-
-Add content to header and test with the tool provided in the instructions.
-
-### Instructions
-[A Guide to Sharing for Webmasters](https://developers.facebook.com/docs/sharing/webmasters#markup)
diff --git a/.github/ISSUE_TEMPLATE/feature--request.md b/.github/ISSUE_TEMPLATE/feature--request.md
index 59ecbf52..4f2ec342 100644
--- a/.github/ISSUE_TEMPLATE/feature--request.md
+++ b/.github/ISSUE_TEMPLATE/feature--request.md
@@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: 'Feature Suggestion: '
-labels: documentation, product
+labels: documentation
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/lighthouse--accessibility---forms.md b/.github/ISSUE_TEMPLATE/lighthouse--accessibility---forms.md
index aed87275..54a28b7a 100644
--- a/.github/ISSUE_TEMPLATE/lighthouse--accessibility---forms.md
+++ b/.github/ISSUE_TEMPLATE/lighthouse--accessibility---forms.md
@@ -3,7 +3,7 @@ name: 'Lighthouse: Accessibility - Forms'
about: Instructions for creating or improving forms to make them accessible when visitors
use screen readers AKA Form elements must have labels
title: 'Lighthouse: Accessibility - Forms'
-labels: Accessibility, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/lighthouse--accessibility---links.md b/.github/ISSUE_TEMPLATE/lighthouse--accessibility---links.md
index c10ecb81..f664248c 100644
--- a/.github/ISSUE_TEMPLATE/lighthouse--accessibility---links.md
+++ b/.github/ISSUE_TEMPLATE/lighthouse--accessibility---links.md
@@ -2,7 +2,7 @@
name: 'Lighthouse: Accessibility - Links'
about: AKA Links must have discernible text
title: 'Lighthouse: Accessibility - Links'
-labels: Accessibility, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/lighthouse--cross-origin-destinations-are-unsafe.md b/.github/ISSUE_TEMPLATE/lighthouse--cross-origin-destinations-are-unsafe.md
index b2831e53..455b6311 100644
--- a/.github/ISSUE_TEMPLATE/lighthouse--cross-origin-destinations-are-unsafe.md
+++ b/.github/ISSUE_TEMPLATE/lighthouse--cross-origin-destinations-are-unsafe.md
@@ -2,7 +2,7 @@
name: 'Lighthouse: Cross-origin destinations are unsafe'
about: Instructions for addressing the cross-origin linking vulnerabilities
title: 'Lighthouse Issue: Cross-origin destinations are unsafe'
-labels: Performance, Security, Site Audits
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/lighthouse--how-to.md b/.github/ISSUE_TEMPLATE/lighthouse--how-to.md
index 246ea9be..c99a39ca 100644
--- a/.github/ISSUE_TEMPLATE/lighthouse--how-to.md
+++ b/.github/ISSUE_TEMPLATE/lighthouse--how-to.md
@@ -2,7 +2,7 @@
name: 'Lighthouse: How To'
about: Provides overview of how to use Lighthouse and links to additional resources
title: 'Lighthouse: How To'
-labels: Performance, Security, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/lighthouse--image-optimization.md b/.github/ISSUE_TEMPLATE/lighthouse--image-optimization.md
index a512c3cf..5fc0ab9e 100644
--- a/.github/ISSUE_TEMPLATE/lighthouse--image-optimization.md
+++ b/.github/ISSUE_TEMPLATE/lighthouse--image-optimization.md
@@ -2,7 +2,7 @@
name: 'Lighthouse: Image Optimization'
about: Instructions for optimizing images
title: 'Lighthouse: Image Optimization'
-labels: Performance, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/post-an-open-role.md b/.github/ISSUE_TEMPLATE/post-an-open-role.md
new file mode 100644
index 00000000..eef2c760
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/post-an-open-role.md
@@ -0,0 +1,12 @@
+---
+name: Post an open role
+about: Recruit volunteers for specific open roles template
+title: 'TDM: Open Role for: [Replace with NAME OF ROLE]'
+labels: 'feature: recruiting, level: easy, role: missing, size: 0.25pt'
+assignees: ''
+
+---
+
+
+
+[INSERT DRAFT FROM THE Recruit volunteers for team open roles issue]
diff --git a/.github/ISSUE_TEMPLATE/wave-chrome-extension--accessibility-review.md b/.github/ISSUE_TEMPLATE/wave-chrome-extension--accessibility-review.md
index da9c14d8..7a8184af 100644
--- a/.github/ISSUE_TEMPLATE/wave-chrome-extension--accessibility-review.md
+++ b/.github/ISSUE_TEMPLATE/wave-chrome-extension--accessibility-review.md
@@ -2,7 +2,7 @@
name: 'Wave Chrome Extension: Accessibility review'
about: Describe this issue template's purpose here.
title: 'Wave Chrome Extension: Accessibility review'
-labels: Accessibility, Performance, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/ISSUE_TEMPLATE/which-accessibility-testing-tool-should-you-use-.md b/.github/ISSUE_TEMPLATE/which-accessibility-testing-tool-should-you-use-.md
index bffab3bd..1658c1c0 100644
--- a/.github/ISSUE_TEMPLATE/which-accessibility-testing-tool-should-you-use-.md
+++ b/.github/ISSUE_TEMPLATE/which-accessibility-testing-tool-should-you-use-.md
@@ -3,7 +3,7 @@ name: Which accessibility testing tool should you use?
about: There are a lot of tools, this issue has a list of our favorites and links
to more
title: Which accessibility testing tool should you use?
-labels: Accessibility, Performance, Security, Site Audits, Tutorial
+labels: ''
assignees: ''
---
diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml
index 89307b33..8a5743c0 100644
--- a/.github/workflows/docker.yaml
+++ b/.github/workflows/docker.yaml
@@ -2,7 +2,7 @@
on:
push:
branches:
- - experimental
+ - uat
- develop
- main
release:
diff --git a/.github/workflows/new-issue-create-card.yml b/.github/workflows/new-issue-create-card.yml
deleted file mode 100644
index aa2bdc12..00000000
--- a/.github/workflows/new-issue-create-card.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-name: Create card for new issues
-on:
- issues:
- types: [opened]
-jobs:
- createCard:
- runs-on: ubuntu-latest
- steps:
- - name: Create or Update Project Card
- uses: peter-evans/create-or-update-project-card@v2
- with:
- project-name: Product Management
- column-name: New Issue Approval
diff --git a/client/.eslintrc.json b/client/.eslintrc.json
index 9e243a5e..4f448619 100644
--- a/client/.eslintrc.json
+++ b/client/.eslintrc.json
@@ -19,7 +19,7 @@
"ecmaFeatures": {
"jsx": true
},
- "ecmaVersion": 2018,
+ "ecmaVersion": 2020,
"sourceType": "module"
},
"plugins": ["react", "jest", "prettier", "eslint-plugin-react"],
diff --git a/client/package-lock.json b/client/package-lock.json
index b3a1c521..92569145 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -1,31 +1,30 @@
{
"name": "tdm-calculator-client",
- "version": "0.2.48",
+ "version": "0.2.50",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "tdm-calculator-client",
- "version": "0.2.48",
+ "version": "0.2.50",
"dependencies": {
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
- "@fortawesome/fontawesome-svg-core": "^6.1.1",
- "@fortawesome/free-solid-svg-icons": "^6.1.1",
- "@fortawesome/react-fontawesome": "^0.2.0",
"@react-pdf/renderer": "^3.1.9",
"axios": "^1.6.1",
"clsx": "^2.0.0",
"eslint": "^8.53.0",
"formik": "^2.2.9",
"interweave": "^13.1.0",
- "moment": "^2.29.1",
+ "luxon": "^3.4.4",
"react": "^18.1.0",
"react-aria-modal": "^5.0.0",
"react-beautiful-dnd": "^13.1.1",
"react-csv": "^2.2.2",
+ "react-csv-downloader": "^3.1.0",
"react-datepicker": "^4.24.0",
"react-dom": "^18.1.0",
"react-gtm-module": "^2.0.11",
+ "react-icons": "^5.2.1",
"react-input-mask": "^2.0.4",
"react-jss": "^10.8.2",
"react-loader": "^2.4.7",
@@ -2726,48 +2725,6 @@
"version": "0.1.6",
"license": "MIT"
},
- "node_modules/@fortawesome/fontawesome-common-types": {
- "version": "6.4.2",
- "hasInstallScript": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/fontawesome-svg-core": {
- "version": "6.4.2",
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/free-solid-svg-icons": {
- "version": "6.4.2",
- "hasInstallScript": true,
- "license": "(CC-BY-4.0 AND MIT)",
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/react-fontawesome": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
- "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
- "dependencies": {
- "prop-types": "^15.8.1"
- },
- "peerDependencies": {
- "@fortawesome/fontawesome-svg-core": "~1 || ~6",
- "react": ">=16.3"
- }
- },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.13",
"license": "Apache-2.0",
@@ -5382,12 +5339,13 @@
"license": "MIT"
},
"node_modules/body-parser": {
- "version": "1.20.1",
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bytes": "3.1.2",
- "content-type": "~1.0.4",
+ "content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@@ -5395,7 +5353,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
- "raw-body": "2.5.1",
+ "raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@@ -5406,24 +5364,27 @@
},
"node_modules/body-parser/node_modules/bytes": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/body-parser/node_modules/iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -5433,8 +5394,9 @@
},
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
},
"node_modules/bonjour-service": {
"version": "1.1.1",
@@ -5473,11 +5435,12 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -6052,8 +6015,9 @@
},
"node_modules/content-type": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -6064,9 +6028,10 @@
"license": "MIT"
},
"node_modules/cookie": {
- "version": "0.5.0",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -7130,9 +7095,10 @@
"license": "MIT"
},
"node_modules/ejs": {
- "version": "3.1.9",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
+ "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"jake": "^10.8.5"
},
@@ -8119,16 +8085,17 @@
}
},
"node_modules/express": {
- "version": "4.18.2",
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.5.0",
+ "cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@@ -8268,6 +8235,11 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
+ "node_modules/file-saver": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
+ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+ },
"node_modules/filelist": {
"version": "1.0.4",
"dev": true,
@@ -8304,9 +8276,10 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -8415,9 +8388,9 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
- "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"funding": [
{
"type": "individual",
@@ -9736,8 +9709,9 @@
},
"node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -11821,6 +11795,14 @@
"yallist": "^3.0.2"
}
},
+ "node_modules/luxon": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz",
+ "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/lz-string": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
@@ -11879,8 +11861,9 @@
},
"node_modules/media-typer": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -12063,13 +12046,6 @@
"mkdirp": "bin/cmd.js"
}
},
- "node_modules/moment": {
- "version": "2.29.4",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
"node_modules/ms": {
"version": "2.1.2",
"license": "MIT"
@@ -14181,8 +14157,9 @@
},
"node_modules/qs": {
"version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.0.4"
},
@@ -14281,9 +14258,10 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.1",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -14296,16 +14274,18 @@
},
"node_modules/raw-body/node_modules/bytes": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/raw-body/node_modules/iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -14377,6 +14357,20 @@
"version": "2.2.2",
"license": "MIT"
},
+ "node_modules/react-csv-downloader": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-csv-downloader/-/react-csv-downloader-3.1.0.tgz",
+ "integrity": "sha512-ART4CNMU89Y5OZQp9gR3IUlVt541djWwRfokQY+CYsGQjHNZFJAk6FvgOwLUNG0o/CxeUdexYjnMMFinMv4Xjg==",
+ "dependencies": {
+ "file-saver": "^2.0.2"
+ },
+ "engines": {
+ "npm": ">=7.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.6.3 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-datepicker": {
"version": "4.24.0",
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.24.0.tgz",
@@ -14486,6 +14480,14 @@
"version": "2.0.11",
"license": "MIT"
},
+ "node_modules/react-icons": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz",
+ "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-input-mask": {
"version": "2.0.4",
"license": "MIT",
@@ -18022,8 +18024,9 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -18166,8 +18169,9 @@
},
"node_modules/type-is": {
"version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -18604,9 +18608,10 @@
}
},
"node_modules/webpack-dev-middleware": {
- "version": "5.3.3",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
+ "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"colorette": "^2.0.10",
"memfs": "^3.4.3",
@@ -20935,29 +20940,6 @@
"@floating-ui/utils": {
"version": "0.1.6"
},
- "@fortawesome/fontawesome-common-types": {
- "version": "6.4.2"
- },
- "@fortawesome/fontawesome-svg-core": {
- "version": "6.4.2",
- "requires": {
- "@fortawesome/fontawesome-common-types": "6.4.2"
- }
- },
- "@fortawesome/free-solid-svg-icons": {
- "version": "6.4.2",
- "requires": {
- "@fortawesome/fontawesome-common-types": "6.4.2"
- }
- },
- "@fortawesome/react-fontawesome": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
- "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
- "requires": {
- "prop-types": "^15.8.1"
- }
- },
"@humanwhocodes/config-array": {
"version": "0.11.13",
"requires": {
@@ -22712,11 +22694,13 @@
"dev": true
},
"body-parser": {
- "version": "1.20.1",
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dev": true,
"requires": {
"bytes": "3.1.2",
- "content-type": "~1.0.4",
+ "content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@@ -22724,17 +22708,21 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
- "raw-body": "2.5.1",
+ "raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
},
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
@@ -22742,6 +22730,8 @@
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -22749,6 +22739,8 @@
},
"ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
}
}
@@ -22784,10 +22776,12 @@
}
},
"braces": {
- "version": "3.0.2",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"requires": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
}
},
"brotli": {
@@ -23148,6 +23142,8 @@
},
"content-type": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"dev": true
},
"convert-source-map": {
@@ -23155,7 +23151,9 @@
"dev": true
},
"cookie": {
- "version": "0.5.0",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"dev": true
},
"cookie-signature": {
@@ -23828,7 +23826,9 @@
"dev": true
},
"ejs": {
- "version": "3.1.9",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
+ "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dev": true,
"requires": {
"jake": "^10.8.5"
@@ -24467,15 +24467,17 @@
"dev": true
},
"express": {
- "version": "4.18.2",
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dev": true,
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.5.0",
+ "cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@@ -24581,6 +24583,11 @@
"schema-utils": "^3.0.0"
}
},
+ "file-saver": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
+ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+ },
"filelist": {
"version": "1.0.4",
"dev": true,
@@ -24609,7 +24616,9 @@
"dev": true
},
"fill-range": {
- "version": "7.0.1",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
@@ -24685,9 +24694,9 @@
}
},
"follow-redirects": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
- "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw=="
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
},
"fontkit": {
"version": "2.0.2",
@@ -25475,6 +25484,8 @@
},
"is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"is-number-object": {
@@ -26967,6 +26978,11 @@
"yallist": "^3.0.2"
}
},
+ "luxon": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz",
+ "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA=="
+ },
"lz-string": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
@@ -27009,6 +27025,8 @@
},
"media-typer": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"dev": true
},
"memfs": {
@@ -27113,9 +27131,6 @@
"minimist": "^1.2.6"
}
},
- "moment": {
- "version": "2.29.4"
- },
"ms": {
"version": "2.1.2"
},
@@ -28258,6 +28273,8 @@
},
"qs": {
"version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dev": true,
"requires": {
"side-channel": "^1.0.4"
@@ -28324,7 +28341,9 @@
"dev": true
},
"raw-body": {
- "version": "2.5.1",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dev": true,
"requires": {
"bytes": "3.1.2",
@@ -28335,10 +28354,14 @@
"dependencies": {
"bytes": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -28392,6 +28415,14 @@
"react-csv": {
"version": "2.2.2"
},
+ "react-csv-downloader": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-csv-downloader/-/react-csv-downloader-3.1.0.tgz",
+ "integrity": "sha512-ART4CNMU89Y5OZQp9gR3IUlVt541djWwRfokQY+CYsGQjHNZFJAk6FvgOwLUNG0o/CxeUdexYjnMMFinMv4Xjg==",
+ "requires": {
+ "file-saver": "^2.0.2"
+ }
+ },
"react-datepicker": {
"version": "4.24.0",
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.24.0.tgz",
@@ -28477,6 +28508,11 @@
"react-gtm-module": {
"version": "2.0.11"
},
+ "react-icons": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz",
+ "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw=="
+ },
"react-input-mask": {
"version": "2.0.4",
"requires": {
@@ -30943,6 +30979,8 @@
},
"to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
@@ -31043,6 +31081,8 @@
},
"type-is": {
"version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
"requires": {
"media-typer": "0.3.0",
@@ -31327,7 +31367,9 @@
}
},
"webpack-dev-middleware": {
- "version": "5.3.3",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
+ "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
"dev": true,
"requires": {
"colorette": "^2.0.10",
diff --git a/client/package.json b/client/package.json
index 1f2358b1..4a12da31 100644
--- a/client/package.json
+++ b/client/package.json
@@ -1,6 +1,6 @@
{
"name": "tdm-calculator-client",
- "version": "0.2.50",
+ "version": "0.2.51",
"private": true,
"proxy": "http://localhost:5001",
"scripts": {
@@ -30,23 +30,22 @@
},
"dependencies": {
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
- "@fortawesome/fontawesome-svg-core": "^6.1.1",
- "@fortawesome/free-solid-svg-icons": "^6.1.1",
- "@fortawesome/react-fontawesome": "^0.2.0",
"@react-pdf/renderer": "^3.1.9",
"axios": "^1.6.1",
"clsx": "^2.0.0",
"eslint": "^8.53.0",
"formik": "^2.2.9",
"interweave": "^13.1.0",
- "moment": "^2.29.1",
+ "luxon": "^3.4.4",
"react": "^18.1.0",
"react-aria-modal": "^5.0.0",
"react-beautiful-dnd": "^13.1.1",
"react-csv": "^2.2.2",
+ "react-csv-downloader": "^3.1.0",
"react-datepicker": "^4.24.0",
"react-dom": "^18.1.0",
"react-gtm-module": "^2.0.11",
+ "react-icons": "^5.2.1",
"react-input-mask": "^2.0.4",
"react-jss": "^10.8.2",
"react-loader": "^2.4.7",
diff --git a/client/src/App.js b/client/src/App.js
index 083af825..5fbc354e 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -34,7 +34,9 @@ import ResetPassword from "./components/Authorization/ResetPassword";
import ForgotPassword from "./components/Authorization/ForgotPassword";
import Feedback from "./components/Feedback/FeedbackPage";
import ErrorPage from "./components/ErrorPage";
+import Offline from "./components/Offline";
import Logout from "./components/Authorization/Logout";
+import { getConfigs } from "./helpers/Config";
const calculationPath = "/calculation/:page/:projectId?/*";
@@ -51,6 +53,10 @@ const App = () => {
Learn more about{" "}
- Hack for LA{" "}
- Status of the TDM Calculator
@@ -87,10 +82,7 @@ const About = () => {
target="external"
>
Glossary
-
The TDM Ordinance will take effect after it is adopted by the City Council and signed by the Mayor. You can track the steps of the legislative process via the City Clerk''s website (click on the envelope icon there to get email updates).
Once the Ordinance becomes effective, there will be a phase-in period that will exempt certain projects that are already in the pipeline from the new provisions, including: projects that have submitted a complete application before the effective date; Level 2 and Level 3 Projects that receive a building permit within 180 days after the effective date; and Level 1 projects that receive a building permit within 365 days after the effective date of the Ordinance.
","faqCategoryId":7,"displayOrder":10},{"id":20,"question":"Do the hyperlinks work?","answer":"Here is an internal link.
Here is an external link.
","faqCategoryId":1125,"displayOrder":20}]') +GO +INSERT [dbo].[FaqCategory] ([id], [name], [displayOrder], [faqs]) VALUES (1198, N'Getting Started', 30, N'[{"id":2,"question":"What do I need to prepare to get started? ","answer":"You may refer to the hyperlinked checklist at the bottom right of your browser window.
","faqCategoryId":14,"displayOrder":10},{"id":19,"question":"Does the TDM Ordinance apply to my project and do I need to use the TDM Calculator? ","answer":"Please check LAMC Section 12.26 J.3(c) of the Draft Revised TDM Ordinance for applicability and exemption details. If the TDM Ordinance applies to your project, you need to use the TDM Calculator to create a TDM Plan to submit to LADOT for review.
","faqCategoryId":14,"displayOrder":10}]') +GO +INSERT [dbo].[FaqCategory] ([id], [name], [displayOrder], [faqs]) VALUES (1199, N'Point System', 40, N'[{"id":3,"question":"How are Project Levels and Point Targets determined?","answer":"The Project Level is determined by the project use and size, and the Target Points are determined by a combination of the Project Level and amount of parking provided by the project (the percentage of parking in excess of the Citywide Parking Baseline). Learn more in Chapter 3 of the TDM Program Guidelines.
","faqCategoryId":15,"displayOrder":10},{"id":4,"question":"How are the point values (possible points) for each TDM Strategy determined?","answer":"Each TDM strategy''s assigned point value is based on its effectiveness at reducing VMT and how it advances the City''s policy goals. Each strategy is backed by academic research on how the measure changes travel behavior. Learn more in Chapter 3 of the TDM Program Guidelines.
","faqCategoryId":15,"displayOrder":10},{"id":5,"question":"What if the project''s Earned Points exceed the Target Points?","answer":"There is no benefit or penalty for selecting more TDM Strategies than are needed to meet the Target Points. Projects that exceed the Target Points are treated the same as projects that meet the Target Points exactly.
","faqCategoryId":15,"displayOrder":10},{"id":6,"question":"What if the project is not able to meet the Target Points?","answer":"An applicant must select enough TDM Strategies to meet the project''s required Point Target before submitting their TDM Plan to LADOT for review and approval. No building permit will be issued to any Project without an approved TDM Plan.
","faqCategoryId":15,"displayOrder":10}]') +GO +INSERT [dbo].[FaqCategory] ([id], [name], [displayOrder], [faqs]) VALUES (1200, N'Strategy Selection', 50, N'[{"id":7,"question":"Where can I read more about the definitions of the TDM Strategies?","answer":"You can find much of the information you will need on the \"Select TDM Strategies\" page of the TDM Calculator (page 4), by clicking on a Strategy to open an information box with more details. Learn more in Chapter 4 of the TDM Program Guidelines.
","faqCategoryId":16,"displayOrder":10},{"id":8,"question":"What is the User-Defined Strategy option for?","answer":"The User-Defined Strategy is to embrace effective innovations. You may propose one and apply for discretionary approval in order to receive points for strategies not currently in the menu of TDM Strategies. LADOT will review and give feedback about your proposal. Learn more in Chapter 4 of the TDM Program Guidelines.
","faqCategoryId":16,"displayOrder":10},{"id":10,"question":"What is a Bonus Package? How do I know whether my project qualifies?","answer":"A Bonus Package is a pre-packaged set of TDM Strategies to help you meet your project''s Point Target. If you choose the Bonus Package, the pre-packaged set of TDM Strategies will be selected, and the project will also earn one extra point. Bonus Packages are only available to Level 1 projects that do not provide parking in excess of the Citywide Parking Baseline. If your project qualifies, you will see the option at the top of the \"Select TDM Strategies\"; page of the TDM Calculator (page 4). Learn more about Bonus Packages in Chapter 4 of the TDM Program Guidelines.
","faqCategoryId":16,"displayOrder":10}]') +GO +INSERT [dbo].[FaqCategory] ([id], [name], [displayOrder], [faqs]) VALUES (1201, N'Relationship to Other Development Requirements', 60, N'[{"id":11,"question":"What are the differences between the TDM Calculator and the VMT Calculator?","answer":"The TDM program will apply to all projects that are above a threshold regardless if they need a discretionary action, while projects also need to evaluate VMT impacts if they require a discretionary action (also known as an entitlement) from the City. For projects that require CEQA analysis, some projects today need to reduce their VMT impact by applying TDM strategies as mitigation measures. For ease of use, once the TDM Ordinance update takes effect, applicants will want to complete the TDM Calculator first ensure compliance, and determine if any of the TDM strategies they selected will help to include as VMT mitigation measures in the VMT Calculator if they found any impacts during the CEQA process. When the TDM Ordinance update takes effect, developers may claim TDM strategies as regulatory compliance measures (RCMs) that are required to comply with the TDM Program, and thereby demonstrate a lower VMT when evaluating their project''s CEQA analysis. This will allow some projects to reduce VMT through the design and features of the project, creating opportunities for CEQA streamlining.
","faqCategoryId":17,"displayOrder":10}]') +GO +INSERT [dbo].[FaqCategory] ([id], [name], [displayOrder], [faqs]) VALUES (1202, N'Next Steps', 70, N'[{"id":12,"question":"What do I do with the TDM Calculatorās summary information?","answer":"This will be addressed when the ordinance is approved and the LADOT is ready for submissions.
","faqCategoryId":18,"displayOrder":10},{"id":13,"question":"What other information is required to submit with my TDM Plan for TDM Ordinance compliance?","answer":"Project applicants will submit all the usual documents required to obtain Planning Entitlements (if needed) and Building Permits for the proposed project. Contact the Development Services Center with general questions.
For TDM Ordinance compliance specifically, applicants will submit the TDM Plan, site and building plans, other relevant documentation of the proposed TDM Strategies (contracts, memberships, pricing information, etc, if applicable), and development review fees to LADOT for review and approval. Final documentation (such as contracts) must be submitted, a covenant and agreement must be recorded, and a building inspection must be completed before a Certificate of Occupancy will be issued.
","faqCategoryId":18,"displayOrder":10},{"id":14,"question":"What is the approval process after submitting my TDM Plan to LADOT?","answer":"LADOT will review your project''s proposed TDM Plan within 30 days in a ministerial process if you do not select any measures that require pre-approval from another agency. Building a new Bike Share station, for example, will require pre-approval from Metro and other LA City agencies. In the case that your project has TDM strategies that require such pre-approval, LADOT will review your project''s proposed TDM plan within 90 days.
Your project needs an approved TDM Plan before building permits will be issued. Your project needs to record a covenant stating the TDM Plan will be maintained for the lifetime of the Project before a Certificate of Occupancy will be issued.
","faqCategoryId":18,"displayOrder":10},{"id":15,"question":"What does my project need to do for annual compliance with TDM?","answer":"After your project receives its Certificate of Occupancy, you will need to submit annual compliance documentation to LADOT. Required documentation may range from a dated photograph of a project feature to copies of receipts and contracts. Level 3 Projects will also need to send monitoring data to LADOT on an annual basis, which involves surveying workers and residents on site about their travel behavior. LADOT will release more information about required compliance documentation and monitoring standards prior to the ordinance effective date.
","faqCategoryId":18,"displayOrder":10},{"id":16,"question":"How can I view, edit, and manage my past and/or current projects?","answer":"If you log in to the TDM Calculator, you will see a My Projects tab at the top left of the page. In this section, you can view all of your saved projects and copy, open, edit, and manage them from here.
","faqCategoryId":18,"displayOrder":10},{"id":17,"question":"Canāt find your answers here?","answer":"Please refer to the TDM Program Guidelines for details about the TDM Program and Strategies. If the Guidelines doesnāt answer your specific questions, you may also reach us at our feedback page for further assistance.
","faqCategoryId":18,"displayOrder":10}]') +GO +SET IDENTITY_INSERT [dbo].[FaqCategory] OFF +GO \ No newline at end of file diff --git a/server/db/migration/V20240501.1524__.changes_to_csv_format_1679.sql b/server/db/migration/V20240501.1524__.changes_to_csv_format_1679.sql new file mode 100644 index 00000000..263f118e --- /dev/null +++ b/server/db/migration/V20240501.1524__.changes_to_csv_format_1679.sql @@ -0,0 +1,3 @@ +update CalculationRule SET + dataType = 'number' +where calculationId = 1 and code = 'PTS_PKG_RESIDENTIAL_COMMERCIAL' \ No newline at end of file diff --git a/server/db/migration/V20240509.1230__remove_obsoloete_faq_table_and_sprocs_1605.sql b/server/db/migration/V20240509.1230__remove_obsoloete_faq_table_and_sprocs_1605.sql new file mode 100644 index 00000000..d982a812 --- /dev/null +++ b/server/db/migration/V20240509.1230__remove_obsoloete_faq_table_and_sprocs_1605.sql @@ -0,0 +1,7 @@ +drop proc if exists Faq_Insert; +drop proc if exists Faq_Update; +drop proc if exists Faq_Delete; +drop proc if exists Faq_SelectAll; +drop proc if exists Faq_SelectById; + +drop table if exists Faq; \ No newline at end of file diff --git a/server/db/migration/V20240529.1948__add_dateSubmitted_column_1704.sql b/server/db/migration/V20240529.1948__add_dateSubmitted_column_1704.sql new file mode 100644 index 00000000..32285571 --- /dev/null +++ b/server/db/migration/V20240529.1948__add_dateSubmitted_column_1704.sql @@ -0,0 +1 @@ +ALTER TABLE Project ADD dateSubmitted datetime2(0) NULL; \ No newline at end of file diff --git a/server/db/migration/V20240619.1716__remove_strategy_info_5_1737.sql b/server/db/migration/V20240619.1716__remove_strategy_info_5_1737.sql new file mode 100644 index 00000000..ed1ef3d4 --- /dev/null +++ b/server/db/migration/V20240619.1716__remove_strategy_info_5_1737.sql @@ -0,0 +1,18 @@ +if exists (SELECT * from calculationrule where calculationid = 1 and code = 'STRATEGY_INFO_5') +begin + delete calculationrule where calculationid = 1 and code = 'STRATEGY_INFO_5'; +end + +if exists (SELECT * from calculationrule where calculationid = 1 and code = 'PTS_INFO_5') + +begin + delete calculationrule where calculationid = 1 and code = 'PTS_INFO_5'; +end + +update calculationrule set +functionBody = ' return (<No code analysis report available yet
+Flyway Exception: Migration V20240203.0923__add_config_table_and_sprocs_1502.sql failed +--------------------------------------------------------------------- +SQL State : S0001 +Error Code : 102 +Message : Incorrect syntax near '{'. +Location : C:\git\hackforla\tdm\tdm-calculator\server\db\migration\V20240203.0923__add_config_table_and_sprocs_1502.sql (C:\git\hackforla\tdm\tdm-calculator\server\db\migration\V20240203.0923__add_config_table_and_sprocs_1502.sql) +Line : 95 +Statement : /* +Populate initially with Okta Development Settings. For other environments, the +Config values will need to be set manually or with another script. +*/ +IF NOT EXISTS (SELECT * FROM Config){ + EXEC Config_Insert 'OKTA_ENABLE', 'T' + EXEC Config_Insert 'OKTA_CLIENT_ID', '0oaeecq7dzuXwy5go5d7' + EXEC Config_Insert 'OKTA_ISSUER', 'https://dev-50564150.okta.com/oauth2/default' +} ++
Change reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Drift reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Dry Run is not included in your current Flyway license. Upgrade to Flyway Teams or Enterprise to gain access.
+No code analysis report available yet
+Version | +Description | +Category | +Type | +Filepath | +ExecutionTime | +
---|---|---|---|---|---|
20240203.0923 | +add config table and sprocs 1502 | +Versioned | +SQL | +V20240203.0923__add_config_table_and_sprocs_1502.sql | +00:00.205s | +
Change reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Drift reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Dry Run is not included in your current Flyway license. Upgrade to Flyway Teams or Enterprise to gain access.
+No code analysis report available yet
+Version | +Description | +Category | +Type | +Filepath | +ExecutionTime | +|
---|---|---|---|---|---|---|
20230627.2115 | +create insertAll faqs | +Versioned | +SQL | +V20230627.2115__create_insertAll_faqs.sql | +<<<<<<< HEAD +00:00.419s | +======= +00:00.298s | +>>>>>>> develop +
20230628.0938 | +update insertAll | +Versioned | +SQL | +V20230628.0938__update_insertAll.sql | +<<<<<<< HEAD +00:00.165s | +======= +00:00.169s | +>>>>>>> develop +
20230628.1107 | +update insertAll 3 | +Versioned | +SQL | +V20230628.1107__update_insertAll_3.sql | +<<<<<<< HEAD +00:00.160s | +======= +00:00.181s | +>>>>>>> develop +
20230628.1128 | +update category selectAll | +Versioned | +SQL | +V20230628.1128__update_category_selectAll.sql | +<<<<<<< HEAD +00:00.080s | +======= +00:00.070s | +>>>>>>> develop +
20230628.1205 | +update category insertAll 4 | +Versioned | +SQL | +V20230628.1205__update_category_insertAll_4.sql | +<<<<<<< HEAD +00:00.173s | +======= +00:00.186s | +>>>>>>> develop +
20230628.1208 | +update category insertAll 5 | +Versioned | +SQL | +V20230628.1208__update_category_insertAll_5.sql | +<<<<<<< HEAD +00:00.164s | +======= +00:00.199s | +>>>>>>> develop +
20230628.1230 | +update category insertAll 6 | +Versioned | +SQL | +V20230628.1230__update_category_insertAll_6.sql | +<<<<<<< HEAD +00:00.167s | +======= +00:00.207s | +>>>>>>> develop +
20230628.1310 | +update category insertAll 7 | +Versioned | +SQL | +V20230628.1310__update_category_insertAll_7.sql | +<<<<<<< HEAD +00:00.099s | +======= +00:00.112s | +>>>>>>> develop +
20230906.2053 | +changes to support hide trash snapshot | +Versioned | +SQL | +V20230906.2053__changes_to_support_hide_trash_snapshot.sql | +<<<<<<< HEAD +00:00.236s | +======= +00:00.287s | +>>>>>>> develop +
20230909.2141 | +archives and deletes users and projects | +Versioned | +SQL | +V20230909.2141__archives_and_deletes_users_and_projects.sql | +<<<<<<< HEAD +00:00.278s | +======= +00:00.370s | +>>>>>>> develop +
20231003.1432 | +disable strategies when no parking provided 1434 | +Versioned | +SQL | +V20231003.1432__disable_strategies_when_no_parking_provided_1434.sql | +<<<<<<< HEAD +00:00.162s | +======= +00:00.149s | +>>>>>>> develop +
20231102.0946 | +modify project snpshot sproc 1437 | +Versioned | +SQL | +V20231102.0946__modify_project_snpshot_sproc_1437.sql | +<<<<<<< HEAD +00:00.071s | +======= +00:00.075s | +>>>>>>> develop +
20231120.0924 | +rename publiccomment to feedback 670 | +Versioned | +SQL | +V20231120.0924__rename_publiccomment_to_feedback_670.sql | +<<<<<<< HEAD +00:03.168s | +======= +00:03.417s | +>>>>>>> develop +
20231121.1647 | +disable car share parking when no parking provided 1434 | +Versioned | +SQL | +V20231121.1647__disable_car_share_parking_when_no_parking_provided_1434.sql | +<<<<<<< HEAD +00:00.088s | +======= +00:00.086s | +>>>>>>> develop +
20240104.1705 | +add-project-rename-sproc | +Versioned | +SQL | +V20240104.1705__add-project-rename-sproc.sql | +<<<<<<< HEAD +00:00.070s | +======= +00:00.078s | +>>>>>>> develop +
20240104.1714 | +add about table to db 1531 | +Versioned | +SQL | +V20240104.1714__add_about_table_to_db_1531.sql | +<<<<<<< HEAD +00:00.074s | +|
20240203.0923 | +add config table and sprocs 1502 | +Versioned | +SQL | +V20240203.0923__add_config_table_and_sprocs_1502.sql | +00:00.206s | +======= +00:00.077s | +>>>>>>> develop +
Change reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Drift reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Dry Run is not included in your current Flyway license. Upgrade to Flyway Teams or Enterprise to gain access.
+No code analysis report available yet
+Version | +Description | +Category | +Type | +Filepath | +ExecutionTime | +
---|---|---|---|---|---|
20240204.2230 | +repopulate faqcategory table 1280 | +Versioned | +SQL | +V20240204.2230__repopulate_faqcategory_table_1280.sql | +00:00.316s | +
Change reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Drift reporting is not included in your current Flyway license. Upgrade to Flyway Enterprise to gain access.
+Dry Run is not included in your current Flyway license. Upgrade to Flyway Teams or Enterprise to gain access.
+