()
| 1079 | } |
| 1080 | } |
| 1081 | whenReady() { |
| 1082 | return new Promise((resolve, reject) => { |
| 1083 | let interval, failureTimer, ready; |
| 1084 | switch (this.rel.toLowerCase()) { |
| 1085 | // for some cases, require a dependency check |
| 1086 | case 'tile': |
| 1087 | case 'image': |
| 1088 | case 'features': |
| 1089 | ready = '_templatedLayer'; |
| 1090 | if (this.disabled) resolve(); |
| 1091 | break; |
| 1092 | case 'style': |
| 1093 | case 'self': |
| 1094 | case 'style self': |
| 1095 | case 'self style': |
| 1096 | ready = '_styleOption'; |
| 1097 | break; |
| 1098 | case 'query': |
| 1099 | ready = 'shadowRoot'; |
| 1100 | if (this.disabled) resolve(); |
| 1101 | break; |
| 1102 | case 'alternate': |
| 1103 | ready = '_alternate'; |
| 1104 | break; |
| 1105 | case 'stylesheet': |
| 1106 | if (this.type === 'application/pmtiles+stylesheet') { |
| 1107 | ready = '_pmtilesRules'; |
| 1108 | } else { |
| 1109 | ready = '_stylesheetHost'; |
| 1110 | } |
| 1111 | break; |
| 1112 | case 'zoomin': |
| 1113 | case 'zoomout': |
| 1114 | case 'legend': |
| 1115 | case 'license': |
| 1116 | resolve(); |
| 1117 | break; |
| 1118 | default: |
| 1119 | resolve(); |
| 1120 | break; |
| 1121 | } |
| 1122 | if (this[ready]) { |
| 1123 | resolve(); |
| 1124 | } |
| 1125 | interval = setInterval(testForLinkReady, 300, this); |
| 1126 | failureTimer = setTimeout(linkNotDefined, 1000); |
| 1127 | function testForLinkReady(linkElement) { |
| 1128 | if (linkElement[ready]) { |
| 1129 | clearInterval(interval); |
| 1130 | clearTimeout(failureTimer); |
| 1131 | resolve(); |
| 1132 | } else if (!linkElement.isConnected) { |
| 1133 | clearInterval(interval); |
| 1134 | clearTimeout(failureTimer); |
| 1135 | reject('map-link was disconnected while waiting to be ready'); |
| 1136 | } |
| 1137 | } |
| 1138 | function linkNotDefined() { |
no outgoing calls
no test coverage detected