Merge pull request #11607 from mike-000/patch-15
Reset attributions control to collapsible when no uncollapsible sources are visible
This commit is contained in:
@@ -66,6 +66,12 @@ class Attribution extends Control {
|
|||||||
this.collapsed_ =
|
this.collapsed_ =
|
||||||
options.collapsed !== undefined ? options.collapsed : true;
|
options.collapsed !== undefined ? options.collapsed : true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.userCollapsed_ = this.collapsed_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
@@ -175,6 +181,7 @@ class Attribution extends Control {
|
|||||||
*/
|
*/
|
||||||
const visibleAttributions = [];
|
const visibleAttributions = [];
|
||||||
|
|
||||||
|
let collapsible = true;
|
||||||
const layerStatesArray = frameState.layerStatesArray;
|
const layerStatesArray = frameState.layerStatesArray;
|
||||||
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
||||||
const layerState = layerStatesArray[i];
|
const layerState = layerStatesArray[i];
|
||||||
@@ -197,12 +204,8 @@ class Attribution extends Control {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
collapsible =
|
||||||
!this.overrideCollapsible_ &&
|
collapsible && source.getAttributionsCollapsible() !== false;
|
||||||
source.getAttributionsCollapsible() === false
|
|
||||||
) {
|
|
||||||
this.setCollapsible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(attributions)) {
|
if (Array.isArray(attributions)) {
|
||||||
for (let j = 0, jj = attributions.length; j < jj; ++j) {
|
for (let j = 0, jj = attributions.length; j < jj; ++j) {
|
||||||
@@ -218,6 +221,9 @@ class Attribution extends Control {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!this.overrideCollapsible_) {
|
||||||
|
this.setCollapsible(collapsible);
|
||||||
|
}
|
||||||
return visibleAttributions;
|
return visibleAttributions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,6 +271,7 @@ class Attribution extends Control {
|
|||||||
handleClick_(event) {
|
handleClick_(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.handleToggle_();
|
this.handleToggle_();
|
||||||
|
this.userCollapsed_ = this.collapsed_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -300,7 +307,7 @@ class Attribution extends Control {
|
|||||||
}
|
}
|
||||||
this.collapsible_ = collapsible;
|
this.collapsible_ = collapsible;
|
||||||
this.element.classList.toggle('ol-uncollapsible');
|
this.element.classList.toggle('ol-uncollapsible');
|
||||||
if (!collapsible && this.collapsed_) {
|
if (this.userCollapsed_) {
|
||||||
this.handleToggle_();
|
this.handleToggle_();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -313,6 +320,7 @@ class Attribution extends Control {
|
|||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
setCollapsed(collapsed) {
|
setCollapsed(collapsed) {
|
||||||
|
this.userCollapsed_ = collapsed;
|
||||||
if (!this.collapsible_ || this.collapsed_ === collapsed) {
|
if (!this.collapsible_ || this.collapsed_ === collapsed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user