diff --git a/package.json b/package.json index 3de72964..48fafa23 100644 --- a/package.json +++ b/package.json @@ -102,6 +102,7 @@ "start-server-and-test": "^1.14.0", "storybook": "^7.3.2", "style-loader": "^3.3.1", + "suppress-eslint-errors": "^3.0.1", "terser-webpack-plugin": "^5.2.4", "url-loader": "^4.1.1", "webpack": "^5.61.0", diff --git a/src/components/atoms/AccordionBody/AccordionBody.js b/src/components/atoms/AccordionBody/AccordionBody.js index 3d69cec2..2d89122e 100644 --- a/src/components/atoms/AccordionBody/AccordionBody.js +++ b/src/components/atoms/AccordionBody/AccordionBody.js @@ -16,12 +16,9 @@ export default class AccordionBody extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.accordionBody = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.accordionBody.append(node); }); @@ -42,16 +39,15 @@ export default class AccordionBody extends HTMLElement { connectedCallback() { // Nav attributes // TODO: Refactor attribute and class handling. - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let accordionBodyClasses = ['accordion-body']; + + const extraClasses = this.getAttribute('data-extra-classes'); + + const accordionBodyClasses = ['accordion-body']; if (this.getAttribute('data-li') !== null) { accordionBodyClasses.push('data-li'); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? accordionBodyClasses.push(extraClasses) diff --git a/src/components/atoms/AccordionItem/AccordionItem.js b/src/components/atoms/AccordionItem/AccordionItem.js index 460e29e5..c8a28f65 100644 --- a/src/components/atoms/AccordionItem/AccordionItem.js +++ b/src/components/atoms/AccordionItem/AccordionItem.js @@ -22,9 +22,7 @@ export default class AccordionItem extends HTMLElement { this.accordionHeader = document.createElement('div'); this.accordionBody = document.createElement('div'); this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = ev.target.assignedElements(); + const tempElements = ev.target.assignedElements(); tempElements.forEach((node) => { // TODO: Refactor attribute and class handling. node.setAttribute( @@ -33,12 +31,14 @@ export default class AccordionItem extends HTMLElement { 'data-index', )}`, ); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-expanded') == 'true' ? node.setAttribute('data-expanded', true) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.tagName == 'COD-ACCORDION-HEADER') { if (this.getAttribute('data-li') !== null) { @@ -75,16 +75,16 @@ export default class AccordionItem extends HTMLElement { this.accordionBody .querySelector('cod-accordion-body') .setAttribute('data-expanded', newValue); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.accordionBody.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + + const tempClasses = this.accordionBody.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'show' ? tempClasses.push(popValue) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue == 'true') { tempClasses.push('show'); @@ -95,20 +95,17 @@ export default class AccordionItem extends HTMLElement { connectedCallback() { // Nav attributes // TODO: Refactor attribute and class handling. - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let parentID = this.getAttribute('data-parent-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let index = this.getAttribute('data-index'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let expanded = this.getAttribute('data-expanded'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let accordionHeaderClasses = ['accordion-header']; + + const parentID = this.getAttribute('data-parent-id'); + + const index = this.getAttribute('data-index'); + + const expanded = this.getAttribute('data-expanded'); + + const accordionHeaderClasses = ['accordion-header']; let accordionBodyClasses = ['accordion-collapse collapse']; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq expanded == 'true' ? accordionBodyClasses.push('show') : 0; if (this.getAttribute('data-li') !== null) { @@ -157,7 +154,7 @@ export default class AccordionItem extends HTMLElement { } _onClick(e) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (e.target.getAttribute('data-expanded') == 'true') { this.getRootNode().host.setAttribute('data-expanded', 'false'); diff --git a/src/components/atoms/Alert/Alert.js b/src/components/atoms/Alert/Alert.js index ee244903..bc9d3a0d 100644 --- a/src/components/atoms/Alert/Alert.js +++ b/src/components/atoms/Alert/Alert.js @@ -19,16 +19,11 @@ export default class Alert extends HTMLElement { const alertContent = document.createElement('div'); alertContent.id = 'alert-content'; this.alert.appendChild(alertContent); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.alert.querySelector('#alert-content').append(node); @@ -47,35 +42,29 @@ export default class Alert extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(alertStyles); // alert attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let icon = this.getAttribute('data-icon'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let iconOrder = this.getAttribute('data-icon-order'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let iconSize = this.getAttribute('data-icon-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const icon = this.getAttribute('data-icon'); + + const iconOrder = this.getAttribute('data-icon-order'); + + const iconSize = this.getAttribute('data-icon-size'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const extraClasses = this.getAttribute('data-extra-classes'); this.alert.role = 'alert'; let iconClass = ''; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (icon != undefined && icon != null) { this.alert.querySelector('#alert-content').className = 'col'; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let activeIcon = document.createElement('cod-icon'); + + const activeIcon = document.createElement('cod-icon'); activeIcon.setAttribute('data-icon', icon); activeIcon.setAttribute('data-size', iconSize); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let iconContainer = document.createElement('div'); + + const iconContainer = document.createElement('div'); iconContainer.appendChild(activeIcon); iconClass = 'd-flex'; switch (iconOrder) { diff --git a/src/components/atoms/Badge/Badge.js b/src/components/atoms/Badge/Badge.js index 7eec5537..2b167427 100644 --- a/src/components/atoms/Badge/Badge.js +++ b/src/components/atoms/Badge/Badge.js @@ -6,9 +6,7 @@ export default class Badge extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { @@ -22,30 +20,26 @@ export default class Badge extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(badgeStyles); // badge attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tag = this.getAttribute('data-tag'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let text = this.getAttribute('data-text'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let hiddenText = this.getAttribute('data-hidden-text'); + + const tag = this.getAttribute('data-tag'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const text = this.getAttribute('data-text'); + + const hiddenText = this.getAttribute('data-hidden-text'); let pill = this.getAttribute('data-pill'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let url = this.getAttribute('data-url'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const url = this.getAttribute('data-url'); + + const extraClasses = this.getAttribute('data-extra-classes'); let badge = null; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq pill == 'true' ? (pill = 'rounded-pill') : (pill = ''); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (url != undefined || url != null) { badge = document.createElement('a'); @@ -54,7 +48,8 @@ export default class Badge extends HTMLElement { badge = document.createElement(tag); } badge.innerText = text; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (hiddenText != undefined || hiddenText != null) { const hiddenBadge = document.createElement('span'); diff --git a/src/components/atoms/Breadcrumb/Breadcrumb.js b/src/components/atoms/Breadcrumb/Breadcrumb.js index e4c9824f..a730b5df 100644 --- a/src/components/atoms/Breadcrumb/Breadcrumb.js +++ b/src/components/atoms/Breadcrumb/Breadcrumb.js @@ -21,22 +21,15 @@ export default class Container extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); this.nav = shadow.querySelector('nav'); this.breadcrumb = shadow.querySelector('ol'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + const nodeClasses = node.className.split(' '); if (nodeClasses.includes('no-wc')) { node.remove(); } else { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let crumb = this.querySelector('li'); + const crumb = this.querySelector('li'); crumb && this.breadcrumb.append(crumb); } }); @@ -54,18 +47,18 @@ export default class Container extends HTMLElement { connectedCallback() { // Breadcrumb attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let noDivider = this.getAttribute('data-no-divider'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let svg = this.getAttribute('data-svg-divider'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const noDivider = this.getAttribute('data-no-divider'); + + const svg = this.getAttribute('data-svg-divider'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (noDivider == 'true') { this.nav.style.cssText = "--bs-breadcrumb-divider: '';"; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (svg != undefined || svg != null) { this.nav.style.cssText = `--bs-breadcrumb-divider: url(${svg});`; diff --git a/src/components/atoms/CardBody/CardBody.js b/src/components/atoms/CardBody/CardBody.js index 7c9446a1..4a240090 100644 --- a/src/components/atoms/CardBody/CardBody.js +++ b/src/components/atoms/CardBody/CardBody.js @@ -16,12 +16,9 @@ export default class CardBody extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.cardBody = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.cardBody.append(node); }); diff --git a/src/components/atoms/CardFooter/CardFooter.js b/src/components/atoms/CardFooter/CardFooter.js index ec69a457..5c6a477d 100644 --- a/src/components/atoms/CardFooter/CardFooter.js +++ b/src/components/atoms/CardFooter/CardFooter.js @@ -1,6 +1,6 @@ -import styles from '!!raw-loader!./CardFooter.css'; -import varStyles from '!!raw-loader!../../../shared/variables.css'; import bootstrapStyles from '!!raw-loader!../../../shared/themed-bootstrap.css'; +import varStyles from '!!raw-loader!../../../shared/variables.css'; +import styles from '!!raw-loader!./CardFooter.css'; const template = document.createElement('template'); @@ -16,12 +16,9 @@ export default class CardFooter extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.cardFooter = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.cardFooter.append(node); }); diff --git a/src/components/atoms/CardHeader/CardHeader.js b/src/components/atoms/CardHeader/CardHeader.js index 073dc3aa..23ec1f27 100644 --- a/src/components/atoms/CardHeader/CardHeader.js +++ b/src/components/atoms/CardHeader/CardHeader.js @@ -16,12 +16,9 @@ export default class CardHeader extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.cardHeader = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.cardHeader.append(node); }); diff --git a/src/components/atoms/CardOverlay/CardOverlay.js b/src/components/atoms/CardOverlay/CardOverlay.js index 96b046d1..641d4d2e 100644 --- a/src/components/atoms/CardOverlay/CardOverlay.js +++ b/src/components/atoms/CardOverlay/CardOverlay.js @@ -16,12 +16,9 @@ export default class CardOverlay extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.cardOverlay = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.cardOverlay.append(node); }); diff --git a/src/components/atoms/CarouselCaption/CarouselCaption.js b/src/components/atoms/CarouselCaption/CarouselCaption.js index d9f8d81a..316fadb0 100644 --- a/src/components/atoms/CarouselCaption/CarouselCaption.js +++ b/src/components/atoms/CarouselCaption/CarouselCaption.js @@ -16,12 +16,9 @@ export default class CarouselCaption extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.carouselCaption = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.carouselCaption.append(node); }); @@ -41,13 +38,12 @@ export default class CarouselCaption extends HTMLElement { connectedCallback() { // Modal attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let carouselCaptionClasses = ['carousel-caption d-none d-md-block']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const extraClasses = this.getAttribute('data-extra-classes'); + + const carouselCaptionClasses = ['carousel-caption d-none d-md-block']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? carouselCaptionClasses.push(extraClasses) diff --git a/src/components/atoms/CarouselItem/CarouselItem.js b/src/components/atoms/CarouselItem/CarouselItem.js index b4245a4d..53620af4 100644 --- a/src/components/atoms/CarouselItem/CarouselItem.js +++ b/src/components/atoms/CarouselItem/CarouselItem.js @@ -16,12 +16,9 @@ export default class CarouselItem extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.carouselItem = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.carouselItem.append(node); }); diff --git a/src/components/atoms/Container/Container.js b/src/components/atoms/Container/Container.js index 0f7d6092..3f1a001a 100644 --- a/src/components/atoms/Container/Container.js +++ b/src/components/atoms/Container/Container.js @@ -16,12 +16,9 @@ export default class Container extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.container = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.container.append(node); }); @@ -39,18 +36,14 @@ export default class Container extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(containerStyles); // container attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let type = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let text = this.getAttribute('data-text'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const type = this.getAttribute('data-type'); + + const text = this.getAttribute('data-text'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const extraClasses = this.getAttribute('data-extra-classes'); this.container.className = [ type, `${backgroundColor || ''}`, diff --git a/src/components/atoms/DropdownMenu/DropdownMenu.js b/src/components/atoms/DropdownMenu/DropdownMenu.js index 6ca43868..01acecc0 100644 --- a/src/components/atoms/DropdownMenu/DropdownMenu.js +++ b/src/components/atoms/DropdownMenu/DropdownMenu.js @@ -20,12 +20,9 @@ export default class DropdownMenu extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.dropdownMenu = document.createElement('ul'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.dropdownMenu.append(node); }); @@ -44,22 +41,15 @@ export default class DropdownMenu extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-console - console.log(newValue); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.dropdownMenu.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.dropdownMenu.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'show' ? tempClasses.push(popValue) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-console - console.log(tempClasses); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue == 'true') { tempClasses.push('show'); @@ -69,27 +59,26 @@ export default class DropdownMenu extends HTMLElement { connectedCallback() { // badge attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let darkMode = this.getAttribute('data-dark-mode'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let alignment = this.getAttribute('data-alignment'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let show = this.getAttribute('data-show'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let classList = ['dropdown-menu']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const darkMode = this.getAttribute('data-dark-mode'); + + const alignment = this.getAttribute('data-alignment'); + + const show = this.getAttribute('data-show'); + + const classList = ['dropdown-menu']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq darkMode == 'true' ? classList.push('dropdown-menu-dark') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq alignment != undefined && alignment != null ? classList.push(`dropdown-menu-${alignment}`) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq show == 'true' ? classList.push('show') : 0; this.dropdownMenu.className = classList.join(' '); diff --git a/src/components/atoms/FormCheck/FormCheck.js b/src/components/atoms/FormCheck/FormCheck.js index 5ae53fdf..80153e64 100644 --- a/src/components/atoms/FormCheck/FormCheck.js +++ b/src/components/atoms/FormCheck/FormCheck.js @@ -12,9 +12,7 @@ export default class FormCheck extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); this.internals = this.attachInternals(); this.container = document.createElement('div'); this.formCheck = document.createElement('input'); @@ -24,13 +22,11 @@ export default class FormCheck extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.formCheck.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.formCheck.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'is-invalid' ? tempClasses.push(popValue) : 0; @@ -85,55 +81,45 @@ export default class FormCheck extends HTMLElement { connectedCallback() { // Checkbox/Radio attributes setup - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let dataType = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let value = this.getAttribute('data-value'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let checkName = this.getAttribute('data-name'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let required = this.getAttribute('data-required'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let checked = this.getAttribute('data-checked'); + + const dataType = this.getAttribute('data-type'); + + const id = this.getAttribute('data-id'); + + const value = this.getAttribute('data-value'); + + const checkName = this.getAttribute('data-name'); + + const disabled = this.getAttribute('data-disabled'); + + const required = this.getAttribute('data-required'); + + const checked = this.getAttribute('data-checked'); let mode = this.getAttribute('data-mode'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let noLabel = this.getAttribute('data-nolabel'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let labelTxt = this.getAttribute('data-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btnColor = this.getAttribute('data-btn-color'); + + const noLabel = this.getAttribute('data-nolabel'); + + const labelTxt = this.getAttribute('data-label'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const btnColor = this.getAttribute('data-btn-color'); // Set formcheck this.formCheck.id = id; this.formCheck.type = dataType; this.formCheck.value = value; this.formCheck.name = checkName; this.formCheck.setAttribute('autocomplete', 'off'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (required == 'true') { this.formCheck.setAttribute('required', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (checked == 'true') { this.formCheck.checked = true; @@ -141,17 +127,20 @@ export default class FormCheck extends HTMLElement { } else { this.formCheck.setAttribute('aria-checked', 'false'); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { this.formCheck.setAttribute('disabled', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (mode == 'switch') { this.formCheck.setAttribute('role', mode); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (mode == 'btn' || mode == 'btn-outline') { this.formCheck.className = 'btn-check'; @@ -182,16 +171,17 @@ export default class FormCheck extends HTMLElement { this.container.appendChild(this.formCheck); // Adding label to check/radio - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (noLabel != 'true') { const checkLabel = document.createElement('label'); checkLabel.setAttribute('for', id); checkLabel.innerText = labelTxt; if ( - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq - this.getAttribute('data-mode') == 'btn' || // TODO: See CityOfDetroit/detroitmi#1099 + this.getAttribute('data-mode') == 'btn' || // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-mode') == 'btn-outline' ) { @@ -264,9 +254,8 @@ export default class FormCheck extends HTMLElement { // if the input is invalid, show the correct error if (!validState.valid) { // loop through the error reasons - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - for (let state in validState) { + + for (const state in validState) { // get the name of the data attribute that holds the //error message const attr = `data-${state.toString()}`; diff --git a/src/components/atoms/FormControl/FormControl.js b/src/components/atoms/FormControl/FormControl.js index 4bf828d2..fa8fef71 100644 --- a/src/components/atoms/FormControl/FormControl.js +++ b/src/components/atoms/FormControl/FormControl.js @@ -12,9 +12,7 @@ export default class FormControl extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); this.internals = this.attachInternals(); this.formControl = null; this.invalid = false; @@ -22,21 +20,16 @@ export default class FormControl extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.formControl.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.formControl.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'is-invalid' ? tempClasses.push(popValue) : 0; switch (newValue) { case 'true': - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-console - console.log('invalid input'); tempClasses.push('is-invalid'); this.formControl.className = tempClasses.join(' '); break; @@ -52,101 +45,96 @@ export default class FormControl extends HTMLElement { connectedCallback() { // progress attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let inputType = this.getAttribute('data-tag'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let dataType = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let minlength = this.getAttribute('data-minlength'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let maxlength = this.getAttribute('data-maxlength'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let pattern = this.getAttribute('data-pattern'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let placeholderTxt = this.getAttribute('data-placeholder-txt'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let readOnly = this.getAttribute('data-read-only'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let plainText = this.getAttribute('data-plain-txt'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let required = this.getAttribute('data-required'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let rows = this.getAttribute('data-rows'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let size = this.getAttribute('data-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let value = this.getAttribute('data-value'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); + + const inputType = this.getAttribute('data-tag'); + + const dataType = this.getAttribute('data-type'); + + const id = this.getAttribute('data-id'); + + const minlength = this.getAttribute('data-minlength'); + + const maxlength = this.getAttribute('data-maxlength'); + + const pattern = this.getAttribute('data-pattern'); + + const placeholderTxt = this.getAttribute('data-placeholder-txt'); + + const readOnly = this.getAttribute('data-read-only'); + + const disabled = this.getAttribute('data-disabled'); + + const plainText = this.getAttribute('data-plain-txt'); + + const required = this.getAttribute('data-required'); + + const rows = this.getAttribute('data-rows'); + + const size = this.getAttribute('data-size'); + + const value = this.getAttribute('data-value'); + + const backgroundColor = this.getAttribute('data-background-color'); const formControl = document.createElement(inputType); formControl.id = id; formControl.placeholder = placeholderTxt; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (required == 'true') { formControl.setAttribute('required', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (inputType != 'textarea') { formControl.type = dataType; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (minlength != undefined && minlength != null) { formControl.setAttribute('minlength', minlength); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (maxlength != undefined && maxlength != null) { formControl.setAttribute('maxlength', maxlength); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (pattern != undefined && pattern != null) { formControl.setAttribute('pattern', pattern); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (rows != undefined && rows != null) { formControl.setAttribute('rows', rows); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (value != undefined && value != null) { formControl.value = value; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (readOnly == 'true') { formControl.setAttribute('readonly', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { formControl.setAttribute('disabled', true); } let colorPicker; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq dataType == 'color' ? (colorPicker = dataType) : (colorPicker = ''); formControl.className = [ @@ -230,9 +218,8 @@ export default class FormControl extends HTMLElement { // if the input is invalid, show the correct error if (!validState.valid) { // loop through the error reasons - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - for (let state in validState) { + + for (const state in validState) { // get the name of the data attribute that holds the //error message const attr = `data-${state.toString()}`; diff --git a/src/components/atoms/FormLabel/FormLabel.js b/src/components/atoms/FormLabel/FormLabel.js index 2afa213f..21eba8b1 100644 --- a/src/components/atoms/FormLabel/FormLabel.js +++ b/src/components/atoms/FormLabel/FormLabel.js @@ -6,35 +6,31 @@ export default class FormLabel extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { // progress attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let inputID = this.getAttribute('data-input-id'); + + const inputID = this.getAttribute('data-input-id'); let hidden = this.getAttribute('data-hidden'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let textColor = this.getAttribute('data-color'); + + const textColor = this.getAttribute('data-color'); let required = this.getAttribute('data-required'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let text = this.getAttribute('data-text'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const text = this.getAttribute('data-text'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (hidden == 'true') { hidden = 'visually-hidden'; } else { hidden = ''; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (required == 'true') { required = 'required-field'; diff --git a/src/components/atoms/FormSelect/FormSelect.js b/src/components/atoms/FormSelect/FormSelect.js index ee2a3751..7722410a 100644 --- a/src/components/atoms/FormSelect/FormSelect.js +++ b/src/components/atoms/FormSelect/FormSelect.js @@ -25,24 +25,19 @@ export default class FormSelect extends HTMLElement { this.internals = this.attachInternals(); // Create select and move options from slot to select this.select = shadow.querySelector('select'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let node = this.querySelector('option'); + + shadow.addEventListener('slotchange', () => { + const node = this.querySelector('option'); node && this.select.append(node); }); } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.select.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.select.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'is-invalid' ? tempClasses.push(popValue) : 0; @@ -73,30 +68,22 @@ export default class FormSelect extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(formSelectStyles); // progress attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let size = this.getAttribute('data-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let multiple = this.getAttribute('data-multiple'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let displayMultiple = this.getAttribute('data-display-multiple'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let required = this.getAttribute('data-required'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let ariaLabel = this.getAttribute('data-aria-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const id = this.getAttribute('data-id'); + + const size = this.getAttribute('data-size'); + + const multiple = this.getAttribute('data-multiple'); + + const displayMultiple = this.getAttribute('data-display-multiple'); + + const disabled = this.getAttribute('data-disabled'); + + const required = this.getAttribute('data-required'); + + const ariaLabel = this.getAttribute('data-aria-label'); + + const extraClasses = this.getAttribute('data-extra-classes'); this.select.addEventListener('change', (e) => { // we also want to dispatch a `change` event from @@ -125,22 +112,25 @@ export default class FormSelect extends HTMLElement { this.setAttribute('tabindex', '0'); } - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (required == 'true') { this.select.setAttribute('required', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { this.select.setAttribute('disabled', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (multiple == 'true') { this.select.setAttribute('multiple', true); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (displayMultiple != undefined && displayMultiple != null) { this.select.setAttribute('size', displayMultiple); @@ -182,9 +172,8 @@ export default class FormSelect extends HTMLElement { // if the input is invalid, show the correct error if (!validState.valid) { // loop through the error reasons - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - for (let state in validState) { + + for (const state in validState) { // get the name of the data attribute that holds the //error message const attr = `data-${state.toString()}`; diff --git a/src/components/atoms/Image/Image.js b/src/components/atoms/Image/Image.js index cbc20064..aa618502 100644 --- a/src/components/atoms/Image/Image.js +++ b/src/components/atoms/Image/Image.js @@ -18,12 +18,9 @@ export default class Image extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); // Create select and move options from slot to select this.picture = shadow.querySelector('picture'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.picture.append(node); }); diff --git a/src/components/atoms/ListGroupItem/ListGroupItem.js b/src/components/atoms/ListGroupItem/ListGroupItem.js index 3987cc90..81d87bc1 100644 --- a/src/components/atoms/ListGroupItem/ListGroupItem.js +++ b/src/components/atoms/ListGroupItem/ListGroupItem.js @@ -36,7 +36,7 @@ export default class ListGroupItem extends HTMLElement { attributeChangedCallback(name, oldValue, newValue) { switch (name) { case 'data-order': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue != null) { this.listGroupItem.className = `${this.listGroupItem.className} ${newValue}`; @@ -44,7 +44,7 @@ export default class ListGroupItem extends HTMLElement { break; case 'data-parent-classes': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue != null) { this.listGroupItem.className = `${this.listGroupItem.className} ${newValue}`; @@ -52,16 +52,12 @@ export default class ListGroupItem extends HTMLElement { break; case 'data-order-index': - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-console - console.log(newValue); - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue != null) { this.listGroupItem.innerHTML = `${newValue}. ${this.listGroupItem.innerHTML}`; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.listGroupItem.append(node); }); @@ -75,45 +71,45 @@ export default class ListGroupItem extends HTMLElement { connectedCallback() { // badge attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tag = this.getAttribute('data-tag'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); + + const tag = this.getAttribute('data-tag'); + + const backgroundColor = this.getAttribute('data-background-color'); let current = this.getAttribute('data-current'); let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let text = this.getAttribute('data-text'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let url = this.getAttribute('data-url'); + + const text = this.getAttribute('data-text'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const url = this.getAttribute('data-url'); this.listGroupItem = document.createElement(tag); let actionItem = ''; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq tag == 'a' || tag == 'button' ? (actionItem = 'list-group-item-action') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (text != undefined || text != null) { this.listGroupItem.innerText = text; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (url != undefined || url != null) { this.listGroupItem.href = url; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (current == 'true') { this.listGroupItem.setAttribute('aria-current', 'true'); current = 'active'; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { this.listGroupItem.setAttribute('aria-disabled', 'true'); @@ -129,12 +125,8 @@ export default class ListGroupItem extends HTMLElement { ].join(' '); if (!this.shadowRoot.querySelector(tag)) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.listGroupItem.append(node); }); diff --git a/src/components/atoms/Loader/Loader.js b/src/components/atoms/Loader/Loader.js index 57c80987..9b459e72 100644 --- a/src/components/atoms/Loader/Loader.js +++ b/src/components/atoms/Loader/Loader.js @@ -5,9 +5,7 @@ export default class Loader extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { @@ -19,9 +17,8 @@ export default class Loader extends HTMLElement { // Loader attributes this.shadowRoot.appendChild(loaderStyles); const loader = document.createElement('article'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let color = this.getAttribute('data-color'); + + const color = this.getAttribute('data-color'); loader.className = ['cod-loader', `cod-loader--${color || 'color-1'}`].join( ' ', ); diff --git a/src/components/atoms/ModalBody/ModalBody.js b/src/components/atoms/ModalBody/ModalBody.js index 675fd924..6e7e601a 100644 --- a/src/components/atoms/ModalBody/ModalBody.js +++ b/src/components/atoms/ModalBody/ModalBody.js @@ -16,12 +16,9 @@ export default class ModalBody extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.body = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.body.append(node); }); @@ -41,13 +38,12 @@ export default class ModalBody extends HTMLElement { connectedCallback() { // OffcanvasBody attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let bodyClasses = ['modal-body']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const extraClasses = this.getAttribute('data-extra-classes'); + + const bodyClasses = ['modal-body']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? bodyClasses.push(extraClasses) diff --git a/src/components/atoms/ModalFooter/ModalFooter.js b/src/components/atoms/ModalFooter/ModalFooter.js index 5e60b09a..113b5c2a 100644 --- a/src/components/atoms/ModalFooter/ModalFooter.js +++ b/src/components/atoms/ModalFooter/ModalFooter.js @@ -17,12 +17,9 @@ export default class ModalFooter extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); this.modalFooter = document.createElement('div'); this.closeBtn = document.createElement('cod-button'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.modalFooter.appendChild(node); }); @@ -43,25 +40,24 @@ export default class ModalFooter extends HTMLElement { connectedCallback() { // Nav attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btnExtraClasses = this.getAttribute('data-button-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let modalFooterClasses = ['modal-footer']; + + const btnExtraClasses = this.getAttribute('data-button-extra-classes'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const modalFooterClasses = ['modal-footer']; this.closeBtn.setAttribute('data-img-alt', ''); this.closeBtn.setAttribute('data-icon', ''); this.closeBtn.setAttribute('data-label', 'Close'); this.closeBtn.setAttribute('data-bs-dismiss', 'modal'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? modalFooterClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq btnExtraClasses != undefined && btnExtraClasses != null ? this.closeBtn.setAttribute('data-extra-classes', btnExtraClasses) @@ -77,9 +73,7 @@ export default class ModalFooter extends HTMLElement { this.removeEventListener('click', this._onClick.bind(this)); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - _onClick(e) { + _onClick() { this.getRootNode() .host.getRootNode() .host.setAttribute('data-show', 'false'); diff --git a/src/components/atoms/ModalHeader/ModalHeader.js b/src/components/atoms/ModalHeader/ModalHeader.js index 113c4098..41e49b61 100644 --- a/src/components/atoms/ModalHeader/ModalHeader.js +++ b/src/components/atoms/ModalHeader/ModalHeader.js @@ -18,12 +18,9 @@ export default class ModalHeader extends HTMLElement { this.modalHeader = document.createElement('div'); this.modalTitle = document.createElement('div'); this.closeBtn = document.createElement('cod-button'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { this.modalTitle.appendChild(node); }); @@ -45,30 +42,28 @@ export default class ModalHeader extends HTMLElement { connectedCallback() { // Nav attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let parentID = this.getAttribute('data-parent-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btnDark = this.getAttribute('data-button-dark'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let modalHeaderClasses = ['modal-header']; + + const parentID = this.getAttribute('data-parent-id'); + + const btnDark = this.getAttribute('data-button-dark'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const modalHeaderClasses = ['modal-header']; this.modalTitle.className = 'modal-title'; this.modalTitle.id = `${parentID}-label`; this.closeBtn.setAttribute('data-img-alt', ''); this.closeBtn.setAttribute('data-icon', ''); this.closeBtn.setAttribute('data-close', 'true'); this.closeBtn.setAttribute('data-bs-dismiss', 'modal'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? modalHeaderClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq btnDark == 'true' ? this.closeBtn.setAttribute('data-extra-classes', 'btn-close-white') @@ -84,9 +79,7 @@ export default class ModalHeader extends HTMLElement { this.removeEventListener('click', this._onClick.bind(this)); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - _onClick(e) { + _onClick() { this.getRootNode() .host.getRootNode() .host.setAttribute('data-show', 'false'); diff --git a/src/components/atoms/PaginationItem/PaginationItem.js b/src/components/atoms/PaginationItem/PaginationItem.js index 9d29769a..13409e99 100644 --- a/src/components/atoms/PaginationItem/PaginationItem.js +++ b/src/components/atoms/PaginationItem/PaginationItem.js @@ -23,36 +23,29 @@ export default class PaginationItem extends HTMLElement { connectedCallback() { // Nav attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let url = this.getAttribute('data-url'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let special = this.getAttribute('data-special'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let label = this.getAttribute('data-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let text = this.getAttribute('data-text'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let active = this.getAttribute('data-active'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let paginationItemClasses = ['page-link']; + + const url = this.getAttribute('data-url'); + + const special = this.getAttribute('data-special'); + + const label = this.getAttribute('data-label'); + + const text = this.getAttribute('data-text'); + + const disabled = this.getAttribute('data-disabled'); + + const active = this.getAttribute('data-active'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const paginationItemClasses = ['page-link']; let paginationItem = null; let tag = null; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (url != undefined && url != null) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { paginationItemClasses.push('disabled'); @@ -60,9 +53,8 @@ export default class PaginationItem extends HTMLElement { tag = 'span'; } else { paginationItem = document.createElement('a'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let cleanURL = encodeURI(url); + + const cleanURL = encodeURI(url); paginationItem.href = decodeURI(cleanURL); tag = 'a'; } @@ -70,23 +62,28 @@ export default class PaginationItem extends HTMLElement { paginationItem = document.createElement('span'); tag = 'span'; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq active == 'true' ? paginationItemClasses.push('active') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? paginationItemClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq special != undefined && special != null ? this.setSpecialItem(special, paginationItem) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq text != undefined && text != null ? (paginationItem.innerText = text) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq label != undefined && label != null ? paginationItem.setAttribute('aria-label', label) diff --git a/src/components/atoms/Progress/Progress.js b/src/components/atoms/Progress/Progress.js index 72b7f9a4..28c661e8 100644 --- a/src/components/atoms/Progress/Progress.js +++ b/src/components/atoms/Progress/Progress.js @@ -6,9 +6,7 @@ export default class Progress extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { @@ -23,29 +21,23 @@ export default class Progress extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(progressStyles); // progress attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let striped = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let label = this.getAttribute('data-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let ariaLabel = this.getAttribute('data-aria-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let animated = this.getAttribute('data-animated'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let value = this.getAttribute('data-value'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let stacked = this.getAttribute('data-multi-bars'); + + const striped = this.getAttribute('data-type'); + + const label = this.getAttribute('data-label'); + + const ariaLabel = this.getAttribute('data-aria-label'); + + const animated = this.getAttribute('data-animated'); + + const value = this.getAttribute('data-value'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const stacked = this.getAttribute('data-multi-bars'); const progressContainer = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (stacked == 'undefined' || stacked == 'null') { const bar = document.createElement('div'); @@ -55,7 +47,8 @@ export default class Progress extends HTMLElement { bar.className = 'progress'; const barBody = document.createElement('div'); barBody.style = `width: ${value}%`; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (label != 'undefined' && label != 'null') { barBody.innerText = label; @@ -77,9 +70,7 @@ export default class Progress extends HTMLElement { buildBar(bars, barContainer) { bars.forEach((bar) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempBar = document.createElement('div'); + const tempBar = document.createElement('div'); tempBar.role = 'progressbar'; tempBar.setAttribute('aria-label', bar.ariaLabel); tempBar.setAttribute('aria-valuenow', bar.value); @@ -88,7 +79,8 @@ export default class Progress extends HTMLElement { tempBar.className = 'progress'; const barBody = document.createElement('div'); tempBar.style = `width: ${bar.value}%`; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq bar.label == undefined || bar.label == null ? '' diff --git a/src/components/atoms/Range/Range.js b/src/components/atoms/Range/Range.js index d5eafb9a..791fa510 100644 --- a/src/components/atoms/Range/Range.js +++ b/src/components/atoms/Range/Range.js @@ -6,9 +6,7 @@ export default class Range extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { @@ -22,44 +20,37 @@ export default class Range extends HTMLElement { this.shadowRoot.appendChild(bootStyles); this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(rangeStyles); - // progress attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const, no-unused-vars - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let disabled = this.getAttribute('data-disabled'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let min = this.getAttribute('data-min'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let max = this.getAttribute('data-max'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let step = this.getAttribute('data-step'); + + const disabled = this.getAttribute('data-disabled'); + + const min = this.getAttribute('data-min'); + + const max = this.getAttribute('data-max'); + + const step = this.getAttribute('data-step'); const range = document.createElement('input'); range.type = 'range'; range.className = 'form-range'; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (disabled == 'true') { range.disabled = true; } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-console - console.log(min); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (min != undefined || min != null) { range.setAttribute('min', min); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (max != undefined || max != null) { range.setAttribute('max', max); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (step != undefined || step != null) { range.setAttribute('step', step); diff --git a/src/components/atoms/Spinner/Spinner.js b/src/components/atoms/Spinner/Spinner.js index 303bdc5d..6d5ce379 100644 --- a/src/components/atoms/Spinner/Spinner.js +++ b/src/components/atoms/Spinner/Spinner.js @@ -6,9 +6,7 @@ export default class Image extends HTMLElement { // Always call super first in constructor super(); // Create a shadow root - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - const shadow = this.attachShadow({ mode: 'open' }); + this.attachShadow({ mode: 'open' }); } connectedCallback() { @@ -23,20 +21,17 @@ export default class Image extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(spinnerStyles); // image attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let spinnerType = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let spinnerSize = this.getAttribute('data-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let displayType = this.getAttribute('data-display-type'); + + const spinnerType = this.getAttribute('data-type'); + + const spinnerSize = this.getAttribute('data-size'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const displayType = this.getAttribute('data-display-type'); let spinnerSizeClass; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (spinnerSize == 'sm') { spinnerSizeClass = `spinner-${spinnerType}-${spinnerSize}`; @@ -44,7 +39,8 @@ export default class Image extends HTMLElement { spinnerSizeClass = ''; } let spinner; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq displayType == 'inline' ? (spinner = document.createElement('span')) @@ -55,9 +51,8 @@ export default class Image extends HTMLElement { `text-${backgroundColor || ''}`, ].join(' '); spinner.role = 'status'; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let pLoading = document.createElement('span'); + + const pLoading = document.createElement('span'); pLoading.innerText = 'Loading...'; pLoading.className = 'visually-hidden'; spinner.appendChild(pLoading); diff --git a/src/components/atoms/TableBody/TableBody.js b/src/components/atoms/TableBody/TableBody.js index 4a79d432..65cd76de 100644 --- a/src/components/atoms/TableBody/TableBody.js +++ b/src/components/atoms/TableBody/TableBody.js @@ -28,34 +28,35 @@ class TableBody extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.tableBody = document.createElement('tbody'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node, index) => { if (index === 0) { node.setIsFirst(); } else if (index % 2 !== 0) { node.setIsOdd(); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-row') == 'true' && index % 2 == 0 ? node.setAttribute('data-striped-row', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-hover') == 'true' ? node.setAttribute('data-hover', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-col') == 'true' ? node.setAttribute('data-striped-col', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-vertical-align') == 'true' ? node.setAttribute('data-vertical-align', 'true') diff --git a/src/components/atoms/TableCell/TableCell.js b/src/components/atoms/TableCell/TableCell.js index ec0e4bf3..529c7fe5 100644 --- a/src/components/atoms/TableCell/TableCell.js +++ b/src/components/atoms/TableCell/TableCell.js @@ -27,8 +27,7 @@ class TableCell extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.tableCell = document.createElement('td'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars + shadow.addEventListener('slotchange', (ev) => { const tempElements = ev.target.assignedNodes(); tempElements.forEach((node) => { @@ -61,19 +60,16 @@ class TableCell extends HTMLElement { connectedCallback() { // TableCell attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let stripedRow = this.getAttribute('data-striped-row'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let stripedCol = this.getAttribute('data-striped-col'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let verticalAlign = this.getAttribute('data-vertical-align'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const stripedRow = this.getAttribute('data-striped-row'); + + const stripedCol = this.getAttribute('data-striped-col'); + + const verticalAlign = this.getAttribute('data-vertical-align'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq verticalAlign != undefined && verticalAlign != null ? this.tableCell.classList.add(verticalAlign) @@ -81,15 +77,18 @@ class TableCell extends HTMLElement { this.getAttribute('data-scrollable') === 'true' ? this.tableCell.classList.add('table-scrollable') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq stripedRow == 'true' ? this.tableCell.classList.add('table-striped') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq stripedCol == 'true' ? this.tableCell.classList.add('table-striped-columns') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? this.tableCell.classList.add(extraClasses) diff --git a/src/components/atoms/TableCellHeader/TableCellHeader.js b/src/components/atoms/TableCellHeader/TableCellHeader.js index 7c13ec9e..e47d0077 100644 --- a/src/components/atoms/TableCellHeader/TableCellHeader.js +++ b/src/components/atoms/TableCellHeader/TableCellHeader.js @@ -27,12 +27,9 @@ class TableCellHeader extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.tableCellHeader = document.createElement('th'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.childNodes); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.childNodes); tempElements.forEach((node) => { this.tableCellHeader.appendChild(node); }); @@ -54,19 +51,16 @@ class TableCellHeader extends HTMLElement { connectedCallback() { // tableCellHeader attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let stripedRow = this.getAttribute('data-striped-row'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let stripedCol = this.getAttribute('data-striped-col'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let verticalAlign = this.getAttribute('data-vertical-align'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const stripedRow = this.getAttribute('data-striped-row'); + + const stripedCol = this.getAttribute('data-striped-col'); + + const verticalAlign = this.getAttribute('data-vertical-align'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq verticalAlign != undefined && verticalAlign != null ? this.tableCellHeader.classList.add(verticalAlign) @@ -74,17 +68,20 @@ class TableCellHeader extends HTMLElement { this.getAttribute('data-scrollable') === 'true' ? this.tableCellHeader.classList.add('table-scrollable') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq stripedRow == 'true' ? this.tableCellHeader.classList.add('table-striped') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq stripedCol == 'true' ? this.tableCellHeader.classList.add('table-striped-columns') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? this.tableCellHeader.classList.add(extraClasses) diff --git a/src/components/atoms/TableHeader/TableHeader.js b/src/components/atoms/TableHeader/TableHeader.js index 09b41dc5..af965295 100644 --- a/src/components/atoms/TableHeader/TableHeader.js +++ b/src/components/atoms/TableHeader/TableHeader.js @@ -29,22 +29,21 @@ class TableHeader extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.tableHeader = document.createElement('thead'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node, index) => { if (index === 0) { node.setIsFirst(); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-col') == 'true' ? node.setAttribute('data-striped-col', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-vertical-align') == 'true' ? node.setAttribute('data-vertical-align', 'true') diff --git a/src/components/atoms/TableRow/TableRow.js b/src/components/atoms/TableRow/TableRow.js index b71d2145..0fbd3dd4 100644 --- a/src/components/atoms/TableRow/TableRow.js +++ b/src/components/atoms/TableRow/TableRow.js @@ -30,24 +30,23 @@ class TableRow extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.tableRow = document.createElement('tr'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node, index) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-row') == 'true' ? node.setAttribute('data-striped-row', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-col') == 'true' && index % 2 != 0 ? node.setAttribute('data-striped-col', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-vertical-align') == 'true' ? node.setAttribute('data-vertical-align', 'true') @@ -77,16 +76,16 @@ class TableRow extends HTMLElement { connectedCallback() { // TableRow attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let hover = this.getAttribute('data-hover'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const extraClasses = this.getAttribute('data-extra-classes'); + + const hover = this.getAttribute('data-hover'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq hover == 'true' ? this.tableRow.classList.add('table-hover') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? this.tableRow.classList.add(extraClasses) diff --git a/src/components/molecules/Accordion/Accordion.js b/src/components/molecules/Accordion/Accordion.js index fd50bae3..d1b33824 100644 --- a/src/components/molecules/Accordion/Accordion.js +++ b/src/components/molecules/Accordion/Accordion.js @@ -17,16 +17,12 @@ export default class Accordion extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); this.accordion = document.createElement('div'); this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = ev.target.assignedElements(); + const tempElements = ev.target.assignedElements(); tempElements.forEach((node, index) => { // TODO: Refactor attribute and class handling for children. switch (node.tagName) { - case 'COD-ACCORDION-ITEM': - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-case-declarations, prefer-const - let accordionItem = document.createElement('div'); + case 'COD-ACCORDION-ITEM': { + const accordionItem = document.createElement('div'); accordionItem.className = 'accordion-item'; node.setAttribute('data-parent-id', this.getAttribute('data-id')); node.setAttribute('data-index', index); @@ -36,15 +32,14 @@ export default class Accordion extends HTMLElement { accordionItem.appendChild(node); this.accordion.append(accordionItem); break; - - default: - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-case-declarations, prefer-const - let nodeClasses = node.className.split(' '); + } + default: { + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.card.appendChild(node); break; + } } }); }); @@ -64,24 +59,22 @@ export default class Accordion extends HTMLElement { connectedCallback() { // Nav attributes // TODO: Refactor attribute and class handling. - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let flush = this.getAttribute('data-flush'); + + const flush = this.getAttribute('data-flush'); const isOrderedList = this.getAttribute('data-ol'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let accordionClasses = ['accordion']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const id = this.getAttribute('data-id'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const accordionClasses = ['accordion']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq flush == 'true' ? accordionClasses.push('accordion-flush') : 0; isOrderedList !== null ? accordionClasses.push('accordion-ol') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? accordionClasses.push(extraClasses) diff --git a/src/components/molecules/ButtonGroup/ButtonGroup.js b/src/components/molecules/ButtonGroup/ButtonGroup.js index a92a0d41..3757f3a2 100644 --- a/src/components/molecules/ButtonGroup/ButtonGroup.js +++ b/src/components/molecules/ButtonGroup/ButtonGroup.js @@ -18,16 +18,11 @@ export default class FormCheckGroup extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.btnGroup = shadow.querySelector('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.btnGroup.append(node); @@ -47,30 +42,30 @@ export default class FormCheckGroup extends HTMLElement { connectedCallback() { // setting up styles - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let type = this.getAttribute('data-type'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let label = this.getAttribute('data-label'); + + const type = this.getAttribute('data-type'); + + const label = this.getAttribute('data-label'); let size = this.getAttribute('data-size'); let vertical = this.getAttribute('data-vertical'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 + + const extraClasses = this.getAttribute('data-extra-classes'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (type == 'group') { this.btnGroup.role = 'group'; } else { this.btnGroup.role = 'toolbar'; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (size != undefined && size != null) { size = `btn-group-${size}`; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (vertical == 'true') { vertical = 'btn-group-vertical'; diff --git a/src/components/molecules/FormCheckGroup/FormCheckGroup.js b/src/components/molecules/FormCheckGroup/FormCheckGroup.js index cb9b9f6c..709edfb3 100644 --- a/src/components/molecules/FormCheckGroup/FormCheckGroup.js +++ b/src/components/molecules/FormCheckGroup/FormCheckGroup.js @@ -27,7 +27,7 @@ export default class FormCheckGroup extends HTMLElement { connectedCallback() { // setting up styles if (!this.hasAttribute('role')) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-type') == 'radio') { this.setAttribute('role', 'radiogroup'); @@ -35,9 +35,8 @@ export default class FormCheckGroup extends HTMLElement { this.setAttribute('role', 'group'); } } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let firstFormCheck = this.checkedFormCheck; + + const firstFormCheck = this.checkedFormCheck; if (firstFormCheck) { this._uncheckAll(); this._checkNode(firstFormCheck); @@ -121,9 +120,7 @@ export default class FormCheckGroup extends HTMLElement { while (next) { if ( next.getAttribute('data-type') === 'radio' || - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-undef - prev.getAttribute('data-type') === 'checkbox' + next.getAttribute('data-type') === 'checkbox' ) { return next; } @@ -133,9 +130,7 @@ export default class FormCheckGroup extends HTMLElement { } _setCheckedToPrevButton() { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let checkedButton = this.checkedFormCheck || this.firstFormCheck; + const checkedButton = this.checkedFormCheck || this.firstFormCheck; if (checkedButton === this.firstFormCheck) { this._setChecked(this.lastFormCheck); } else { @@ -144,9 +139,7 @@ export default class FormCheckGroup extends HTMLElement { } _setCheckedToNextButton() { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let checkedButton = this.checkedRadioButton || this.firstFormCheck; + const checkedButton = this.checkedRadioButton || this.firstFormCheck; if (checkedButton === this.lastFormCheck) { this._setChecked(this.firstFormCheck); } else { @@ -163,9 +156,7 @@ export default class FormCheckGroup extends HTMLElement { _uncheckAll() { const formCheck = this.querySelectorAll('cod-form-check'); for (let i = 0; i < formCheck.length; i++) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btn = formCheck[i]; + const btn = formCheck[i]; btn.setAttribute('data-checked', 'false'); btn.setAttribute('data-required', 'false'); btn.tabIndex = -1; @@ -176,9 +167,7 @@ export default class FormCheckGroup extends HTMLElement { const formCheck = this.querySelectorAll('cod-form-check'); let isValid = false; for (let i = 0; i < formCheck.length; i++) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let checkbox = formCheck[i]; + const checkbox = formCheck[i]; checkbox.formCheck.checked ? (isValid = true) : 0; } isValid ? this._unRequiredAll() : this._requiredAll(); @@ -187,9 +176,7 @@ export default class FormCheckGroup extends HTMLElement { _requiredAll() { const formCheck = this.querySelectorAll('cod-form-check'); for (let i = 0; i < formCheck.length; i++) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btn = formCheck[i]; + const btn = formCheck[i]; btn.setAttribute('data-required', 'true'); } } @@ -197,9 +184,7 @@ export default class FormCheckGroup extends HTMLElement { _unRequiredAll() { const formCheck = this.querySelectorAll('cod-form-check'); for (let i = 0; i < formCheck.length; i++) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let btn = formCheck[i]; + const btn = formCheck[i]; btn.setAttribute('data-required', 'false'); } } @@ -219,7 +204,7 @@ export default class FormCheckGroup extends HTMLElement { this._setChecked(e.target); } if (e.target.getAttribute('data-type') === 'checkbox') { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-required') == 'true') { this._validateRequired(e.target); diff --git a/src/components/molecules/ListGroup/ListGroup.js b/src/components/molecules/ListGroup/ListGroup.js index eab575c4..1a8ac803 100644 --- a/src/components/molecules/ListGroup/ListGroup.js +++ b/src/components/molecules/ListGroup/ListGroup.js @@ -30,23 +30,24 @@ export default class FormCheckGroup extends HTMLElement { connectedCallback() { // setting up styles - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tag = this.getAttribute('data-tag'); + + const tag = this.getAttribute('data-tag'); let flushed = this.getAttribute('data-flushed'); let numbered = this.getAttribute('data-numbered'); let horizontal = this.getAttribute('data-horizontal'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const extraClasses = this.getAttribute('data-extra-classes'); this.listGroup = document.createElement(tag); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq flushed == 'true' ? (flushed = 'list-group-flush') : (flushed = null); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq numbered == 'true' ? (numbered = 'list-group-numbered') : (numbered = null); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq horizontal == 'true' ? (horizontal = 'list-group-horizontal') @@ -60,15 +61,10 @@ export default class FormCheckGroup extends HTMLElement { ].join(' '); if (!this.shadowRoot.querySelector(tag)) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempLength = tempElements.length; + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); + + const tempLength = tempElements.length; tempElements.forEach((node, index) => { let pClasses = null; switch (index) { @@ -97,9 +93,8 @@ export default class FormCheckGroup extends HTMLElement { if (pClasses) { node.setAttribute('data-parent-classes', pClasses); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.listGroup.append(node); diff --git a/src/components/molecules/Pagination/Pagination.js b/src/components/molecules/Pagination/Pagination.js index b8d1e2d0..a14d135c 100644 --- a/src/components/molecules/Pagination/Pagination.js +++ b/src/components/molecules/Pagination/Pagination.js @@ -17,26 +17,22 @@ export default class Pagination extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); this.paginationContainer = document.createElement('nav'); this.pagination = document.createElement('ul'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - this.shadowRoot.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + this.shadowRoot.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node, index) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let paginationItem = document.createElement('li'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let paginationItemClasses = ['page-item']; - // TODO: See CityOfDetroit/detroitmi#1099 + const paginationItem = document.createElement('li'); + + const paginationItemClasses = ['page-item']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.getAttribute('data-active') == 'true') { paginationItemClasses.push('active'); paginationItem.setAttribute('aria-current', 'page'); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.getAttribute('data-disabled') == 'true') { paginationItemClasses.push('disabled'); @@ -45,9 +41,8 @@ export default class Pagination extends HTMLElement { paginationItem.className = paginationItemClasses.join(' '); node.setAttribute('data-index', index); paginationItem.appendChild(node); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.pagination.append(paginationItem); @@ -69,32 +64,30 @@ export default class Pagination extends HTMLElement { connectedCallback() { // Nav attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let label = this.getAttribute('data-label'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let size = this.getAttribute('data-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let paginationClasses = ['pagination']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const label = this.getAttribute('data-label'); + + const id = this.getAttribute('data-id'); + + const size = this.getAttribute('data-size'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const paginationClasses = ['pagination']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq size != undefined && size != null ? paginationClasses.push(`pagination-${size}`) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? paginationClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq id != undefined && id != null ? (this.paginationContainer.id = id) : 0; this.paginationContainer.setAttribute('aria-label', label); diff --git a/src/components/organisms/Carousel/Carousel.js b/src/components/organisms/Carousel/Carousel.js index 4d0c7a8c..5f2f94cd 100644 --- a/src/components/organisms/Carousel/Carousel.js +++ b/src/components/organisms/Carousel/Carousel.js @@ -26,10 +26,11 @@ export default class Carousel extends HTMLElement { this.carouselInner.className = 'carousel-inner'; this.carouselPrev = document.createElement('button'); this.carouselNext = document.createElement('button'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-no-controls') != 'true') { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-external-controls') == 'true') { this.carouselPrev.className = 'carousel-control-prev position-relative'; @@ -44,15 +45,13 @@ export default class Carousel extends HTMLElement { `#${this.getAttribute('data-id')}`, ); this.carouselPrev.setAttribute('data-bs-slide', 'prev'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let prevIcon = document.createElement('span'); + + const prevIcon = document.createElement('span'); prevIcon.className = 'carousel-control-prev-icon'; prevIcon.setAttribute('aria-hidden', 'true'); this.carouselPrev.appendChild(prevIcon); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let prevText = document.createElement('span'); + + const prevText = document.createElement('span'); prevText.className = 'visually-hidden'; prevText.innerText = 'Previous'; this.carouselPrev.appendChild(prevText); @@ -62,15 +61,13 @@ export default class Carousel extends HTMLElement { `#${this.getAttribute('data-id')}`, ); this.carouselNext.setAttribute('data-bs-slide', 'next'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nextIcon = document.createElement('span'); + + const nextIcon = document.createElement('span'); nextIcon.className = 'carousel-control-next-icon'; nextIcon.setAttribute('aria-hidden', 'true'); this.carouselNext.appendChild(nextIcon); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nextText = document.createElement('span'); + + const nextText = document.createElement('span'); nextText.className = 'visually-hidden'; nextText.innerText = 'Next'; this.carouselNext.appendChild(nextText); @@ -85,23 +82,19 @@ export default class Carousel extends HTMLElement { this.carousel.appendChild(this.carouselInner); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); let tempElementsCount = 0; tempElements.forEach((node, index) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.tagName == 'COD-CAROUSEL-ITEM') { tempElementsCount += 1; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempItem = document.createElement('div'); + + const tempItem = document.createElement('div'); tempItem.setAttribute('data-index', index); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.getAttribute('data-active') == 'true') { tempItem.className = 'carousel-item active'; @@ -109,10 +102,11 @@ export default class Carousel extends HTMLElement { } else { tempItem.className = 'carousel-item'; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq node.getAttribute('data-interval') != undefined && - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq node.getAttribute('data-interval') != null ? tempItem.setAttribute( @@ -122,12 +116,11 @@ export default class Carousel extends HTMLElement { : 0; tempItem.appendChild(node); this.carouselInner.appendChild(tempItem); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-indicator') == 'true') { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempIndicator = document.createElement('button'); + const tempIndicator = document.createElement('button'); tempIndicator.type = 'button'; tempIndicator.setAttribute( 'data-bs-target', @@ -135,7 +128,8 @@ export default class Carousel extends HTMLElement { ); tempIndicator.setAttribute('data-bs-slide-to', index); tempIndicator.setAttribute('aria-label', `Slide ${index}`); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.getAttribute('data-active') == 'true') { tempIndicator.className = 'active'; @@ -149,9 +143,8 @@ export default class Carousel extends HTMLElement { tempElementsCount ? this.setAttribute('data-total-items', tempElementsCount) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : 0; }); }); @@ -169,20 +162,18 @@ export default class Carousel extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (oldValue != null) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let oldItem = this.carouselInner.querySelector( + const oldItem = this.carouselInner.querySelector( `[data-index="${oldValue}"`, ); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let newItem = this.carouselInner.querySelector( + + const newItem = this.carouselInner.querySelector( `[data-index="${newValue}"`, ); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-indicator') == 'true') { this.carouselIndicators.querySelector( @@ -192,7 +183,8 @@ export default class Carousel extends HTMLElement { `[data-bs-slide-to="${newValue}"`, ).className = 'active'; } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-direction') == 'next') { oldItem.className = 'carousel-item active carousel-item-start'; @@ -212,53 +204,52 @@ export default class Carousel extends HTMLElement { connectedCallback() { // Modal attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let crossfade = this.getAttribute('data-crossfade'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let autoplay = this.getAttribute('data-autoplay'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let noTouch = this.getAttribute('data-no-touch'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let externalControls = this.getAttribute('data-external-controls'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let carouselClasses = ['carousel slide']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const id = this.getAttribute('data-id'); + + const crossfade = this.getAttribute('data-crossfade'); + + const autoplay = this.getAttribute('data-autoplay'); + + const noTouch = this.getAttribute('data-no-touch'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const externalControls = this.getAttribute('data-external-controls'); + + const carouselClasses = ['carousel slide']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? carouselClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq crossfade == 'true' ? carouselClasses.push('carousel-fade') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq externalControls == 'true' ? carouselClasses.push('d-flex') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq noTouch == 'false' ? this.carousel.setAttribute('data-bs-touch', 'false') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (autoplay != undefined && autoplay != null) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq autoplay == 'true' ? this.carousel.setAttribute('data-bs-ride', autoplay) : this.carousel.setAttribute('data-bs-ride', 'carousel'); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq id != undefined && id != null ? (this.carousel.id = id) : 0; this.carousel.className = carouselClasses.join(' '); @@ -271,16 +262,10 @@ export default class Carousel extends HTMLElement { this.removeEventListener('click', this._onClick.bind(this)); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - _onClick(e) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let activeItem = this.getRootNode().host.getAttribute('data-active-item'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const, no-unused-vars - let totalItems = this.getRootNode().host.getAttribute('data-total-items'); - // TODO: See CityOfDetroit/detroitmi#1099 + _onClick() { + const activeItem = this.getRootNode().host.getAttribute('data-active-item'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-bs-slide') == undefined) { if (this.getAttribute('data-bs-slide-to') > activeItem) { @@ -297,13 +282,13 @@ export default class Carousel extends HTMLElement { ); } } else { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let activeItem = this.getRootNode().host.getAttribute('data-active-item'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let totalItems = this.getRootNode().host.getAttribute('data-total-items'); - // TODO: See CityOfDetroit/detroitmi#1099 + const activeItem = + this.getRootNode().host.getAttribute('data-active-item'); + + const totalItems = + this.getRootNode().host.getAttribute('data-total-items'); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-bs-slide') == 'prev') { this.getRootNode().host.setAttribute('data-direction', 'prev'); diff --git a/src/components/organisms/Form/Form.js b/src/components/organisms/Form/Form.js index 1bef6b98..71a93e5c 100644 --- a/src/components/organisms/Form/Form.js +++ b/src/components/organisms/Form/Form.js @@ -17,12 +17,9 @@ export default class Form extends HTMLElement { const shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(template.content.cloneNode(true)); this.form = document.createElement('form'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); if (tempElements.length) { tempElements.forEach((node) => { this.form.append(node); @@ -43,18 +40,16 @@ export default class Form extends HTMLElement { this.shadowRoot.appendChild(variableStyles); this.shadowRoot.appendChild(formStyles); // form attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); + + const id = this.getAttribute('data-id'); let customValidation = this.getAttribute('data-custom-validate'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backgroundColor = this.getAttribute('data-background-color'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); + + const backgroundColor = this.getAttribute('data-background-color'); + + const extraClasses = this.getAttribute('data-extra-classes'); this.form.id = id; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (customValidation == 'true') { this.form.novalidate = true; diff --git a/src/components/organisms/Geocoder/Geocoder.js b/src/components/organisms/Geocoder/Geocoder.js index e2877fa7..bcdf6686 100644 --- a/src/components/organisms/Geocoder/Geocoder.js +++ b/src/components/organisms/Geocoder/Geocoder.js @@ -23,26 +23,18 @@ export default class Geocoder extends HTMLElement { shadow.appendChild(this.styles); const geocoderWraper = document.createElement('article'); geocoderWraper.id = 'geocoder'; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let form = document.createElement('form'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let label = document.createElement('label'); + + const form = document.createElement('form'); + + const label = document.createElement('label'); label.style.fontFamily = 'Montserrat, sans-serif'; label.style.fontWeight = 'bold'; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let input = document.createElement('input'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const, no-unused-vars - let suggestions = document.createElement('ul'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let list = document.createElement('datalist'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let icon = document.createElement('i'); + + const input = document.createElement('input'); + + const list = document.createElement('datalist'); + + const icon = document.createElement('i'); form.addEventListener('submit', (ev) => { this.submit(ev, this); }); @@ -52,15 +44,14 @@ export default class Geocoder extends HTMLElement { label.innerText = 'Property Address:'; try { if (app[0].getAttribute('data-geocoder-label')) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (app[0].getAttribute('data-geocoder-label') != '') { label.innerText = app[0].getAttribute('data-geocoder-label'); } } } catch (error) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-empty + // Continue regardless of error. } label.setAttribute('for', 'geocoder-input'); input.type = 'text'; @@ -76,7 +67,6 @@ export default class Geocoder extends HTMLElement { form.appendChild(label); form.appendChild(input); form.appendChild(icon); - // form.appendChild(suggestions); form.appendChild(list); this.form = form; geocoderWraper.appendChild(form); @@ -89,16 +79,14 @@ export default class Geocoder extends HTMLElement { tempAddr = tempAddr[0]; tempAddr = tempAddr.split(' '); let newTempAddr = ''; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let size = tempAddr.length; + + const size = tempAddr.length; tempAddr.forEach(function (item, index) { newTempAddr += item; index < size && index + 1 !== size ? (newTempAddr += '+') : 0; }); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let url = `https://opengis.detroitmi.gov/opengis/rest/services/BaseUnits/BaseUnitGeocoder/GeocodeServer/findAddressCandidates?Address=&Address2=&Address3=&Neighborhood=&City=&Subregion=&Region=&Postal=&PostalExt=&CountryCode=&SingleLine=${newTempAddr}&outFields=*&maxLocations=&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=&magicKey=&f=json`; + + const url = `https://opengis.detroitmi.gov/opengis/rest/services/BaseUnits/BaseUnitGeocoder/GeocodeServer/findAddressCandidates?Address=&Address2=&Address3=&Neighborhood=&City=&Subregion=&Region=&Postal=&PostalExt=&CountryCode=&SingleLine=${newTempAddr}&outFields=*&maxLocations=&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=&magicKey=&f=json`; try { fetch(url) @@ -107,9 +95,7 @@ export default class Geocoder extends HTMLElement { // console.log(data); if (type === 'suggestions') { data.candidates.forEach((item) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let sugg = document.createElement('option'); + const sugg = document.createElement('option'); if (item.attributes.parcel_id === '') { sugg.value = item.address; sugg.setAttribute('data-parsel', 'no-parcel'); @@ -125,9 +111,7 @@ export default class Geocoder extends HTMLElement { }); } else { if (data.candidates.length) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let url = `https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=${data.candidates[0].location.x}%2C+${data.candidates[0].location.y}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`; + const url = `https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=${data.candidates[0].location.x}%2C+${data.candidates[0].location.y}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`; try { fetch(url) .then((resp) => resp.json()) // Transform the data into json @@ -144,7 +128,8 @@ export default class Geocoder extends HTMLElement { } } }); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq parcel == null ? (location = data.candidates[0].location) @@ -219,7 +204,7 @@ export default class Geocoder extends HTMLElement { inputChange(ev, geocoder) { switch (ev.key) { case 'Enter': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq ev.target.value != '' && ev.target.value != undefined ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') @@ -239,7 +224,7 @@ export default class Geocoder extends HTMLElement { break; case undefined: - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq ev.target.value != '' && ev.target.value != undefined ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') @@ -267,12 +252,9 @@ export default class Geocoder extends HTMLElement { ) .then((resp) => resp.json()) // Transform the data into json .then(function (data) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let cleanAddress = address.split(' RECOMMENDED')[0]; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let params = [ + const cleanAddress = address.split(' RECOMMENDED')[0]; + + const params = [ { attributes: { valid_parcel_status: geocoder.parcelStatus, @@ -284,15 +266,15 @@ export default class Geocoder extends HTMLElement { }, }, ]; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (location != null) { params[0].geometry.x = location.x; params[0].geometry.y = location.y; } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let request = new Request( + + const request = new Request( `https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/addressvalidator/FeatureServer/0/addFeatures?token=${ data.access_token }&features=${encodeURIComponent(JSON.stringify(params))}&f=json`, @@ -304,10 +286,9 @@ export default class Geocoder extends HTMLElement { cache: 'default', }, ); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - fetch(request).then((res) => { - // console.log(res); + + fetch(request).then((_res) => { + // console.log(_res); }); }); } diff --git a/src/components/organisms/Map/Map.js b/src/components/organisms/Map/Map.js index 5cc29154..d6f104d4 100644 --- a/src/components/organisms/Map/Map.js +++ b/src/components/organisms/Map/Map.js @@ -53,8 +53,6 @@ export default class Map extends HTMLElement { }); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars attributeChangedCallback(name, oldValue, newValue) { switch (name) { case 'data-map-state': { @@ -114,8 +112,6 @@ export default class Map extends HTMLElement { } }); // Creating this temp variable for workaround with dealing with "this" encapsulation - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-case-declarations this.map.on('click', 'data-points', function (e) { let activeData; diff --git a/src/components/organisms/Modal/Modal.js b/src/components/organisms/Modal/Modal.js index fa3068ed..c7e63992 100644 --- a/src/components/organisms/Modal/Modal.js +++ b/src/components/organisms/Modal/Modal.js @@ -28,21 +28,18 @@ export default class Modal extends HTMLElement { this.modalDialog.appendChild(this.modalContent); this.modal.appendChild(this.modalDialog); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { switch (node.tagName) { case 'COD-MODAL-HEADER': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-show') == 'true' ? node.setAttribute('data-show', true) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-button-dark') == 'true' ? node.setAttribute('data-button-dark', true) @@ -80,21 +77,21 @@ export default class Modal extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.modal.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.modal.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'show' ? tempClasses.push(popValue) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue == 'true') { tempClasses.push('show'); this.modal.style.display = 'block'; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-static') != 'true') { this.modal.addEventListener('click', this._onClick); @@ -110,67 +107,63 @@ export default class Modal extends HTMLElement { connectedCallback() { // Modal attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let bStatic = this.getAttribute('data-static'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let show = this.getAttribute('data-show'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let verticalCentered = this.getAttribute('data-vertical-centered'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let size = this.getAttribute('data-size'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let fullScreen = this.getAttribute('data-full-screen'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let modalClasses = ['modal fade']; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let modalDialogClasses = ['modal-dialog']; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let modalContentClasses = ['modal-content']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const bStatic = this.getAttribute('data-static'); + + const id = this.getAttribute('data-id'); + + const show = this.getAttribute('data-show'); + + const verticalCentered = this.getAttribute('data-vertical-centered'); + + const size = this.getAttribute('data-size'); + + const fullScreen = this.getAttribute('data-full-screen'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const modalClasses = ['modal fade']; + + const modalDialogClasses = ['modal-dialog']; + + const modalContentClasses = ['modal-content']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? modalClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq size != undefined && size != null ? modalDialogClasses.push(`modal-${size}`) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq verticalCentered == 'true' ? modalDialogClasses.push('modal-dialog-centered') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (fullScreen != undefined && fullScreen != null) { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq fullScreen == 'always' ? modalDialogClasses.push('modal-fullscreen') : modalDialogClasses.push(`modal-fullscreen-${fullScreen}-down`); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (bStatic == 'true') { this.modal.setAttribute('data-bs-backdrop', 'static'); this.modal.setAttribute('data-bs-keyboard', 'false'); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (show == 'true') { this.modalClasses.push('show'); @@ -178,7 +171,8 @@ export default class Modal extends HTMLElement { } else { this.modal.setAttribute('aria-modal', `false`); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq id != undefined && id != null ? (this.modal.id = id) : 0; this.modal.setAttribute('tabindex', -1); @@ -194,9 +188,7 @@ export default class Modal extends HTMLElement { this.removeEventListener('click', this._onClick.bind(this)); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - _onClick(e) { + _onClick() { this.getRootNode().host.setAttribute('data-show', 'false'); } } diff --git a/src/components/organisms/Offcanvas/Offcanvas.js b/src/components/organisms/Offcanvas/Offcanvas.js index 21c67a26..bec0ece2 100644 --- a/src/components/organisms/Offcanvas/Offcanvas.js +++ b/src/components/organisms/Offcanvas/Offcanvas.js @@ -21,22 +21,20 @@ export default class Offcanvas extends HTMLElement { shadow.appendChild(template.content.cloneNode(true)); this.offcanvas = document.createElement('div'); this.offcanvasBackdrop = document.createElement('div'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (ev) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-show') == 'true' ? node.setAttribute('data-show', true) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (node.tagName == 'COD-OFFCANVAS-HEADER') { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-button-dark') == 'true' ? node.setAttribute('data-button-dark', true) @@ -47,9 +45,8 @@ export default class Offcanvas extends HTMLElement { if (expand) { node.setAttribute('data-expand', expand); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let nodeClasses = node.className.split(' '); + + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : this.offcanvas.appendChild(node); @@ -69,23 +66,23 @@ export default class Offcanvas extends HTMLElement { } attributeChangedCallback(name, oldValue, newValue) { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempClasses = this.offcanvas.className.split(' '); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let popValue = tempClasses.pop(); - // TODO: See CityOfDetroit/detroitmi#1099 + const tempClasses = this.offcanvas.className.split(' '); + + const popValue = tempClasses.pop(); + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq popValue != 'show' ? tempClasses.push(popValue) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (newValue == 'true') { tempClasses.push('show'); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-backdrop') != 'false') { - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (this.getAttribute('data-static') != 'true') { this.offcanvasBackdrop.addEventListener('click', this._onClick); @@ -102,63 +99,62 @@ export default class Offcanvas extends HTMLElement { connectedCallback() { // Offcanvas attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let show = this.getAttribute('data-show'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let placement = this.getAttribute('data-placement'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backdrop = this.getAttribute('data-backdrop'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backdropExtraClasses = this.getAttribute('data-backdrop-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let scroll = this.getAttribute('data-scroll'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let bStatic = this.getAttribute('data-static'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let offcanvasClasses = ['offcanvas']; - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let backdropClasses = ['offcanvas-backdrop fade show']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const show = this.getAttribute('data-show'); + + const placement = this.getAttribute('data-placement'); + + const id = this.getAttribute('data-id'); + + const backdrop = this.getAttribute('data-backdrop'); + + const backdropExtraClasses = this.getAttribute( + 'data-backdrop-extra-classes', + ); + + const scroll = this.getAttribute('data-scroll'); + + const bStatic = this.getAttribute('data-static'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const offcanvasClasses = ['offcanvas']; + + const backdropClasses = ['offcanvas-backdrop fade show']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq show == 'true' ? offcanvasClasses.push('show') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq backdrop == 'false' ? this.offcanvas.setAttribute('data-bs-backdrop', false) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq scroll == 'true' ? this.offcanvas.setAttribute('data-bs-scroll', true) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq bStatic == 'true' ? this.offcanvas.setAttribute('data-bs-backdrop', 'static') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq backdropExtraClasses != undefined && backdropExtraClasses != null ? backdropClasses.push(backdropExtraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? offcanvasClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (placement != undefined && placement != null) { offcanvasClasses.push(`offcanvas-${placement}`); @@ -171,7 +167,8 @@ export default class Offcanvas extends HTMLElement { ? offcanvasClasses.push('navbar-expand') : offcanvasClasses.push(`navbar-expand-${expand}`); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (id != undefined && id != null) { this.offcanvas.id = id; @@ -189,9 +186,7 @@ export default class Offcanvas extends HTMLElement { this.removeEventListener('click', this._onClick.bind(this)); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - _onClick(e) { + _onClick() { this.getRootNode().host.setAttribute('data-show', 'false'); } } diff --git a/src/components/organisms/Table/Table.js b/src/components/organisms/Table/Table.js index 129890a9..a6eb01b0 100644 --- a/src/components/organisms/Table/Table.js +++ b/src/components/organisms/Table/Table.js @@ -51,21 +51,18 @@ class Table extends HTMLElement { this.table = document.createElement('table'); this.tableContainer.appendChild(this.table); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-unused-vars - shadow.addEventListener('slotchange', (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tempElements = Array.from(this.children); + shadow.addEventListener('slotchange', () => { + const tempElements = Array.from(this.children); tempElements.forEach((node) => { switch (node.tagName) { case 'COD-TABLE-HEADER': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-col') == 'true' ? node.setAttribute('data-striped-col', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-vertical-align') == 'true' ? node.setAttribute('data-vertical-align', 'true') @@ -79,22 +76,25 @@ class Table extends HTMLElement { break; case 'COD-TABLE-BODY': - // TODO: See CityOfDetroit/detroitmi#1099 + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-hover') == 'true' ? node.setAttribute('data-hover', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-row') == 'true' ? node.setAttribute('data-striped-row', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-striped-col') == 'true' ? node.setAttribute('data-striped-col', 'true') : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq this.getAttribute('data-vertical-align') == 'true' ? node.setAttribute('data-vertical-align', 'true') @@ -107,12 +107,11 @@ class Table extends HTMLElement { this.table.appendChild(node); break; - default: - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line no-case-declarations, prefer-const - let nodeClasses = node.className.split(' '); + default: { + const nodeClasses = node.className.split(' '); nodeClasses.includes('no-wc') ? node.remove() : 0; break; + } } }); }); @@ -131,21 +130,20 @@ class Table extends HTMLElement { connectedCallback() { // Table attributes - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let id = this.getAttribute('data-id'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let extraClasses = this.getAttribute('data-extra-classes'); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line prefer-const - let tableClasses = ['table']; - // TODO: See CityOfDetroit/detroitmi#1099 + + const id = this.getAttribute('data-id'); + + const extraClasses = this.getAttribute('data-extra-classes'); + + const tableClasses = ['table']; + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq extraClasses != undefined && extraClasses != null ? tableClasses.push(extraClasses) : 0; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq id != undefined && id != null ? (this.table.id = id) : 0; // Use bootstraps 'table-responsive' utility which styles the table as a diff --git a/src/stories/badge.stories.js b/src/stories/badge.stories.js index 64a70e3f..e0737a11 100644 --- a/src/stories/badge.stories.js +++ b/src/stories/badge.stories.js @@ -30,17 +30,20 @@ const Template = (args) => { const badge = document.createElement('cod-badge'); badge.setAttribute('data-tag', args.tag); badge.setAttribute('data-background-color', args.backgroundColor); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.url != null) { badge.setAttribute('data-url', args.url); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.hiddenText != null) { badge.setAttribute('data-hidden-text', args.hiddenText); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.pill != null) { badge.setAttribute('data-pill', args.pill); diff --git a/src/stories/button.stories.js b/src/stories/button.stories.js index 2a87a03c..44cea709 100644 --- a/src/stories/button.stories.js +++ b/src/stories/button.stories.js @@ -1,9 +1,3 @@ -// TODO: See CityOfDetroit/detroitmi#1099 -// eslint-disable-next-line no-unused-vars -import { userEvent, within } from '@storybook/testing-library'; -// TODO: See CityOfDetroit/detroitmi#1099 -// eslint-disable-next-line no-unused-vars -import { expect } from '@storybook/jest'; import '../components/atoms/Button/cod-button'; import '../components/atoms/Icon/cod-icon'; diff --git a/src/stories/container.stories.js b/src/stories/container.stories.js index 56feb5fd..540cbd06 100644 --- a/src/stories/container.stories.js +++ b/src/stories/container.stories.js @@ -33,7 +33,8 @@ export default { const Template = (args) => { const container = document.createElement('cod-container'); container.setAttribute('data-type', args.type); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.elements != null) { container.innerHTML = args.elements; diff --git a/src/stories/formcheck.stories.js b/src/stories/formcheck.stories.js index 0761daf7..3434e9e4 100644 --- a/src/stories/formcheck.stories.js +++ b/src/stories/formcheck.stories.js @@ -61,37 +61,44 @@ const Template = (args) => { formCheck.setAttribute('data-type', args.type); formCheck.setAttribute('data-btn-color', args.btnColor); formCheck.setAttribute('data-checked', args.checked); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.extraClasses != null) { formCheck.setAttribute('data-extra-classes', args.extraClasses); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.backgroundColor != null) { formCheck.setAttribute('data-background-color', args.backgroundColor); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.label != null) { formCheck.setAttribute('data-label', args.label); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.nolabel != null) { formCheck.setAttribute('data-nolabel', args.nolabel); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.mode != null) { formCheck.setAttribute('data-mode', args.mode); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.disabled != null) { formCheck.setAttribute('data-disabled', args.disabled); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - see issue #1099 // eslint-disable-next-line eqeqeq if (args.required != null) { formCheck.setAttribute('data-required', args.required); @@ -235,7 +242,7 @@ WithInteraction.args = { name: 'interaction-checkbox', value: 'interaction-checkbox', clicked: (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // Allow console logging for testing stories. // eslint-disable-next-line no-console console.log(e); }, diff --git a/src/stories/formcontrol.stories.js b/src/stories/formcontrol.stories.js index 8da9795a..cea76e84 100644 --- a/src/stories/formcontrol.stories.js +++ b/src/stories/formcontrol.stories.js @@ -47,17 +47,20 @@ export default { const Template = (args) => { const fcontrol = document.createElement('cod-form-control'); fcontrol.setAttribute('data-tag', args.tag); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.size != null) { fcontrol.setAttribute('data-size', args.size); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.rows != null) { fcontrol.setAttribute('data-rows', args.rows); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.value != null) { fcontrol.setAttribute('data-value', args.value); @@ -121,15 +124,8 @@ WithInteraction.args = { placeholder: 'enter text here', tag: 'input', keydown: (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // Allow console log for testing in Storybook. // eslint-disable-next-line no-console console.log(e); }, }; - -// WithInteraction.play = async ({ args, canvasElement }) => { -// // Assigns canvas to the component root element -// const canvas = within(canvasElement); -// await userEvent.click(canvas.getByTestId('interaction')); -// await expect(console.log); -// } diff --git a/src/stories/formselect.stories.js b/src/stories/formselect.stories.js index a354e9e1..c22a1fdc 100644 --- a/src/stories/formselect.stories.js +++ b/src/stories/formselect.stories.js @@ -29,32 +29,38 @@ const Template = (args) => { `; - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.id != null) { select.setAttribute('data-id', args.id); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.value != null) { select.setAttribute('data-value', args.value); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.size != null) { select.setAttribute('data-size', args.size); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.multiple != null) { select.setAttribute('data-multiple', args.multiple); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.displayMultiple != null) { select.setAttribute('data-display-multiple', args.displayMultiple); } - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.extraClasses != null) { select.setAttribute('data-extra-classes', args.extraClasses); @@ -62,7 +68,8 @@ const Template = (args) => { select.setAttribute('data-aria-label', args.ariaLabel); select.setAttribute('data-disabled', args.disabled); select.setAttribute('data-required', args.required); - // TODO: See CityOfDetroit/detroitmi#1099 + + // TODO: Fix old ESLint errors - issue #1099 // eslint-disable-next-line eqeqeq if (args.selectChange != null) { select.addEventListener('click', (e) => { @@ -99,15 +106,8 @@ WithInteraction.args = { id: 'interaction-input', ariaLabel: 'Interaction select example', selectChange: (e) => { - // TODO: See CityOfDetroit/detroitmi#1099 + // Allow console log for testing in Storybook. // eslint-disable-next-line no-console console.log(e.target.shadowRoot.querySelector('select').value); }, }; - -// WithInteraction.play = async ({ args, canvasElement }) => { -// // Assigns canvas to the component root element -// const canvas = within(canvasElement); -// await userEvent.click(canvas.getByTestId('interaction')); -// await expect(console.log); -// } diff --git a/src/stories/range.stories.js b/src/stories/range.stories.js index d5d9cb5b..7fb979a4 100644 --- a/src/stories/range.stories.js +++ b/src/stories/range.stories.js @@ -15,19 +15,16 @@ const Template = (args) => { const range = document.createElement('cod-range'); range.setAttribute('data-id', args.id); range.setAttribute('data-disable', args.disable); - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line eqeqeq - if (args.min != null) { + + if (args.min !== null) { range.setAttribute('data-min', args.min); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line eqeqeq - if (args.max != null) { + + if (args.max !== null) { range.setAttribute('data-max', args.max); } - // TODO: See CityOfDetroit/detroitmi#1099 - // eslint-disable-next-line eqeqeq - if (args.step != null) { + + if (args.step !== null) { range.setAttribute('data-step', args.step); } return range; diff --git a/yarn.lock b/yarn.lock index bf1c162a..1529eda6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8355,6 +8355,27 @@ __metadata: languageName: node linkType: hard +"arr-diff@npm:^4.0.0": + version: 4.0.0 + resolution: "arr-diff@npm:4.0.0" + checksum: ea7c8834842ad3869297f7915689bef3494fd5b102ac678c13ffccab672d3d1f35802b79e90c4cfec2f424af3392e44112d1ccf65da34562ed75e049597276a0 + languageName: node + linkType: hard + +"arr-flatten@npm:^1.1.0": + version: 1.1.0 + resolution: "arr-flatten@npm:1.1.0" + checksum: 963fe12564fca2f72c055f3f6c206b9e031f7c433a0c66ca9858b484821f248c5b1e5d53c8e4989d80d764cd776cf6d9b160ad05f47bdc63022bfd63b5455e22 + languageName: node + linkType: hard + +"arr-union@npm:^3.1.0": + version: 3.1.0 + resolution: "arr-union@npm:3.1.0" + checksum: b5b0408c6eb7591143c394f3be082fee690ddd21f0fdde0a0a01106799e847f67fcae1b7e56b0a0c173290e29c6aca9562e82b300708a268bc8f88f3d6613cb9 + languageName: node + linkType: hard + "array-back@npm:^3.0.1, array-back@npm:^3.1.0": version: 3.1.0 resolution: "array-back@npm:3.1.0" @@ -8429,6 +8450,13 @@ __metadata: languageName: node linkType: hard +"array-unique@npm:^0.3.2": + version: 0.3.2 + resolution: "array-unique@npm:0.3.2" + checksum: da344b89cfa6b0a5c221f965c21638bfb76b57b45184a01135382186924f55973cd9b171d4dad6bf606c6d9d36b0d721d091afdc9791535ead97ccbe78f8a888 + languageName: node + linkType: hard + "array.prototype.findlastindex@npm:^1.2.2": version: 1.2.3 resolution: "array.prototype.findlastindex@npm:1.2.3" @@ -8522,6 +8550,22 @@ __metadata: languageName: node linkType: hard +"assign-symbols@npm:^1.0.0": + version: 1.0.0 + resolution: "assign-symbols@npm:1.0.0" + checksum: c0eb895911d05b6b2d245154f70461c5e42c107457972e5ebba38d48967870dee53bcdf6c7047990586daa80fab8dab3cc6300800fbd47b454247fdedd859a2c + languageName: node + linkType: hard + +"ast-types@npm:0.14.2": + version: 0.14.2 + resolution: "ast-types@npm:0.14.2" + dependencies: + tslib: ^2.0.1 + checksum: 8674a77307764979f0a0b2006b7223a4b789abffaa7acbf6a1132650a799252155170173a1ff6a7fb6897f59437fc955f2707bdfc391b0797750898876e6c9ed + languageName: node + linkType: hard + "ast-types@npm:0.15.2": version: 0.15.2 resolution: "ast-types@npm:0.15.2" @@ -8575,6 +8619,15 @@ __metadata: languageName: node linkType: hard +"atob@npm:^2.1.2": + version: 2.1.2 + resolution: "atob@npm:2.1.2" + bin: + atob: bin/atob.js + checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a + languageName: node + linkType: hard + "author-regex@npm:^1.0.0": version: 1.0.0 resolution: "author-regex@npm:1.0.0" @@ -8950,6 +9003,21 @@ __metadata: languageName: node linkType: hard +"base@npm:^0.11.1": + version: 0.11.2 + resolution: "base@npm:0.11.2" + dependencies: + cache-base: ^1.0.1 + class-utils: ^0.3.5 + component-emitter: ^1.2.1 + define-property: ^1.0.0 + isobject: ^3.0.1 + mixin-deep: ^1.2.0 + pascalcase: ^0.1.1 + checksum: a4a146b912e27eea8f66d09cb0c9eab666f32ce27859a7dfd50f38cd069a2557b39f16dba1bc2aecb3b44bf096738dd207b7970d99b0318423285ab1b1994edd + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -9111,6 +9179,24 @@ __metadata: languageName: node linkType: hard +"braces@npm:^2.3.1": + version: 2.3.2 + resolution: "braces@npm:2.3.2" + dependencies: + arr-flatten: ^1.1.0 + array-unique: ^0.3.2 + extend-shallow: ^2.0.1 + fill-range: ^4.0.0 + isobject: ^3.0.1 + repeat-element: ^1.1.2 + snapdragon: ^0.8.1 + snapdragon-node: ^2.0.1 + split-string: ^3.0.2 + to-regex: ^3.0.1 + checksum: e30dcb6aaf4a31c8df17d848aa283a65699782f75ad61ae93ec25c9729c66cf58e66f0000a9fec84e4add1135bb7da40f7cb9601b36bebcfa9ca58e8d5c07de0 + languageName: node + linkType: hard + "braces@npm:^3.0.2, braces@npm:~3.0.2": version: 3.0.2 resolution: "braces@npm:3.0.2" @@ -9247,6 +9333,23 @@ __metadata: languageName: node linkType: hard +"cache-base@npm:^1.0.1": + version: 1.0.1 + resolution: "cache-base@npm:1.0.1" + dependencies: + collection-visit: ^1.0.0 + component-emitter: ^1.2.1 + get-value: ^2.0.6 + has-value: ^1.0.0 + isobject: ^3.0.1 + set-value: ^2.0.0 + to-object-path: ^0.3.0 + union-value: ^1.0.0 + unset-value: ^1.0.0 + checksum: 9114b8654fe2366eedc390bad0bcf534e2f01b239a888894e2928cb58cdc1e6ea23a73c6f3450dcfd2058aa73a8a981e723cd1e7c670c047bf11afdc65880107 + languageName: node + linkType: hard + "cachedir@npm:^2.3.0": version: 2.3.0 resolution: "cachedir@npm:2.3.0" @@ -9394,6 +9497,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.0.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + "chalk@npm:^5.2.0": version: 5.2.0 resolution: "chalk@npm:5.2.0" @@ -9494,6 +9604,18 @@ __metadata: languageName: node linkType: hard +"class-utils@npm:^0.3.5": + version: 0.3.6 + resolution: "class-utils@npm:0.3.6" + dependencies: + arr-union: ^3.1.0 + define-property: ^0.2.5 + isobject: ^3.0.0 + static-extend: ^0.1.1 + checksum: be108900801e639e50f96a7e4bfa8867c753a7750a7603879f3981f8b0a89cba657497a2d5f40cd4ea557ff15d535a100818bb486baf6e26fe5d7872e75f1078 + languageName: node + linkType: hard + "clean-css@npm:^5.2.2": version: 5.3.2 resolution: "clean-css@npm:5.3.2" @@ -9683,6 +9805,7 @@ __metadata: start-server-and-test: ^1.14.0 storybook: ^7.3.2 style-loader: ^3.3.1 + suppress-eslint-errors: ^3.0.1 terser-webpack-plugin: ^5.2.4 url-loader: ^4.1.1 webpack: ^5.61.0 @@ -9698,6 +9821,16 @@ __metadata: languageName: node linkType: hard +"collection-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "collection-visit@npm:1.0.0" + dependencies: + map-visit: ^1.0.0 + object-visit: ^1.0.0 + checksum: 15d9658fe6eb23594728346adad5433b86bb7a04fd51bbab337755158722f9313a5376ef479de5b35fbc54140764d0d39de89c339f5d25b959ed221466981da9 + languageName: node + linkType: hard + "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -9872,6 +10005,13 @@ __metadata: languageName: node linkType: hard +"component-emitter@npm:^1.2.1": + version: 1.3.1 + resolution: "component-emitter@npm:1.3.1" + checksum: 94550aa462c7bd5a61c1bc480e28554aa306066930152d1b1844a0dd3845d4e5db7e261ddec62ae184913b3e59b55a2ad84093b9d3596a8f17c341514d6c483d + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -10000,6 +10140,13 @@ __metadata: languageName: node linkType: hard +"copy-descriptor@npm:^0.1.0": + version: 0.1.1 + resolution: "copy-descriptor@npm:0.1.1" + checksum: d4b7b57b14f1d256bb9aa0b479241048afd7f5bcf22035fc7b94e8af757adeae247ea23c1a774fe44869fd5694efba4a969b88d966766c5245fdee59837fe45b + languageName: node + linkType: hard + "core-js-compat@npm:^3.25.1": version: 3.30.1 resolution: "core-js-compat@npm:3.30.1" @@ -10514,7 +10661,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.6.9": +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -10567,6 +10714,13 @@ __metadata: languageName: node linkType: hard +"decode-uri-component@npm:^0.2.0": + version: 0.2.2 + resolution: "decode-uri-component@npm:0.2.2" + checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139 + languageName: node + linkType: hard + "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -10685,6 +10839,34 @@ __metadata: languageName: node linkType: hard +"define-property@npm:^0.2.5": + version: 0.2.5 + resolution: "define-property@npm:0.2.5" + dependencies: + is-descriptor: ^0.1.0 + checksum: 85af107072b04973b13f9e4128ab74ddfda48ec7ad2e54b193c0ffb57067c4ce5b7786a7b4ae1f24bd03e87c5d18766b094571810b314d7540f86d4354dbd394 + languageName: node + linkType: hard + +"define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "define-property@npm:1.0.0" + dependencies: + is-descriptor: ^1.0.0 + checksum: 5fbed11dace44dd22914035ba9ae83ad06008532ca814d7936a53a09e897838acdad5b108dd0688cc8d2a7cf0681acbe00ee4136cf36743f680d10517379350a + languageName: node + linkType: hard + +"define-property@npm:^2.0.2": + version: 2.0.2 + resolution: "define-property@npm:2.0.2" + dependencies: + is-descriptor: ^1.0.2 + isobject: ^3.0.1 + checksum: 3217ed53fc9eed06ba8da6f4d33e28c68a82e2f2a8ab4d562c4920d8169a166fe7271453675e6c69301466f36a65d7f47edf0cf7f474b9aa52a5ead9c1b13c99 + languageName: node + linkType: hard + "defu@npm:^6.1.2": version: 6.1.2 resolution: "defu@npm:6.1.2" @@ -11998,6 +12180,21 @@ __metadata: languageName: node linkType: hard +"expand-brackets@npm:^2.1.4": + version: 2.1.4 + resolution: "expand-brackets@npm:2.1.4" + dependencies: + debug: ^2.3.3 + define-property: ^0.2.5 + extend-shallow: ^2.0.1 + posix-character-classes: ^0.1.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: 1781d422e7edfa20009e2abda673cadb040a6037f0bd30fcd7357304f4f0c284afd420d7622722ca4a016f39b6d091841ab57b401c1f7e2e5131ac65b9f14fa1 + languageName: node + linkType: hard + "expand-tilde@npm:^1.2.2": version: 1.2.2 resolution: "expand-tilde@npm:1.2.2" @@ -12098,6 +12295,25 @@ __metadata: languageName: node linkType: hard +"extend-shallow@npm:^2.0.1": + version: 2.0.1 + resolution: "extend-shallow@npm:2.0.1" + dependencies: + is-extendable: ^0.1.0 + checksum: 8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8 + languageName: node + linkType: hard + +"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2": + version: 3.0.2 + resolution: "extend-shallow@npm:3.0.2" + dependencies: + assign-symbols: ^1.0.0 + is-extendable: ^1.0.1 + checksum: a920b0cd5838a9995ace31dfd11ab5e79bf6e295aa566910ce53dff19f4b1c0fda2ef21f26b28586c7a2450ca2b42d97bd8c0f5cec9351a819222bf861e02461 + languageName: node + linkType: hard + "extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" @@ -12105,6 +12321,22 @@ __metadata: languageName: node linkType: hard +"extglob@npm:^2.0.4": + version: 2.0.4 + resolution: "extglob@npm:2.0.4" + dependencies: + array-unique: ^0.3.2 + define-property: ^1.0.0 + expand-brackets: ^2.1.4 + extend-shallow: ^2.0.1 + fragment-cache: ^0.2.1 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: a41531b8934735b684cef5e8c5a01d0f298d7d384500ceca38793a9ce098125aab04ee73e2d75d5b2901bc5dddd2b64e1b5e3bf19139ea48bac52af4a92f1d00 + languageName: node + linkType: hard + "extract-zip@npm:2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" @@ -12309,6 +12541,18 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^4.0.0": + version: 4.0.0 + resolution: "fill-range@npm:4.0.0" + dependencies: + extend-shallow: ^2.0.1 + is-number: ^3.0.0 + repeat-string: ^1.6.1 + to-regex-range: ^2.1.0 + checksum: dbb5102467786ab42bc7a3ec7380ae5d6bfd1b5177b2216de89e4a541193f8ba599a6db84651bd2c58c8921db41b8cc3d699ea83b477342d3ce404020f73c298 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -12478,6 +12722,13 @@ __metadata: languageName: node linkType: hard +"for-in@npm:^1.0.2": + version: 1.0.2 + resolution: "for-in@npm:1.0.2" + checksum: 09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d + languageName: node + linkType: hard + "foreground-child@npm:^2.0.0": version: 2.0.0 resolution: "foreground-child@npm:2.0.0" @@ -12582,6 +12833,15 @@ __metadata: languageName: node linkType: hard +"fragment-cache@npm:^0.2.1": + version: 0.2.1 + resolution: "fragment-cache@npm:0.2.1" + dependencies: + map-cache: ^0.2.2 + checksum: 1cbbd0b0116b67d5790175de0038a11df23c1cd2e8dcdbade58ebba5594c2d641dade6b4f126d82a7b4a6ffc2ea12e3d387dbb64ea2ae97cf02847d436f60fdc + languageName: node + linkType: hard + "fresh@npm:0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -12723,6 +12983,13 @@ __metadata: languageName: node linkType: hard +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + "function.prototype.name@npm:^1.1.5": version: 1.1.5 resolution: "function.prototype.name@npm:1.1.5" @@ -12904,6 +13171,13 @@ __metadata: languageName: node linkType: hard +"get-value@npm:^2.0.3, get-value@npm:^2.0.6": + version: 2.0.6 + resolution: "get-value@npm:2.0.6" + checksum: 5c3b99cb5398ea8016bf46ff17afc5d1d286874d2ad38ca5edb6e87d75c0965b0094cb9a9dddef2c59c23d250702323539a7fbdd870620db38c7e7d7ec87c1eb + languageName: node + linkType: hard + "getos@npm:^3.2.1": version: 3.2.1 resolution: "getos@npm:3.2.1" @@ -13279,6 +13553,45 @@ __metadata: languageName: node linkType: hard +"has-value@npm:^0.3.1": + version: 0.3.1 + resolution: "has-value@npm:0.3.1" + dependencies: + get-value: ^2.0.3 + has-values: ^0.1.4 + isobject: ^2.0.0 + checksum: 29e2a1e6571dad83451b769c7ce032fce6009f65bccace07c2962d3ad4d5530b6743d8f3229e4ecf3ea8e905d23a752c5f7089100c1f3162039fa6dc3976558f + languageName: node + linkType: hard + +"has-value@npm:^1.0.0": + version: 1.0.0 + resolution: "has-value@npm:1.0.0" + dependencies: + get-value: ^2.0.6 + has-values: ^1.0.0 + isobject: ^3.0.0 + checksum: b9421d354e44f03d3272ac39fd49f804f19bc1e4fa3ceef7745df43d6b402053f828445c03226b21d7d934a21ac9cf4bc569396dc312f496ddff873197bbd847 + languageName: node + linkType: hard + +"has-values@npm:^0.1.4": + version: 0.1.4 + resolution: "has-values@npm:0.1.4" + checksum: ab1c4bcaf811ccd1856c11cfe90e62fca9e2b026ebe474233a3d282d8d67e3b59ed85b622c7673bac3db198cb98bd1da2b39300a2f98e453729b115350af49bc + languageName: node + linkType: hard + +"has-values@npm:^1.0.0": + version: 1.0.0 + resolution: "has-values@npm:1.0.0" + dependencies: + is-number: ^3.0.0 + kind-of: ^4.0.0 + checksum: 77e6693f732b5e4cf6c38dfe85fdcefad0fab011af74995c3e83863fabf5e3a836f406d83565816baa0bc0a523c9410db8b990fe977074d61aeb6d8f4fcffa11 + languageName: node + linkType: hard + "has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" @@ -13298,6 +13611,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -13785,6 +14107,15 @@ __metadata: languageName: node linkType: hard +"is-accessor-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-accessor-descriptor@npm:1.0.1" + dependencies: + hasown: ^2.0.0 + checksum: 8db44c02230a5e9b9dec390a343178791f073d5d5556a400527d2fd67a72d93b226abab2bd4123305c268f5dc22831bfdbd38430441fda82ea9e0b95ddc6b267 + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -13841,6 +14172,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:^1.1.5": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 + languageName: node + linkType: hard + "is-buffer@npm:^2.0.0": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" @@ -13884,6 +14222,15 @@ __metadata: languageName: node linkType: hard +"is-data-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-descriptor@npm:1.0.1" + dependencies: + hasown: ^2.0.0 + checksum: fc6da5be5177149d554c5612cc382e9549418ed72f2d3ed5a3e6511b03dd119ae1b2258320ca94931df50b7e9ee012894eccd4ca45bbcadf0d5b27da6faeb15a + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -13900,6 +14247,26 @@ __metadata: languageName: node linkType: hard +"is-descriptor@npm:^0.1.0": + version: 0.1.7 + resolution: "is-descriptor@npm:0.1.7" + dependencies: + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 45743109f0bb03f9fa989c34d31ece87cc15792649f147b896a7c4db2906a02fca685867619f4d312e024d7bbd53b945a47c6830d01f5e73efcc6388ac211963 + languageName: node + linkType: hard + +"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": + version: 1.0.3 + resolution: "is-descriptor@npm:1.0.3" + dependencies: + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 316153b2fd86ac23b0a2f28b77744ae0a4e3c7a54fe52fa70b125d0971eb0a3bcfb562fa8e74537af0dad5bc405cc606726eb501fc748a241c10910deea89cfb + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -13909,6 +14276,22 @@ __metadata: languageName: node linkType: hard +"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": + version: 0.1.1 + resolution: "is-extendable@npm:0.1.1" + checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 + languageName: node + linkType: hard + +"is-extendable@npm:^1.0.1": + version: 1.0.1 + resolution: "is-extendable@npm:1.0.1" + dependencies: + is-plain-object: ^2.0.4 + checksum: db07bc1e9de6170de70eff7001943691f05b9d1547730b11be01c0ebfe67362912ba743cf4be6fd20a5e03b4180c685dad80b7c509fe717037e3eee30ad8e84f + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -14012,6 +14395,15 @@ __metadata: languageName: node linkType: hard +"is-number@npm:^3.0.0": + version: 3.0.0 + resolution: "is-number@npm:3.0.0" + dependencies: + kind-of: ^3.0.2 + checksum: 0c62bf8e9d72c4dd203a74d8cfc751c746e75513380fef420cda8237e619a988ee43e678ddb23c87ac24d91ac0fe9f22e4ffb1301a50310c697e9d73ca3994e9 + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -14047,7 +14439,7 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:^2.0.4": +"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" dependencies: @@ -14215,6 +14607,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:1.0.0, isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -14222,13 +14621,6 @@ __metadata: languageName: node linkType: hard -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab - languageName: node - linkType: hard - "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -14236,7 +14628,16 @@ __metadata: languageName: node linkType: hard -"isobject@npm:^3.0.1": +"isobject@npm:^2.0.0": + version: 2.1.0 + resolution: "isobject@npm:2.1.0" + dependencies: + isarray: 1.0.0 + checksum: 811c6f5a866877d31f0606a88af4a45f282544de886bf29f6a34c46616a1ae2ed17076cc6bf34c0128f33eecf7e1fcaa2c82cf3770560d3e26810894e96ae79f + languageName: node + linkType: hard + +"isobject@npm:^3.0.0, isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 @@ -15532,6 +15933,37 @@ __metadata: languageName: node linkType: hard +"jscodeshift@npm:^0.13.0": + version: 0.13.1 + resolution: "jscodeshift@npm:0.13.1" + dependencies: + "@babel/core": ^7.13.16 + "@babel/parser": ^7.13.16 + "@babel/plugin-proposal-class-properties": ^7.13.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.13.8 + "@babel/plugin-proposal-optional-chaining": ^7.13.12 + "@babel/plugin-transform-modules-commonjs": ^7.13.8 + "@babel/preset-flow": ^7.13.13 + "@babel/preset-typescript": ^7.13.0 + "@babel/register": ^7.13.16 + babel-core: ^7.0.0-bridge.0 + chalk: ^4.1.2 + flow-parser: 0.* + graceful-fs: ^4.2.4 + micromatch: ^3.1.10 + neo-async: ^2.5.0 + node-dir: ^0.1.17 + recast: ^0.20.4 + temp: ^0.8.4 + write-file-atomic: ^2.3.0 + peerDependencies: + "@babel/preset-env": ^7.1.6 + bin: + jscodeshift: bin/jscodeshift.js + checksum: 1c35938de5fc29cafec80e2c37d5c3411f85cd5d40e0243b52f2da0c1ab4b659daddfd62de558eca5d562303616f7838097727b651f4ad8e32b1e96f169cdd76 + languageName: node + linkType: hard + "jscodeshift@npm:^0.14.0": version: 0.14.0 resolution: "jscodeshift@npm:0.14.0" @@ -15745,6 +16177,24 @@ __metadata: languageName: node linkType: hard +"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": + version: 3.2.2 + resolution: "kind-of@npm:3.2.2" + dependencies: + is-buffer: ^1.1.5 + checksum: e898df8ca2f31038f27d24f0b8080da7be274f986bc6ed176f37c77c454d76627619e1681f6f9d2e8d2fd7557a18ecc419a6bb54e422abcbb8da8f1a75e4b386 + languageName: node + linkType: hard + +"kind-of@npm:^4.0.0": + version: 4.0.0 + resolution: "kind-of@npm:4.0.0" + dependencies: + is-buffer: ^1.1.5 + checksum: 1b9e7624a8771b5a2489026e820f3bbbcc67893e1345804a56b23a91e9069965854d2a223a7c6ee563c45be9d8c6ff1ef87f28ed5f0d1a8d00d9dcbb067c529f + languageName: node + linkType: hard + "kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -16189,6 +16639,13 @@ __metadata: languageName: node linkType: hard +"map-cache@npm:^0.2.2": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 + languageName: node + linkType: hard + "map-or-similar@npm:^1.5.0": version: 1.5.0 resolution: "map-or-similar@npm:1.5.0" @@ -16203,6 +16660,15 @@ __metadata: languageName: node linkType: hard +"map-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "map-visit@npm:1.0.0" + dependencies: + object-visit: ^1.0.0 + checksum: c27045a5021c344fc19b9132eb30313e441863b2951029f8f8b66f79d3d8c1e7e5091578075a996f74e417479506fe9ede28c44ca7bc351a61c9d8073daec36a + languageName: node + linkType: hard + "maplibre-gl@npm:^2.4.0": version: 2.4.0 resolution: "maplibre-gl@npm:2.4.0" @@ -16825,6 +17291,27 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^3.1.10": + version: 3.1.10 + resolution: "micromatch@npm:3.1.10" + dependencies: + arr-diff: ^4.0.0 + array-unique: ^0.3.2 + braces: ^2.3.1 + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + extglob: ^2.0.4 + fragment-cache: ^0.2.1 + kind-of: ^6.0.2 + nanomatch: ^1.2.9 + object.pick: ^1.3.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.2 + checksum: ad226cba4daa95b4eaf47b2ca331c8d2e038d7b41ae7ed0697cde27f3f1d6142881ab03d4da51b65d9d315eceb5e4cdddb3fbb55f5f72cfa19cf3ea469d054dc + languageName: node + linkType: hard + "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -17019,6 +17506,16 @@ __metadata: languageName: node linkType: hard +"mixin-deep@npm:^1.2.0": + version: 1.3.2 + resolution: "mixin-deep@npm:1.3.2" + dependencies: + for-in: ^1.0.2 + is-extendable: ^1.0.1 + checksum: 820d5a51fcb7479f2926b97f2c3bb223546bc915e6b3a3eb5d906dda871bba569863595424a76682f2b15718252954644f3891437cb7e3f220949bed54b1750d + languageName: node + linkType: hard + "mkdirp-classic@npm:^0.5.2": version: 0.5.3 resolution: "mkdirp-classic@npm:0.5.3" @@ -17116,6 +17613,25 @@ __metadata: languageName: node linkType: hard +"nanomatch@npm:^1.2.9": + version: 1.2.13 + resolution: "nanomatch@npm:1.2.13" + dependencies: + arr-diff: ^4.0.0 + array-unique: ^0.3.2 + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + fragment-cache: ^0.2.1 + is-windows: ^1.0.2 + kind-of: ^6.0.2 + object.pick: ^1.3.0 + regex-not: ^1.0.0 + snapdragon: ^0.8.1 + to-regex: ^3.0.1 + checksum: 54d4166d6ef08db41252eb4e96d4109ebcb8029f0374f9db873bd91a1f896c32ec780d2a2ea65c0b2d7caf1f28d5e1ea33746a470f32146ac8bba821d80d38d8 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -17423,6 +17939,17 @@ __metadata: languageName: node linkType: hard +"object-copy@npm:^0.1.0": + version: 0.1.0 + resolution: "object-copy@npm:0.1.0" + dependencies: + copy-descriptor: ^0.1.0 + define-property: ^0.2.5 + kind-of: ^3.0.3 + checksum: a9e35f07e3a2c882a7e979090360d1a20ab51d1fa19dfdac3aa8873b328a7c4c7683946ee97c824ae40079d848d6740a3788fa14f2185155dab7ed970a72c783 + languageName: node + linkType: hard + "object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" @@ -17447,6 +17974,15 @@ __metadata: languageName: node linkType: hard +"object-visit@npm:^1.0.0": + version: 1.0.1 + resolution: "object-visit@npm:1.0.1" + dependencies: + isobject: ^3.0.0 + checksum: b0ee07f5bf3bb881b881ff53b467ebbde2b37ebb38649d6944a6cd7681b32eedd99da9bd1e01c55facf81f54ed06b13af61aba6ad87f0052982995e09333f790 + languageName: node + linkType: hard + "object.assign@npm:^4.1.4": version: 4.1.4 resolution: "object.assign@npm:4.1.4" @@ -17494,6 +18030,15 @@ __metadata: languageName: node linkType: hard +"object.pick@npm:^1.3.0": + version: 1.3.0 + resolution: "object.pick@npm:1.3.0" + dependencies: + isobject: ^3.0.1 + checksum: 77fb6eed57c67adf75e9901187e37af39f052ef601cb4480386436561357eb9e459e820762f01fd02c5c1b42ece839ad393717a6d1850d848ee11fbabb3e580a + languageName: node + linkType: hard + "object.values@npm:^1.1.0": version: 1.1.6 resolution: "object.values@npm:1.1.6" @@ -17883,6 +18428,13 @@ __metadata: languageName: node linkType: hard +"pascalcase@npm:^0.1.1": + version: 0.1.1 + resolution: "pascalcase@npm:0.1.1" + checksum: f83681c3c8ff75fa473a2bb2b113289952f802ff895d435edd717e7cb898b0408cbdb247117a938edcbc5d141020909846cc2b92c47213d764e2a94d2ad2b925 + languageName: node + linkType: hard + "path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -18110,6 +18662,15 @@ __metadata: languageName: node linkType: hard +"please-upgrade-node@npm:^3.1.1": + version: 3.2.0 + resolution: "please-upgrade-node@npm:3.2.0" + dependencies: + semver-compare: ^1.0.0 + checksum: d87c41581a2a022fbe25965a97006238cd9b8cbbf49b39f78d262548149a9d30bd2bdf35fec3d810e0001e630cd46ef13c7e19c389dea8de7e64db271a2381bb + languageName: node + linkType: hard + "polished@npm:^4.2.2": version: 4.2.2 resolution: "polished@npm:4.2.2" @@ -18119,6 +18680,13 @@ __metadata: languageName: node linkType: hard +"posix-character-classes@npm:^0.1.0": + version: 0.1.1 + resolution: "posix-character-classes@npm:0.1.1" + checksum: dedb99913c60625a16050cfed2fb5c017648fc075be41ac18474e1c6c3549ef4ada201c8bd9bd006d36827e289c571b6092e1ef6e756cdbab2fd7046b25c6442 + languageName: node + linkType: hard + "postcss-attribute-case-insensitive@npm:^6.0.2": version: 6.0.2 resolution: "postcss-attribute-case-insensitive@npm:6.0.2" @@ -19492,6 +20060,18 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.20.4": + version: 0.20.5 + resolution: "recast@npm:0.20.5" + dependencies: + ast-types: 0.14.2 + esprima: ~4.0.0 + source-map: ~0.6.1 + tslib: ^2.0.1 + checksum: 14c35115cd9965950724cb2968f069a247fa79ce890643ab6dc3795c705b363f7b92a45238e9f765387c306763be9955f72047bb9d15b5d60b0a55f9e7912d5a + languageName: node + linkType: hard + "recast@npm:^0.21.0": version: 0.21.5 resolution: "recast@npm:0.21.5" @@ -19600,6 +20180,16 @@ __metadata: languageName: node linkType: hard +"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": + version: 1.0.2 + resolution: "regex-not@npm:1.0.2" + dependencies: + extend-shallow: ^3.0.2 + safe-regex: ^1.1.0 + checksum: 3081403de79559387a35ef9d033740e41818a559512668cef3d12da4e8a29ef34ee13c8ed1256b07e27ae392790172e8a15c8a06b72962fd4550476cde3d8f77 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.4.3": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" @@ -19728,6 +20318,20 @@ __metadata: languageName: node linkType: hard +"repeat-element@npm:^1.1.2": + version: 1.1.4 + resolution: "repeat-element@npm:1.1.4" + checksum: 1edd0301b7edad71808baad226f0890ba709443f03a698224c9ee4f2494c317892dc5211b2ba8cbea7194a9ddbcac01e283bd66de0467ab24ee1fc1a3711d8a9 + languageName: node + linkType: hard + +"repeat-string@npm:^1.6.1": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + "request-progress@npm:^3.0.0": version: 3.0.0 resolution: "request-progress@npm:3.0.0" @@ -19825,6 +20429,13 @@ __metadata: languageName: node linkType: hard +"resolve-url@npm:^0.2.1": + version: 0.2.1 + resolution: "resolve-url@npm:0.2.1" + checksum: 7b7035b9ed6e7bc7d289e90aef1eab5a43834539695dac6416ca6e91f1a94132ae4796bbd173cdacfdc2ade90b5f38a3fb6186bebc1b221cd157777a23b9ad14 + languageName: node + linkType: hard + "resolve.exports@npm:^1.1.0": version: 1.1.1 resolution: "resolve.exports@npm:1.1.1" @@ -19912,6 +20523,13 @@ __metadata: languageName: node linkType: hard +"ret@npm:~0.1.10": + version: 0.1.15 + resolution: "ret@npm:0.1.15" + checksum: d76a9159eb8c946586567bd934358dfc08a36367b3257f7a3d7255fdd7b56597235af23c6afa0d7f0254159e8051f93c918809962ebd6df24ca2a83dbe4d4151 + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -20053,6 +20671,15 @@ __metadata: languageName: node linkType: hard +"safe-regex@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex@npm:1.1.0" + dependencies: + ret: ~0.1.10 + checksum: 9a8bba57c87a841f7997b3b951e8e403b1128c1a4fd1182f40cc1a20e2d490593d7c2a21030fadfea320c8e859219019e136f678c6689ed5960b391b822f01d5 + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -20173,6 +20800,13 @@ __metadata: languageName: node linkType: hard +"semver-compare@npm:^1.0.0": + version: 1.0.0 + resolution: "semver-compare@npm:1.0.0" + checksum: dd1d7e2909744cf2cf71864ac718efc990297f9de2913b68e41a214319e70174b1d1793ac16e31183b128c2b9812541300cb324db8168e6cf6b570703b171c68 + languageName: node + linkType: hard + "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.1 resolution: "semver@npm:5.7.1" @@ -20310,6 +20944,18 @@ __metadata: languageName: node linkType: hard +"set-value@npm:^2.0.0, set-value@npm:^2.0.1": + version: 2.0.1 + resolution: "set-value@npm:2.0.1" + dependencies: + extend-shallow: ^2.0.1 + is-extendable: ^0.1.1 + is-plain-object: ^2.0.3 + split-string: ^3.0.1 + checksum: 09a4bc72c94641aeae950eb60dc2755943b863780fcc32e441eda964b64df5e3f50603d5ebdd33394ede722528bd55ed43aae26e9df469b4d32e2292b427b601 + languageName: node + linkType: hard + "setprototypeof@npm:1.1.0": version: 1.1.0 resolution: "setprototypeof@npm:1.1.0" @@ -20478,6 +21124,42 @@ __metadata: languageName: node linkType: hard +"snapdragon-node@npm:^2.0.1": + version: 2.1.1 + resolution: "snapdragon-node@npm:2.1.1" + dependencies: + define-property: ^1.0.0 + isobject: ^3.0.0 + snapdragon-util: ^3.0.1 + checksum: 9bb57d759f9e2a27935dbab0e4a790137adebace832b393e350a8bf5db461ee9206bb642d4fe47568ee0b44080479c8b4a9ad0ebe3712422d77edf9992a672fd + languageName: node + linkType: hard + +"snapdragon-util@npm:^3.0.1": + version: 3.0.1 + resolution: "snapdragon-util@npm:3.0.1" + dependencies: + kind-of: ^3.2.0 + checksum: 684997dbe37ec995c03fd3f412fba2b711fc34cb4010452b7eb668be72e8811a86a12938b511e8b19baf853b325178c56d8b78d655305e5cfb0bb8b21677e7b7 + languageName: node + linkType: hard + +"snapdragon@npm:^0.8.1": + version: 0.8.2 + resolution: "snapdragon@npm:0.8.2" + dependencies: + base: ^0.11.1 + debug: ^2.2.0 + define-property: ^0.2.5 + extend-shallow: ^2.0.1 + map-cache: ^0.2.2 + source-map: ^0.5.6 + source-map-resolve: ^0.5.0 + use: ^3.1.0 + checksum: a197f242a8f48b11036563065b2487e9b7068f50a20dd81d9161eca6af422174fc158b8beeadbe59ce5ef172aa5718143312b3aebaae551c124b7824387c8312 + languageName: node + linkType: hard + "sockjs@npm:^0.3.24": version: 0.3.24 resolution: "sockjs@npm:0.3.24" @@ -20517,6 +21199,19 @@ __metadata: languageName: node linkType: hard +"source-map-resolve@npm:^0.5.0": + version: 0.5.3 + resolution: "source-map-resolve@npm:0.5.3" + dependencies: + atob: ^2.1.2 + decode-uri-component: ^0.2.0 + resolve-url: ^0.2.1 + source-map-url: ^0.4.0 + urix: ^0.1.0 + checksum: c73fa44ac00783f025f6ad9e038ab1a2e007cd6a6b86f47fe717c3d0765b4a08d264f6966f3bd7cd9dbcd69e4832783d5472e43247775b2a550d6f2155d24bae + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -20537,6 +21232,20 @@ __metadata: languageName: node linkType: hard +"source-map-url@npm:^0.4.0": + version: 0.4.1 + resolution: "source-map-url@npm:0.4.1" + checksum: 64c5c2c77aff815a6e61a4120c309ae4cac01298d9bcbb3deb1b46a4dd4c46d4a1eaeda79ec9f684766ae80e8dc86367b89326ce9dd2b89947bd9291fc1ac08c + languageName: node + linkType: hard + +"source-map@npm:^0.5.6": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + "source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -20652,6 +21361,15 @@ __metadata: languageName: node linkType: hard +"split-string@npm:^3.0.1, split-string@npm:^3.0.2": + version: 3.1.0 + resolution: "split-string@npm:3.1.0" + dependencies: + extend-shallow: ^3.0.0 + checksum: ae5af5c91bdc3633628821bde92fdf9492fa0e8a63cf6a0376ed6afde93c701422a1610916f59be61972717070119e848d10dfbbd5024b7729d6a71972d2a84c + languageName: node + linkType: hard + "split@npm:0.3": version: 0.3.3 resolution: "split@npm:0.3.3" @@ -20734,6 +21452,16 @@ __metadata: languageName: node linkType: hard +"static-extend@npm:^0.1.1": + version: 0.1.2 + resolution: "static-extend@npm:0.1.2" + dependencies: + define-property: ^0.2.5 + object-copy: ^0.1.0 + checksum: 8657485b831f79e388a437260baf22784540417a9b29e11572c87735df24c22b84eda42107403a64b30861b2faf13df9f7fc5525d51f9d1d2303aba5cbf4e12c + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -21054,6 +21782,20 @@ __metadata: languageName: node linkType: hard +"suppress-eslint-errors@npm:^3.0.1": + version: 3.0.1 + resolution: "suppress-eslint-errors@npm:3.0.1" + dependencies: + chalk: ^5.0.0 + cross-spawn: ^7.0.3 + jscodeshift: ^0.13.0 + please-upgrade-node: ^3.1.1 + bin: + suppress-eslint-errors: bin/index.js + checksum: 93b166a35c887c1925c2d2380ababc2b1c602860545df437250abfa951195c66853c1445fe2fcb261c44e5233ec61365081c2b113d4a39bff0ea22de5ed9ca94 + languageName: node + linkType: hard + "svg-parser@npm:^2.0.2": version: 2.0.4 resolution: "svg-parser@npm:2.0.4" @@ -21403,6 +22145,25 @@ __metadata: languageName: node linkType: hard +"to-object-path@npm:^0.3.0": + version: 0.3.0 + resolution: "to-object-path@npm:0.3.0" + dependencies: + kind-of: ^3.0.2 + checksum: 9425effee5b43e61d720940fa2b889623f77473d459c2ce3d4a580a4405df4403eec7be6b857455908070566352f9e2417304641ed158dda6f6a365fe3e66d70 + languageName: node + linkType: hard + +"to-regex-range@npm:^2.1.0": + version: 2.1.1 + resolution: "to-regex-range@npm:2.1.1" + dependencies: + is-number: ^3.0.0 + repeat-string: ^1.6.1 + checksum: 46093cc14be2da905cc931e442d280b2e544e2bfdb9a24b3cf821be8d342f804785e5736c108d5be026021a05d7b38144980a61917eee3c88de0a5e710e10320 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -21412,6 +22173,18 @@ __metadata: languageName: node linkType: hard +"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2": + version: 3.0.2 + resolution: "to-regex@npm:3.0.2" + dependencies: + define-property: ^2.0.2 + extend-shallow: ^3.0.2 + regex-not: ^1.0.2 + safe-regex: ^1.1.0 + checksum: 4ed4a619059b64e204aad84e4e5f3ea82d97410988bcece7cf6cbfdbf193d11bff48cf53842d88b8bb00b1bfc0d048f61f20f0709e6f393fd8fe0122662d9db4 + languageName: node + linkType: hard + "tocbot@npm:^4.20.1": version: 4.21.1 resolution: "tocbot@npm:4.21.1" @@ -21851,6 +22624,18 @@ __metadata: languageName: node linkType: hard +"union-value@npm:^1.0.0": + version: 1.0.1 + resolution: "union-value@npm:1.0.1" + dependencies: + arr-union: ^3.1.0 + get-value: ^2.0.6 + is-extendable: ^0.1.1 + set-value: ^2.0.1 + checksum: a3464097d3f27f6aa90cf103ed9387541bccfc006517559381a10e0dffa62f465a9d9a09c9b9c3d26d0f4cbe61d4d010e2fbd710fd4bf1267a768ba8a774b0ba + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -21992,6 +22777,16 @@ __metadata: languageName: node linkType: hard +"unset-value@npm:^1.0.0": + version: 1.0.0 + resolution: "unset-value@npm:1.0.0" + dependencies: + has-value: ^0.3.1 + isobject: ^3.0.0 + checksum: 5990ecf660672be2781fc9fb322543c4aa592b68ed9a3312fa4df0e9ba709d42e823af090fc8f95775b4cd2c9a5169f7388f0cec39238b6d0d55a69fc2ab6b29 + languageName: node + linkType: hard + "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" @@ -22022,6 +22817,13 @@ __metadata: languageName: node linkType: hard +"urix@npm:^0.1.0": + version: 0.1.0 + resolution: "urix@npm:0.1.0" + checksum: 4c076ecfbf3411e888547fe844e52378ab5ada2d2f27625139011eada79925e77f7fbf0e4016d45e6a9e9adb6b7e64981bd49b22700c7c401c5fc15f423303b3 + languageName: node + linkType: hard + "url-join@npm:^4.0.0": version: 4.0.1 resolution: "url-join@npm:4.0.1" @@ -22109,6 +22911,13 @@ __metadata: languageName: node linkType: hard +"use@npm:^3.1.0": + version: 3.1.1 + resolution: "use@npm:3.1.1" + checksum: 08a130289f5238fcbf8f59a18951286a6e660d17acccc9d58d9b69dfa0ee19aa038e8f95721b00b432c36d1629a9e32a464bf2e7e0ae6a244c42ddb30bdd8b33 + languageName: node + linkType: hard + "user-home@npm:^2.0.0": version: 2.0.0 resolution: "user-home@npm:2.0.0"