Skip to content

Commit

Permalink
ESLint - Limit lines to 350
Browse files Browse the repository at this point in the history
  • Loading branch information
Gustry committed Feb 6, 2025
1 parent 580eb57 commit 2450d75
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 66 deletions.
18 changes: 10 additions & 8 deletions assets/src/components/SelectionInvert.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,16 @@ export default class SelectionInvert extends HTMLElement {

connectedCallback() {

const isHidden = this.getAttribute('feature-type') && mainLizmap.config.layers[mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type'))]['selectedFeatures'].length === 0 ? 'hide' : '';
const isDisabled = this.getAttribute('feature-type') ? mainLizmap.config.layers[mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type'))]['selectedFeatures'].length === 0 : (mainLizmap.selectionTool.selectedFeaturesCount === 0 || mainLizmap.selectionTool.allFeatureTypeSelected.length > 1);
const mainTemplate = () => html`
<button type="button" class="selectiontool-invert btn btn-sm ${isHidden}" ?disabled=${isDisabled} @click=${() => mainLizmap.selectionTool.invert(mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type')))} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.invert']}">
<svg class="icon-">
<use xlink:href="#mActionInvertSelection"></use>
</svg>
</button>`;
const mainTemplate = () => {
const isHidden = this.getAttribute('feature-type') && mainLizmap.config.layers[mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type'))]['selectedFeatures'].length === 0 ? 'hide' : '';
const isDisabled = this.getAttribute('feature-type') ? mainLizmap.config.layers[mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type'))]['selectedFeatures'].length === 0 : (mainLizmap.selectionTool.selectedFeaturesCount === 0 || mainLizmap.selectionTool.allFeatureTypeSelected.length > 1);
return html`
<button type="button" class="selectiontool-invert btn btn-sm ${isHidden}" ?disabled=${isDisabled} @click=${() => mainLizmap.selectionTool.invert(mainLizmap.getLayerNameByCleanName(this.getAttribute('feature-type')))} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.invert']}">
<svg class="icon-">
<use xlink:href="#mActionInvertSelection"></use>
</svg>
</button>`;
}

render(mainTemplate(), this);

Expand Down
157 changes: 103 additions & 54 deletions assets/src/components/SelectionTool.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,85 +20,134 @@ export default class SelectionTool extends HTMLElement {
}

connectedCallback() {
/**
* @typedef lizDict
*/

const isFilterDisabled = mainLizmap.selectionTool.selectedFeaturesCount === 0 && mainLizmap.selectionTool.filteredFeaturesCount === 0;
const mainTemplate = () => html`
<div class="selectiontool">
<h3>
<span class="title">
<button class="btn-selectiontool-clear btn btn-sm btn-error btn-link" type="button" @click=${() => mainLizmap.selectionTool.disable()} title="${lizDict['toolbar.content.stop']}">×</button>
<span class="icon-star icon-white"></span>
<span class="text">&nbsp;${lizDict['selectiontool.toolbar.title']}&nbsp;</span>
</span>
</h3>
<div class="menu-content">
<div>${lizDict['selectiontool.toolbar.layer']}</div>
<div>
<select class="selectiontool-layer-list" @change=${ (event) => mainLizmap.selectionTool.allFeatureTypeSelected = event.target.value}>
<optgroup label="${lizDict['selectiontool.toolbar.layers.single']}">
${mainLizmap.selectionTool.layers.map((layer) => html`<option value="${layer.name}">${layer.title}</option>`)}
</optgroup>
<optgroup label="${lizDict['selectiontool.toolbar.layers.multiple']}">
<option value="selectable-visible-layers">${lizDict['selectiontool.toolbar.layers.selectableAndVisible']}</option>
<option selected value="selectable-layers">${lizDict['selectiontool.toolbar.layers.selectable']}</option>
</optgroup>
</select>
</div>
<lizmap-digitizing context="selectiontool" selected-tool="box" available-tools="point,line,polygon,box,freehand" import-export></lizmap-digitizing>
<div class="selectiontool-buffer">
<label><span>${lizDict['selectiontool.toolbar.buffer']}</span>
<div class="input-append">
<input class="input-mini" type="number" min="0" .value="${mainLizmap.selectionTool.bufferValue}" @input=${(event) => mainLizmap.selectionTool.bufferValue = parseInt(event.target.value)}><span class="add-on">m</span>
</div>
</label>
</div>
<div>
<select class="selection-geom-operator" @change=${ (event) => mainLizmap.selectionTool.geomOperator = event.target.value} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.geomOperator']}">
<option value="intersects">${lizDict['selectiontool.toolbar.geomOperator.intersects']}</option>
<option value="within">${lizDict['selectiontool.toolbar.geomOperator.within']}</option>
<option value="overlaps">${lizDict['selectiontool.toolbar.geomOperator.overlaps']}</option>
<option value="contains">${lizDict['selectiontool.toolbar.geomOperator.contains']}</option>
<option value="crosses">${lizDict['selectiontool.toolbar.geomOperator.crosses']}</option>
<option value="disjoint">${lizDict['selectiontool.toolbar.geomOperator.disjoint']}</option>
<option value="touches">${lizDict['selectiontool.toolbar.geomOperator.touches']}</option>
</select>
</div>
<div class="selectiontool-results" style="padding:2px">${mainLizmap.selectionTool.selectedFeaturesCount > 1 ? lizDict['selectiontool.results.more'].replace('%s', mainLizmap.selectionTool.selectedFeaturesCount) : mainLizmap.selectionTool.selectedFeaturesCount === 1 ? lizDict['selectiontool.results.one'] : lizDict['selectiontool.results.none']}</div>

/**
* Buttons about selection, filtering, and export
* @returns {TemplateResult<1>}

Check warning on line 30 in assets/src/components/SelectionTool.js

View workflow job for this annotation

GitHub Actions / ESLint 🇯‌🇸‌

Missing JSDoc @returns description
* @private
*/
this._toolsActions = () => {
const isFilterDisabled = mainLizmap.selectionTool.selectedFeaturesCount === 0 && mainLizmap.selectionTool.filteredFeaturesCount === 0;

return html`
<div class="selectiontool-actions">
<div class="selectiontool-type-buttons btn-group">
<button type="button" class="selectiontool-type-refresh btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'new' ? 'active' : ''}" @click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'new'} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.type.refresh']}" value="refresh">
<button type="button"
class="selectiontool-type-refresh btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'new' ? 'active' : ''}"
@click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'new'}
data-bs-toggle="tooltip"
data-bs-title="${lizDict['selectiontool.toolbar.action.type.refresh']}" value="refresh">
<i class="icon-refresh"></i>
</button>
<button type="button" class="selectiontool-type-plus btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'add' ? 'active' : ''}" @click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'add'} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.type.plus']}" value="plus">
<button type="button"
class="selectiontool-type-plus btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'add' ? 'active' : ''}"
@click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'add'}
data-bs-toggle="tooltip"
data-bs-title="${lizDict['selectiontool.toolbar.action.type.plus']}" value="plus">
<i class="icon-plus"></i>
</button>
<button type="button" class="selectiontool-type-minus btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'remove' ? 'active' : ''}" @click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'remove'} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.type.minus']}" value="minus">
<button type="button"
class="selectiontool-type-minus btn btn-sm ${mainLizmap.selectionTool.newAddRemoveSelected === 'remove' ? 'active' : ''}"
@click=${() => mainLizmap.selectionTool.newAddRemoveSelected = 'remove'}
data-bs-toggle="tooltip"
data-bs-title="${lizDict['selectiontool.toolbar.action.type.minus']}" value="minus">
<i class="icon-minus"></i>
</button>
</div>
<button type="button" class="selectiontool-unselect btn btn-sm" ?disabled=${mainLizmap.selectionTool.selectedFeaturesCount === 0} @click=${ () => mainLizmap.selectionTool.unselect()} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.unselect']}">
<button type="button" class="selectiontool-unselect btn btn-sm"
?disabled=${mainLizmap.selectionTool.selectedFeaturesCount === 0}
@click=${() => mainLizmap.selectionTool.unselect()} data-bs-toggle="tooltip"
data-bs-title="${lizDict['selectiontool.toolbar.action.unselect']}">
<i class="icon-star-empty"></i>
</button>
<button type="button" class="selectiontool-filter btn btn-sm ${mainLizmap.selectionTool.filteredFeaturesCount !== 0 ? 'active' : ''}" ?disabled=${isFilterDisabled} @click=${ () => mainLizmap.selectionTool.filter()} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.filter']}">
<button type="button"
class="selectiontool-filter btn btn-sm ${mainLizmap.selectionTool.filteredFeaturesCount !== 0 ? 'active' : ''}"
?disabled=${isFilterDisabled} @click=${() => mainLizmap.selectionTool.filter()}
data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.action.filter']}">
<i class="icon-filter"></i>
</button>
<lizmap-selection-invert></lizmap-selection-invert>
${this.hasAttribute('layer-export') ? html`
<div class="btn-group dropup selectiontool-export" role="group" data-bs-toggle="tooltip" data-bs-title="${mainLizmap.selectionTool.isExportable ? '' : lizDict['switcher.layer.export.warn']}">
<button type="button" class="btn btn-sm dropdown-toggle" ?disabled=${ !mainLizmap.selectionTool.isExportable } data-bs-toggle="dropdown" aria-expanded="false">
<div class="btn-group dropup selectiontool-export" role="group" data-bs-toggle="tooltip"
data-bs-title="${mainLizmap.selectionTool.isExportable ? '' : lizDict['switcher.layer.export.warn']}">
<button type="button" class="btn btn-sm dropdown-toggle"
?disabled=${!mainLizmap.selectionTool.isExportable} data-bs-toggle="dropdown"
aria-expanded="false">
${lizDict['switcher.layer.export.title']}
<span class="caret"></span>
<span class="caret"></span>
</button>
<ul class="selectiontool-export-formats dropdown-menu dropdown-menu-right" role="menu">
<li><a href="#" class="btn-export-selection">GeoJSON</a></li>
<li><a href="#" class="btn-export-selection">GML</a></li>
${mainLizmap.selectionTool.exportFormats.map((format) => html`<li><a href="#" class="btn-export-selection">${format}</a></li>`)}
${mainLizmap.selectionTool.exportFormats.map((format) => html`
<li><a href="#" class="btn-export-selection">${format}</a></li>`)}
</ul>
</div>` : ''
}
</div>
</div>
</div>`;
`
}

const mainTemplate = () => {
let selectionResult;
if (mainLizmap.selectionTool.selectedFeaturesCount > 1){
selectionResult = lizDict['selectiontool.results.more'].replace('%s', mainLizmap.selectionTool.selectedFeaturesCount);
} else if (mainLizmap.selectionTool.selectedFeaturesCount === 1) {
selectionResult = lizDict['selectiontool.results.one'];
} else {
selectionResult = lizDict['selectiontool.results.none'];
}

return html`
<div class="selectiontool">
<h3>
<span class="title">
<button class="btn-selectiontool-clear btn btn-sm btn-error btn-link" type="button" @click=${() => mainLizmap.selectionTool.disable()} title="${lizDict['toolbar.content.stop']}">×</button>
<span class="icon-star icon-white"></span>
<span class="text">&nbsp;${lizDict['selectiontool.toolbar.title']}&nbsp;</span>
</span>
</h3>
<div class="menu-content">
<div>${lizDict['selectiontool.toolbar.layer']}</div>
<div>
<select class="selectiontool-layer-list" @change=${ (event) => mainLizmap.selectionTool.allFeatureTypeSelected = event.target.value}>
<optgroup label="${lizDict['selectiontool.toolbar.layers.single']}">
${mainLizmap.selectionTool.layers.map((layer) => html`<option value="${layer.name}">${layer.title}</option>`)}
</optgroup>
<optgroup label="${lizDict['selectiontool.toolbar.layers.multiple']}">
<option value="selectable-visible-layers">${lizDict['selectiontool.toolbar.layers.selectableAndVisible']}</option>
<option selected value="selectable-layers">${lizDict['selectiontool.toolbar.layers.selectable']}</option>
</optgroup>
</select>
</div>
<lizmap-digitizing context="selectiontool" selected-tool="box" available-tools="point,line,polygon,box,freehand" import-export></lizmap-digitizing>
<div class="selectiontool-buffer">
<label><span>${lizDict['selectiontool.toolbar.buffer']}</span>
<div class="input-append">
<input class="input-mini" type="number" min="0" .value="${mainLizmap.selectionTool.bufferValue}" @input=${(event) => mainLizmap.selectionTool.bufferValue = parseInt(event.target.value)}><span class="add-on">m</span>
</div>
</label>
</div>
<div>
<select class="selection-geom-operator" @change=${ (event) => mainLizmap.selectionTool.geomOperator = event.target.value} data-bs-toggle="tooltip" data-bs-title="${lizDict['selectiontool.toolbar.geomOperator']}">
<option value="intersects">${lizDict['selectiontool.toolbar.geomOperator.intersects']}</option>
<option value="within">${lizDict['selectiontool.toolbar.geomOperator.within']}</option>
<option value="overlaps">${lizDict['selectiontool.toolbar.geomOperator.overlaps']}</option>
<option value="contains">${lizDict['selectiontool.toolbar.geomOperator.contains']}</option>
<option value="crosses">${lizDict['selectiontool.toolbar.geomOperator.crosses']}</option>
<option value="disjoint">${lizDict['selectiontool.toolbar.geomOperator.disjoint']}</option>
<option value="touches">${lizDict['selectiontool.toolbar.geomOperator.touches']}</option>
</select>
</div>
<div class="selectiontool-results" style="padding:2px">${selectionResult}</div>
${this._toolsActions()}
</div>
</div>`;
}

render(mainTemplate(), this);

Expand Down
4 changes: 4 additions & 0 deletions assets/src/modules/Digitizing.js
Original file line number Diff line number Diff line change
Expand Up @@ -1182,6 +1182,9 @@ export class Digitizing {
</PolygonSymbolizer>`;
}

/* eslint-disable @stylistic/js/max-len --
* Block of XML
**/
const sld =
`<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:se="http://www.opengis.net/se">
Expand All @@ -1193,6 +1196,7 @@ export class Digitizing {
</FeatureTypeStyle>
</UserStyle>
</StyledLayerDescriptor>`;
/* eslint-enable @stylistic/js/max-len */

// Remove indentation to avoid big queries full of unecessary spaces
return sld.replace(' ', '');
Expand Down
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export default [
}
],
"@stylistic/js/max-len": [
"error", 400, 4], // It's a temporary value, until we fix some.
"error", 350, 4], // It's a temporary value, until we fix some.
"no-prototype-builtins": "off",
"no-undef": "off",
'jsdoc/require-description': 'warn',
Expand Down
Loading

0 comments on commit 2450d75

Please sign in to comment.