{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":39966993,"defaultBranch":"main","name":"Web-Map-Custom-Element","ownerLogin":"Maps4HTML","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-07-30T18:50:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13320751?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714395576.0","currentOid":""},"activityList":{"items":[{"before":"7e92010f58ff0f9856a481b8b6ba7e3e244ec2f0","after":"bd2201e5a1652bdd5dbb9be9df2001743d4e7958","ref":"refs/heads/main","pushedAt":"2024-04-29T12:58:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update version to 0.13.3","shortMessageHtmlLink":"Update version to 0.13.3"}},{"before":"ed7a763d3da9a1344e7f187ea275c8e9cc27ea61","after":"7e92010f58ff0f9856a481b8b6ba7e3e244ec2f0","ref":"refs/heads/main","pushedAt":"2024-04-29T12:22:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update map-feature.getFallbackCS() (#961)\n\nRemove 'meta' option for showPaginationFeature.\r\nAdd meta array property to each feature that is\r\nreturned by a query. The meta array points\r\nto an array of elements that were\r\nretrieved from the query response document.\r\nThese are appended to the shadow root\r\nfor each pagination feature, which might be a\r\nbit inefficient but will not give incorrect results.\r\n\r\nMake it so that .getMeta looks for\r\nname=cs type metas.\r\n\r\nAdd queryFeatureCSFallback test","shortMessageHtmlLink":"Update map-feature.getFallbackCS() (#961)"}},{"before":"48c03720fbe360d9c4a9db6a378cf51e509604e6","after":"4e162b916f7629baa849118de4937555cc6ada88","ref":"refs/heads/gh-pages","pushedAt":"2024-04-17T18:36:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Remove JavaScript dependencies for JS Naked Day js-naked.org","shortMessageHtmlLink":"Remove JavaScript dependencies for JS Naked Day js-naked.org"}},{"before":"f2bd758b8f5f0975776e8100a8561b29ab80cecb","after":"48c03720fbe360d9c4a9db6a378cf51e509604e6","ref":"refs/heads/gh-pages","pushedAt":"2024-04-12T21:17:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update blog post for JS Naked day 2024-04-24","shortMessageHtmlLink":"Update blog post for JS Naked day 2024-04-24"}},{"before":"d2f7bec828e4875464f97276d5fb423ba57ee733","after":"ed7a763d3da9a1344e7f187ea275c8e9cc27ea61","ref":"refs/heads/main","pushedAt":"2024-04-10T17:31:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update version to 0.13.1","shortMessageHtmlLink":"Update version to 0.13.1"}},{"before":"263d14aa4e6291aecda4eee732c334b7b9aeaeed","after":"d2f7bec828e4875464f97276d5fb423ba57ee733","ref":"refs/heads/main","pushedAt":"2024-04-10T16:57:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Fix issue #935 (#954)\n\n* Fix issue #935\r\n* Add test / test data for map-extent issue. Closes #935\r\n* Fix Layer reordering bug. closes #955\r\nUpdate LayerControl._layers object which was being neglected and not being updated. Added a line to properly sort the layerControl based on the MapML Layer zIndex.\r\n* Update call to sortFunction in copied / locally modified LayerControl.\r\n_update function to use the options.sortFunction if present. tbd:\r\nif this should be offered via PR to upstream project.\r\n* Add test for re-order bug #955\r\n\r\n---------\r\n\r\nCo-authored-by: AliyanH ","shortMessageHtmlLink":"Fix issue #935 (#954)"}},{"before":"8c5b13e876f5469723c0ac94b03188e28264279c","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/express-4.19.2","pushedAt":"2024-04-03T21:13:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"929cf19a2781a5d35ec7013549c60a13962f9eb7","after":"263d14aa4e6291aecda4eee732c334b7b9aeaeed","ref":"refs/heads/main","pushedAt":"2024-04-03T21:13:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Bump express from 4.18.2 to 4.19.2 (#948)\n\nBumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.\r\n- [Release notes](https://github.com/expressjs/express/releases)\r\n- [Changelog](https://github.com/expressjs/express/blob/master/History.md)\r\n- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: express\r\n dependency-type: direct:development\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump express from 4.18.2 to 4.19.2 (#948)"}},{"before":"2a6296e15c4b857badd1fc1288c37e9c3d6d79c8","after":"929cf19a2781a5d35ec7013549c60a13962f9eb7","ref":"refs/heads/main","pushedAt":"2024-04-03T20:43:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Fix issue #952 (#953)\n\nSkip flaky-on-gh-actions-only tests altogether (ran locally fine)","shortMessageHtmlLink":"Fix issue #952 (#953)"}},{"before":"a76c81694f83229dc079e9203bcb59580cb0019e","after":"2a6296e15c4b857badd1fc1288c37e9c3d6d79c8","ref":"refs/heads/main","pushedAt":"2024-04-03T20:12:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"AliyanH","name":"Aliyan Haq","path":"/AliyanH","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55751566?s=80&v=4"},"commit":{"message":"observe and deal with map-style mutations (#951)","shortMessageHtmlLink":"observe and deal with map-style mutations (#951)"}},{"before":"b85e80d3ae4d9fd655dd59cdd7d7ba929cb3a2a0","after":"a76c81694f83229dc079e9203bcb59580cb0019e","ref":"refs/heads/main","pushedAt":"2024-04-03T00:40:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Fix excess execution of fetch (#938)\n\n* Fix excess execution of fetch on invalid url derived from tile\r\ncoordinates that are out of bounds\r\n\r\nFix malformed layer- element in index.html\r\n\r\nAdd test TemplatedMapMLTileLayer.test.js.\r\nCloses #936\r\n\r\n* Separate popupTabNavigation.test.js and layerContextMenuKeyboard.test.js\r\nfrom the rest of the tests, to see if they will deflake this way","shortMessageHtmlLink":"Fix excess execution of fetch (#938)"}},{"before":"a285b04c815a806060b317cd21058a80dc38379d","after":"b85e80d3ae4d9fd655dd59cdd7d7ba929cb3a2a0","ref":"refs/heads/main","pushedAt":"2024-04-03T00:03:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update ci-testing.yml\n\nJust run the flaky tests","shortMessageHtmlLink":"Update ci-testing.yml"}},{"before":"237992502e4674eb93da3fc66ae8147a75698aff","after":"a285b04c815a806060b317cd21058a80dc38379d","ref":"refs/heads/main","pushedAt":"2024-04-01T00:14:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Revert changes to ci-testing.yml","shortMessageHtmlLink":"Revert changes to ci-testing.yml"}},{"before":"18ba67e6ca106aab82286bdf5da346038583785f","after":"237992502e4674eb93da3fc66ae8147a75698aff","ref":"refs/heads/main","pushedAt":"2024-04-01T00:09:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update mapml-viewer to be shadow host-compatible (#950)\n\n* Update mapml-viewer to be shadow host-compatible\r\n\r\n* Update ci-testing.yml\r\n\r\nFocus on getting flaky tests to pass","shortMessageHtmlLink":"Update mapml-viewer to be shadow host-compatible (#950)"}},{"before":null,"after":"8c5b13e876f5469723c0ac94b03188e28264279c","ref":"refs/heads/dependabot/npm_and_yarn/express-4.19.2","pushedAt":"2024-03-28T17:44:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump express from 4.18.2 to 4.19.2\n\nBumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.\n- [Release notes](https://github.com/expressjs/express/releases)\n- [Changelog](https://github.com/expressjs/express/blob/master/History.md)\n- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)\n\n---\nupdated-dependencies:\n- dependency-name: express\n dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump express from 4.18.2 to 4.19.2"}},{"before":"9f3958629fa0db67df5b96a892ce96992226e9c5","after":"18ba67e6ca106aab82286bdf5da346038583785f","ref":"refs/heads/main","pushedAt":"2024-03-27T02:03:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"AliyanH","name":"Aliyan Haq","path":"/AliyanH","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55751566?s=80&v=4"},"commit":{"message":"add condition to verify map-geometry is legit","shortMessageHtmlLink":"add condition to verify map-geometry is legit"}},{"before":"d98971fe9ca7509262956791af6b5911dfd81684","after":"9f3958629fa0db67df5b96a892ce96992226e9c5","ref":"refs/heads/main","pushedAt":"2024-03-23T17:45:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Support for map-link[rel=stylesheet] and map-style in map-extent (#945)\n\n* Support for map-link[rel=stylesheet] and map-style in map-extent\r\n\r\nCloses #944\r\n\r\nAdd sloMo to ArrowKeyNaveContextMenu.test.js\r\n\r\n* De-flake popupTabNavigation, hopefully for good\r\n\r\n---------\r\n\r\nCo-authored-by: prushfor ","shortMessageHtmlLink":"Support for map-link[rel=stylesheet] and map-style in map-extent (#945)"}},{"before":"86bafc1a01bbd59f108e2eae7d491a9e6ca7b247","after":"d98971fe9ca7509262956791af6b5911dfd81684","ref":"refs/heads/main","pushedAt":"2024-03-23T13:17:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update ci-testing.yml","shortMessageHtmlLink":"Update ci-testing.yml"}},{"before":"7817c6c1a768a31963a135b5bf4a314d8f186ee4","after":"86bafc1a01bbd59f108e2eae7d491a9e6ca7b247","ref":"refs/heads/main","pushedAt":"2024-03-15T21:20:15.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Get rid of registry publishing info","shortMessageHtmlLink":"Get rid of registry publishing info"}},{"before":"d94145a985600a48b94d44ec28a9709cc1339b73","after":"7817c6c1a768a31963a135b5bf4a314d8f186ee4","ref":"refs/heads/main","pushedAt":"2024-03-15T14:52:19.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"AliyanH","name":"Aliyan Haq","path":"/AliyanH","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55751566?s=80&v=4"},"commit":{"message":"De-flake layerContextMenuKeyboard.test.js, ArrowKeyNavContextMenu,\nlayerContextMenuKeyboard and popupTabNavigation, hopefully","shortMessageHtmlLink":"De-flake layerContextMenuKeyboard.test.js, ArrowKeyNavContextMenu,"}},{"before":"555988723c950e92f5f8ba170a2239f470e76412","after":"d94145a985600a48b94d44ec28a9709cc1339b73","ref":"refs/heads/main","pushedAt":"2024-03-15T14:22:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Allow svg element for vector tiles to overflow via css overflow: visible (#932)\n\nCloses #929","shortMessageHtmlLink":"Allow svg element for vector tiles to overflow via css overflow: visi…"}},{"before":"58b2b57bbf8fb8b2bf37d01c2bd9be1a67c9e4e2","after":"555988723c950e92f5f8ba170a2239f470e76412","ref":"refs/heads/main","pushedAt":"2024-03-12T19:44:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"- update no-zinger-linux.png with actual linux-generated png (#928)","shortMessageHtmlLink":"- update no-zinger-linux.png with actual linux-generated png (#928)"}},{"before":"610f5e00211876e7ffb8b1bcecdb46e645627b95","after":"58b2b57bbf8fb8b2bf37d01c2bd9be1a67c9e4e2","ref":"refs/heads/main","pushedAt":"2024-03-09T02:23:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"License (#924)\n\n* Update files, broken github badge for testing\r\n\r\n* Add fake badge because github badges are broken\r\n\r\n* Update license, index.html, bump version to next minor rev\r\n\r\n---------\r\n\r\nCo-authored-by: prushfor ","shortMessageHtmlLink":"License (#924)"}},{"before":"8c0a463489b05d1c56c9dbe6e4e9d961a9123e9b","after":"610f5e00211876e7ffb8b1bcecdb46e645627b95","ref":"refs/heads/main","pushedAt":"2024-03-08T21:52:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Badge files (#923)\n\n* Update files, broken github badge for testing\r\n\r\n* Add fake badge because github badges are broken\r\n\r\n---------\r\n\r\nCo-authored-by: prushfor ","shortMessageHtmlLink":"Badge files (#923)"}},{"before":"1f91d7a8e75621c149d1b5e95bd5462e507fd67f","after":"8c0a463489b05d1c56c9dbe6e4e9d961a9123e9b","ref":"refs/heads/main","pushedAt":"2024-03-08T21:29:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update README.md\n\nFix badge","shortMessageHtmlLink":"Update README.md"}},{"before":"194134560116ad7638d4c4a0ba4aadd98953916d","after":"1f91d7a8e75621c149d1b5e95bd5462e507fd67f","ref":"refs/heads/main","pushedAt":"2024-03-08T21:21:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Update files, broken github badge for testing (#922)\n\nCo-authored-by: prushfor ","shortMessageHtmlLink":"Update files, broken github badge for testing (#922)"}},{"before":"6a769c2a7af142c9e42de4e9d24112cd1bb70cab","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/axios-and-jest-playwright-preset-1.6.7","pushedAt":"2024-03-08T20:35:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"8f55bcc456f0094bff367b75fc08e33a5c407bfc","after":"194134560116ad7638d4c4a0ba4aadd98953916d","ref":"refs/heads/main","pushedAt":"2024-03-08T20:35:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prushforth","name":"Peter Rushforth","path":"/prushforth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2437285?s=80&v=4"},"commit":{"message":"Map link custom element implementation (#916)\n\n* Create map-link custom element\r\n\r\n- change map-extent._templatedLayer to map-extent._extentLayer\r\n- add map-extent.getMetaExtent() function to return closest map-meta extent\r\n- add comments where code should be in map-input for moved code from map-extent etc\r\n- get rid of map-link `title` attribute, we think never used\r\n- add comment and methods for map-select custom element in layer control\r\n- move map-select code from map-extent module to map-select.js\r\n\r\n- add comments to attributes to associate them with rel\r\n\r\n- remove call to _initTemplateVars from map-extent connectedCallback;\r\n- set the M.templatedLayer templateVars param to null in map-extent connectedCallback\r\n- work on map-link _initTemplateVars to get partially working\r\n- TODO; revisit how the bounds are established for map-link._templateVars\r\n- prettier formatting...\r\n\r\n- add map-link.getBase() function, relies on / supports map-base which\r\nshould simulate how works for remote content.\r\n- update copyRemoteContentToShadowRoot to copy all children of \r\nto shadow root.\r\n- use parentElement instead of parentExtent in _initTemplateVars, which\r\nallows it to not have to wait on connectedCallback to be runnable\r\n\r\n- change TemplatedLayer to extend LayerGroup\r\n- remove TemplatedLayer templates parameter\r\n- move TemplatedLayer._setupQueryVars to map-link\r\n- get crs option for TemplatedLayer from map-extent units attribute\r\n- move creation of MapMLLayer._properties._queries array from map-extent\r\ninto map-link\r\n- change map-extent._validateDisabled to iterate over querySelectorAll\r\nover child map-links of selected rel values (image,tile,features,query)\r\n- delete map-extent.redraw method, corresponding TemplatedLayer.redraw;\r\nthat was needed to redraw the layer when the map-select change event\r\nhappened. TODO we need to migrate that to map-select.\r\n- create map-link.mapEl property during connectedCallback\r\n\r\n- create map-link.getExtent that incorporates (refactors move + rename\r\nof) M._extractInputBounds(...)\r\n- create and use map-link.whenReady() for content links. Used by\r\nmap-extent._calculateBounds when iterating child links.\r\n\r\n- create private _getZoomBounds(zoomInput) that is used during template\r\n/ element initialization\r\n- create public getZoomBounds() which reads the bounds from the result\\\r\nof the above _getZoomBounds(zoomInput), but doesn't require to sift\r\nthrough the inputs for linked/non-linked zoom input that might not exist\r\n- simplify boundsFallback field of _templateVars; remove object props,\r\nreturn simple L.Bounds object type\r\n- add map-link._validateDisabled function which is used by\r\nmap-extent._validateDisabled()\r\n- refactor map-extent._calculateBounds to use new map-link.getBounds and\r\nmap-link.getZoomBounds API methods\r\n- update TemplatedTileLayer - pass zoomBounds and extentBounds as\r\nrequired options\r\n\r\nWIP: add the linkEl.templatedLayer to the\r\nextentLayerGroup when it is initialized;\r\nadd leaflet.LayerGroup's prototyped initialize function call\r\nto properly init extentLayerGroup; add image as fallback\r\nlinkEl.type if no type attribute is specified\r\n\r\n- non-functional source change: don't use L.extend(options, {}) when\r\nunnecessary, just pass the options\r\n\r\n- Refactor TemplatedImageLayer:\r\n- replace isVisible property with isVisible methods that will be\r\ninvoked during validateDisabled process\r\n- add MapExtent.whenLinksReady, use it in Layer._validateDisabled\r\n- remove MapmlLayer._imageLayer\r\n- add leaflet FeatureGroup.prototype.initialize\r\nfunction call in FeatureLayer.js\r\n\r\n- make TemplatedTileLayer use minZoom,minNativeZoom,maxZoom,maxNativeZoom\r\ncalculated and stored as map-link._templateVars.zoomBounds property,\r\ninstead of calculating and usin those values itself (remove duplication)\r\n- add .zoom property to map-link._templateVars for use by\r\nTemplatedTileLayer (that layer was doing that itself before breaking\r\nreadability and source code coherence).\r\n- remove creation of _templateVars.zoom by TemplatedTileLayer\r\n._setUpTileTemplateVars initialize sub-process\r\n- use map-input[type=zoom].initialValue via\r\n_templateVars.zoom.initialValue when calculating (creating)\r\n_templateVars.pcrs.bounds property during TemplatedTileLayer\r\n._setUpTileTemplateVars initialize sub-process\r\n- create map-link._templateVars.inputsReady Promise-valued property\r\nwhich returns the Promise.allSettled(child-map-inputs) value\r\n- make map-link.connectedCallback wait on _templateVars.inputsReady\r\npromise before using map-input[type=zoom].initialValue\r\n- move creation of map-input[type=zoom].initialValue property into\r\nmap-input.connectedCallback to avoid map-input.whenReady() promise\r\nchain for attributChangedCallback on value attribute which prevented\r\nmap-input[type=zoom].initialValue from being available even though the\r\nmap-input was ready for use\r\n\r\n- Revert deletion of TemplatedTileLayer.options.minZoom,.maxZoom,\r\n.minNativeZoom,..maxNativeZoom\r\n\r\n- Get map-select quasi working (at least, add it to the layer control)\r\n\r\nTemplatedFeaturesLayer:\r\n\r\n- Temporary fix for map-link.getFallbackBounds by adding projection as parameter\r\n- Get map-select working better\r\n- Create remote templated features in the shadow root of map-link (instead\r\nof map-extent)\r\n- Add TemplatedLayer.redraw function in order to delegate map-select\r\nchange event handling across templated layers that may share the variable\r\n\r\nmap-link[rel=query]:\r\n\r\n- get rid of MapMLLayer.queryable property, replace with dynamic\r\nlayer-.queryable() method, which looks for map-link[rel=query] and\r\nother properties that determine if a layer is queryable\r\n- create shadowRoot in linkEl for queried features\r\n- remove shadowRoot from extentEl, since it no longer needs it\r\n- MapMLLayer.getQueryTemplates radically simplified\r\n- map-feature now uses shadow root of map-link, not map-extent\r\n\r\n- change the order of defines for map-input and map-select, so that\r\nthey have parentElement.whenReady available to them when booting up.\r\n\r\n- delete MapMLLayer._imageContainer\r\n\r\n- layer-.queryable only considers a map-link[rel=query]\r\nif it is in a layer-[checked] in a map-extent[checked]\r\n- update map-link.getBase to use the (resolved) layer-.src as a base\r\nagainst which to resolve any map-base.href, unless it's in local\r\ncontent, in which case it uses the map-link.baseURI value as base to\r\nresolve against\r\n- restore erroneously removed check for query location to be within\r\nbounds of the queryable link\r\n- ensure that the TemplatedLayer.onAdd and .onRemove CALL THE INHERITED\r\nMETHOD OF THE SAME NAME INSTEAD OF SIMPLY OVERRIDING THAT FUNCTION\r\nThis was the cause of much confusion!\r\n\r\n- add getMapEl(), getLayerEl() API to map-link\r\n- add mapEl reference to options for FeatureLayer wherever created\r\n- update TemplatedFeaturesLayer, TemplatedTileLayer, TemplatedImageLayer\r\nFeatureLayer .isVisible method so that it doesn't require the layer to be on the\r\nmap when it is run; will use reference to mapEl._map in order to run\r\n- update DebugOverlay to use linkEl reference to get layerEl ref\r\n\r\n- delete map-link._templateVars.boundsFallbackPCRS, unused, problematic\r\n- change implementation of map-link.getBounds() to use getFallbackBounds\r\nwhen necessary, which gets those bounds from the CRS. map-link.getBounds()\r\nis called during connectedCallback, so usually the CRS is defined by then.\r\n- make map-extent.units getter fall back to M.FALLBACK_PROJECTION if no units\r\nattribute is present\r\n\r\n- add 'zoomchangesrc' internal event which can happen during zoom\r\nanimations and when the layer is added to the map. Like its name\r\nsuggests, it changes the layer-.src when called upon based on presence\r\nof map-link rel=zoom(in|out), changing the source of the layer as\r\nrequired\r\n- small change to FeatureLayer.onAdd to use the passed map parameter\r\n- get rid of duplicate options.zoomBounds info on Templated(Content)Layer\r\n\r\n- re-write logic of map-link.getMapEl and map-link.getLayerEl\r\n- create _createSelfOrStyleLink() function from part of logic from\r\nMapMLLayer.getAlternateStyles... the part that applies to a single\r\nlink (generates an option for it).\r\n- re-code / generalize map-link.whenReady so that it works according\r\nto the rel value of the link\r\n- move MapMLLayer.getAlternateStyles() to layer-.getAlternateStyles(links)\r\n- call it from createLayerControlForLayer\r\n- try to wrap layer control generation in layer-.connectedCallback in a\r\npromise for links being ready when generating the layer control.\r\nFormerly, they didn't have to be ready, just the markup had to be\r\navailable. To be continued...\r\n\r\n- working on getting layer control HTML to be part\r\nof defining whenReady() for layer... tbd, seems never created!\r\n\r\n- layer.js: probably want to keep: return shadowRoot from then, not resolve it\r\n- map-link.js: use L.stamp on just-created div instead of layer, will\r\nmake it more whenReady-independent, if it works\r\n- map-link.js bind changeStyle listener to layer element; use\r\naddEventListener instead of L.on\r\n- comment out _createLicenseLink() for now, reduce console noise\r\n- createLayerControlForLayer.js: correct typo that meant the styles\r\nfieldset was not available or being appended to with self style etc links\r\n\r\n- get map-link.getLayerControlOption() working for templated links\r\n- make layer-.connectedCallback wait on map-link.whenReady()\r\n- add layer-._layerControlHTML to whenReady criteria for readiness\r\n\r\n- add extentsReady as a criteria for layer initialization to proceed.\r\nthe problem encountered is that the `checked` attr. change callback\r\ndoes a layer-.whenReady() which happens much earlier and doesn't take\r\ninto account the extents' readiness, so some properties of _extentLayer\r\naren't set up when the layer-._layer is added to the map, resulting in\r\nconsole errors.\r\n- the MapMLLayer.copyContentToShadowRoot method was setting the href\r\nattribute of map-link elements erroneously. Remove that code,\r\nreplaced the map-link.href getter with a better approach.\r\n- remove code from MapMLLayer that sets up the zoomin/zoomout links,\r\nmove it to map-link href getter, essentially.\r\n- change MapMLLayer._validateLayerZoom() to use map-link, and\r\nnot _properties.zoomin / zoomout\r\n- comment out map-link._createZoominOrZoomoutLink() since it isn't\r\nnecessary (perhaps), being handled by the href getter.\r\n\r\n- move copyRemoteContentToShadowRoot from MapMLLayer to layer.js\r\n- remove parentLayer.whenReady() from map-extent.connectedCallback\r\n- add parentLayer.whenReady() to map-extent.attributeChangedCallback\r\nfor `checked` and `hidden`\r\n- remove _leafletLayer option from construction of TemplatedLayer\r\n- move access to _layer pane from TemplatedLayer initialize option to\r\nonAdd\r\n- eliminate use of map-extent._DOMnode by map-extent and TemplatedLayer,\r\nuse only map-extent (this) element itself\r\n- refactor map-extent._projectionMatch() to use the mapEl._map.options.projection\r\nvalue instead of that value passed via the MapMLLayer.options.mapprojection\r\n- update MapMLLayer.selectMatchingAlternateProjection() to use the version\r\nof mapml content that is saved to shadowRoot, which is now sort of\r\nunstructured, similar to the way it's expected to be as local content\r\nof the element.\r\n\r\n- move attributeChangedCallback\r\n- select matching alternate projection in fetching of layer.js\r\n- modify copyRemoteContentToShadowRoot to use documentFragment, to move\r\nall elements to shadowRoot at once\r\n- add getBase + selectMatchingAlternateProjection + getProjection method for layer.js\r\n- map-input, remove dependency from _layer\r\n- map-link - add temporary _createAlternateLink(), not being USED\r\n- QueryHandler.js - replace layer._properties with alternate\r\n\r\n- MapMLLayer - move out getProjection, selectMatchingAlternateProjection(),\r\ndetermineLayerProjection() to layer.js\r\n- MapMLLayer - get rid of properties object\r\n\r\n- refactor promise resolution on mapml-viewer.attributeChangedCallback\r\nfor `projection`. (To Do: do same to web-map).\r\n- remove call to mapml-viewer._updateMapCenter() from _map event listeners for:\r\n'move','movestart','zoom','zoomstart' (To Do: do same to web-map)\r\n- remove MapMLLayer.copyRemoteContentToShadowRoot\r\n- update map-input getters for min, max\r\n- update layer-.extent getter tbd if it breaks tests, but it avoids some\r\nproblems with the layer not being ready\r\n\r\n- update layer.-src attributeChangedCallback to not do side effects on\r\nfirst pass through lifecylcle callback for remote layer (with src).\r\n- refactor / rename layer-.selectMatchingAlternateProjection to\r\nselectAlternateOrChangeProjection. Make it throw when condition(s)\r\ndetected, use it on both remote **and local** content (new behaviour).\r\n\r\n- add layer.#hasConnected private so that can avoid attributeChangedCallback\r\ncalls queued by browser on upgrade etc. Allows to remove individual\r\nthis.whenReady() calls and consequent microtask queue enlargement\r\n- remove use of inducing layer.connectedCallback by the\r\nlayer.src.attributeChangedCallback - only do the side effects which\r\nmeans calling the functions that layer.src.connectedCallback calls,\r\nseems to prevent inadvertent duplication of content in layer.shadowRoot\r\n- per advice from HTML Standard, create layer.shadowRoot in constructor\r\nas well as initialization of opacity.\r\n- unconditionally purge layer.shadowRoot during onRemove\r\n- move selectAlternateOrChangeProjection() to after copying content\r\nto shadow root, insert into next then in promise chain which waits\r\non all that contents' whenReady() to settle which can only be done\r\nthere because it needs access to the map-link.getBase() instance\r\nfunction to determine the correct URL to load, which isn't a function\r\nuntil the map-link and all its \"sibling\" content becomes ready.\r\n- add changeprojection messaging to fetch catch block, but don't call\r\nit a \"_fetchError\" because that's confusing (not really a fetch error).\r\nAlso, the overall promise should fulfill, just not until after changing the src\r\nor mapml-viewer.projection as selected.\r\n- get rid of copy of getBase() on layer, which was cut-and-pasted from\r\nmap-link, and can't work on layer because the document context of\r\nthe map-link is element instance-based and not available to layer.\r\n- remove the parameter from layer.getProjection(), make it detect whether\r\nthe content is remote (.src exists, so .shadowRoot should contain stuff)\r\n- change other stuff that relies on layer.shadowRoot to use layer.src\r\nto detect if layer *should* have a shadowRoot\r\n- make map-link.whenReady() reject if rel=alternate but no href nor\r\nprojection\r\n- attempt to map-link.whenReady() to reject with message when await\r\nused on parentExtent.whenReady() and _templateVars.inputsReady\r\n\r\n- validate and update map-link.getBounds(), map-link.getFallbackBounds()\r\n- add map-link.media attribute, with the idea of prototyping `prefers-map-content`\r\nproposed media feature\r\n- update layer on one side of connectedCallback to show where handling\r\nof map-link.media attribute may go see layer-.checkForPreferredContent()\r\n- add and use #hasConnected field to map-extent\r\n- tentatively add mapml-viewer._map.options.minZoom, .maxZoom to allow\r\nmap to use all zoom levels in crs\r\n- update TemplatedTileLayer.initialize to remove .options.zoomBounds\r\nproperty which is / would be information triplication (already have\r\nTemplatedTileLayer.zoomBounds, .options.minZoom etc, don't need a third)\r\n\r\n- add media attribute to map-link, work towards media query support for\r\nprefers-map-content\r\n- re-organize promise then/catch for fetches\r\n- adopt consistent style of detecting projection, prefers-map-content\r\netc to throw during loading, triggering src changes\r\n\r\n- Convert MapMLLayer to a Layer group + map-feature independence\r\n- layer- mutation observer to initialize map-features\r\n- move validateLayerZoom from MapMLLayer -> layer-, and move to validateDisabled, removed from zoomAnim handler\r\n- remove zoom-in/zoom-out workaround for map projection change #2553\r\n- remove map-feature's dependency on MapMLLayer, to create it's own layer independently\r\n- map-feature - rerender feature on min, max, zoom attributes\r\n- queryHandler no longer appends directly to the map, appends itself to mapmlvectors\r\n- for templatedFeatures - we move everything from the mapml file's head and body to the shadowroot of map-link\r\n- layer- always has a shadowRoot, but it is not always used - used based on src attribute\r\n- map-extent handleChange is not dependent on the parentLayer.checked\r\n\r\n- adapt FeatureLayer so that it doesn't expect feature data\r\nduring initialization. Change options.static to be options.tiles and\r\nlet it be false by default: FeatureLayer is used only for its addData\r\nfunction by TemplatedTileLayer, in which case and only in that case\r\noptions.tiles is passed as true;\r\n\r\n- adapt TemplatedTileLayer only uses M.featureLayer for access to\r\nthe addData function, which it now calls once for each feature found\r\nin the fetched MapML vector tile response; map-feature elements are not\r\nadded to the DOM for each feature, only their geometry is rendered as\r\nSVG and elements.\r\n\r\n- adapt TemplatedFeaturesLayer - remove use of options.static which now\r\nhas a default of false\r\n\r\n- remove use of M.featureLayer.options.static by MapMLLayer._mapmlvectors,\r\nbecause it now has a default of false (and is more correctly called\r\noptions.tiles).\r\n\r\n- remove QueryHandler.featureLayer.options.static, because that option\r\nis false by default and has been renamed to options.tiles\r\n\r\n- update map-feature to extend the bounds of the M.featureLayer to which\r\nit is added, since the bounds of the Leaflet layers are harvested to\r\ncalculate the extent / bounds of the parent element.\r\n\r\n- add console log of document that causes parser error, useful for\r\ndebugging in geoserver query layers, which serves errors as xml documents\r\n\r\n- change layer-.zoomTo() use of whenElemsReady() to use this.whenReady()\r\nbecause the layer is only ready after the elements are ready, so\r\nwhenElemsReady() doesn't wait long enough in some cases.\r\n\r\n- add M.geometry.layerBounds and M.geometry.zoomBounds via passed options\r\nof the same name. Necessary so that the M.featureLayer._layers hash\r\ntable has a value of these properties for every layer it holds, which\r\nis necessary when setting the bounds of the overall \r\n\r\n- make map-feature getters for zoom,min, max return fallback values if\r\nthe attribute isn't set\r\n\r\n- map-feature disconnectedCallback can happen when ancestor elements\r\nare disconnected, which may have cleaned up resources used by map-feature,\r\nso the disconnectedCallback should test if they've been dealt with\r\nalready and not throw errors if so.\r\n\r\n- rename-refactor M.FeatureLayer.addData to M.FeatureLayer.renderToLeaflet\r\n\r\n- fix bug in map-feature._updateExtent (used non-uppercased comparison\r\nfor tagName value, which returns uppercase always)\r\n\r\n- add map-feature.extent.zoom property to match that of layer-.extent\r\n\r\n- add map-feature.getMeta API which returns the appropriate map-meta\r\nelement in the ancestors of the map-feature, if any\r\n\r\n- update M.FeatureLayer:\r\n\r\n- add addLayer(layerToAdd) which conforms to L.LayerGroup API\r\n- update removeLayer(layerToRemove) to maintain internal structures of\r\nM.FeatureLayer, including .layerBounds, .zoomBounds and ._layers\r\n- make removeLayer return this, conforming to L.LayerGroup API\r\n\r\n- refactor geometryToLayer to tag it as 'private': _geometryToLayer\r\n\r\n- when feature is queried or static, we need to extend the M.featureLayer\r\nlayerBounds and zoomBounds\r\n\r\n- for QueryHandler:\r\n\r\n- synthesize a for all features returned by\r\nquery if they do not posses a . Uses :has() because this\r\nwas recently deemed fit for use across browsers, with FF 121\r\n\r\n- change approach to parsing: text/mapml documents are handled the same\r\nway, but mapml documents returned under a different media type should\r\nget handled ok. text/html documents will get parsed and appended to\r\na synthesized map-feature>map-properties element, which should display\r\nthem as parsed HTML. Other text documents or unrecognized stuff will\r\ndisplay as text in the popup, hopefully.\r\n\r\n- Updated DebugOverlay: make access to options._leafletLayer conditional\r\non its existence, because it is actually iterating leaflet layers on the\r\nmap and some of them are debug overlay artifacts and don't have a\r\n_leafletLayer (if _leafletLayer is taken to mean an \"M.MapMLLayer\"\r\ninstance) tbd\r\n\r\naxisInferring.test.js\r\n\r\n- update map-feature.js - when calculating extent, don't use the zoom\r\n fallback value unless no zoom attribute exists. map-feature.zoom\r\n looks for map-meta in the parentage of the element, but falls back\r\nto the projection, which is not suitable for calculating extents when\r\nthe coordinates require a zoom value for calculation\r\n\r\n- rename M.getBounds to M.getBoundsFromMeta\r\n\r\n- add map-meta[name=extent]-based bounds as default layer bounds for\r\nMapMLLayer._calculateBounds, so that map-meta, _mapmlvectors,\r\nstatic tiles and map-extent -generated bounds are additive\r\n\r\n- update Util.pointToPCRSPoint and Util.boundsToPCRSBounds logic so\r\nthat zoom parameter is optional for points that don't require a zoom\r\nto transform i.e. gcrs to pcrs, pcrs to pcrs don't need a zoom value\r\n\r\n- update Util.getBoundsFromMeta to throw where it is invoked without\r\na zoom where a zoom value is required to convert coordinate system\r\ni.e. tile,tcrs,tilematrix\r\n\r\n- remove fallback cs from Util.getBoundsFromMeta since it could be\r\nwrong\r\n\r\n- remove fallback to zoom = 0 where zoom parameter is not provided,\r\nthrow instead where it could cause a problem\r\n\r\n- update axisInferring.html and .test.js. Add (commented) features\r\nthat represent the bounding box of the map-meta[name=extent], for\r\ndebugging purposes\r\n\r\n- update the expectations to expect that the extents of the layers\r\ninvolved should include the map-meta[name=extent] bounds AND the\r\ncontents of the layers.\r\n\r\nFix Layer zoomBounds\r\n- Fix zoomBounds initialization in FeatureLayer.js removeLayer, as\r\nan empty object is truthy\r\n- MapMLLayer.js - CalculateBounds() extend zoombounds for staticTileLayer\r\nand mapmlvectors\r\n\r\n- update tests to instead of using the old _templatedLayer, to use\r\n_extentLayer (renamed).\r\n\r\n- update multipleExtentsOpacity.test to slow it down a little, also\r\nsimplify selector for assertion that may have been taking too long\r\nto evaluate\r\n\r\n- Add grunt 'geoserver' task which copies the viewer to the geoserver\r\nMapML extension 'widget' directory. Could be improved, as it clobbers\r\nthe license headers in each of the geoserver copies of the file.\r\n\r\n- fix kbdAttribution.test.js, add timeout\r\n- temporarily add test-results.txt for reference of what's failing\r\n\r\n- fix markup in featureIndexOverlay.html which used XML self-closing\r\nsyntax for , resulting in incorrect parentElement.\r\n\r\n- change '/>' to '>' and close tag where applicable in test/*.html\r\nwhere applicable\r\n\r\n- fix thrown error during layerContextMenu.test.js due to untested\r\nmap-tile refactoring\r\n\r\n- synchronize applicable diff/updates mapml-viewer.js -> web-map.js\r\n- update a few things to get mapContextMenu.test.js passing\r\n\r\n- fix mapElement.test.js\r\n\r\nDynamic layer bounds/zoombounds:\r\n- layer.js - layercontrol / Hidden API + controls API bug fix\r\n- map-extent.js - calculateBounds - finish implementation for zoombounds (naitiveZoom)\r\n- map-feature.js - min/max API - integrate search for map-meta zoom - bug fix\r\n- Util.js\r\n- add a new function -> getZoomBoundsFromMeta\r\n- Revert truncation of extent tcrs and Tilematrix coordinates\r\n- Reverted tests - axisInferring.test.js, mapContextMenu.test.js, mapElement.test.js,\r\n- FeatureLayer.js\r\n- rename renderToLeaflet->createGeometry and _resetFeatures->_validateRendering\r\n- addLayer - maintain featuresList - moved from createGeometry + recalculates bounds/zoomBounds\r\n- addRendering/removeRendering - new function to only add/remove geometries from DOM/Leaflet, without recalculating bounds, etc.\r\n- removeLayer - remove feature from featureslist + recalculate bounds/zoomBounds\r\n- _validateRendering -> refactor function variable names\r\n- MapMLLayer.js\r\n- _calculateBounds - change algorithm to incorporate map-meta and (_staticTileLayer, _mapmlvectors, _extentlayer) to be add together, add same functionality for zoombounds\r\n- _calculateBounds - merge the _mapmlvectors and _staticTileLayer blocks into one block\r\n- _calculateBounds - zoombounds and bounds are not treated independently\r\n- _calculateBounds - extend zoombounds for _staticTileLayer and _mapmlvectors\r\n- mapFeature.data.js - add zoom object to reflect code\r\n- mapFeature.test.js - rename use of private property which was changed from _featureGroup -> _geometry\r\n\r\n- add map-feature._initialZoom, which captures the zoom of the map\r\nwhen the feature is first connected. Used by getter for zoom instead\r\nof map-meta or projection zoom for static features only.\r\n\r\n- refactor rename map-feature.getMaxZoom() to getZoomToZoom()\r\n\r\n- change mapFeature test data (expectations) so that the map-feature\r\ndefault zoom value for no-zoom-attribute static features is that of\r\nthe map viewer when the feature is first connected.\r\n\r\n- change mapFeature.test expectations around zooming to the bounds of\r\na map-feature that has no zoom attribute - now it will zoom to the\r\nzoom value or pretty close to the zoom value of the map when the\r\nfeature was first connected (the bounds of a point feature is based\r\non the size of a tile at the zoom level of its zoom value, so\r\ndepending on the size of the map it might zoom to a lower zoom than\r\nthat of the point when it was connected).\r\n\r\n- eliminate \"fallbackZoom\" method and argument for creating geometry.\r\nFeatureLayer factory method createGeometry uses map-feature.zoom now\r\n\r\n- FeatureLayer._validateRendering checks to see if the layer is on\r\nthe map\r\n\r\n- geometry _checkRender() now uses map-feature.zoom instead of\r\nattribute\r\n\r\n- for map-feature.zoom: in templated features case, eliminate use of\r\nprojection max zoom, use attribute, map-meta.value, .max or else\r\ninitial zoom.\r\n\r\n- for FeatureLayer.isVisible, use .zoomBounds || .options.zoomBounds\r\nand .layerBounds || .options.layerBounds to determine visibility (was\r\nusing only .zoomBounds and .layerBounds, which didn't cover the\r\ntemplated features use case.\r\n\r\n- map-link: add conditions for drag/drop 'data-moving' on ancestor\r\nextent and layer\r\n\r\n- featureLayer\r\n - ensure zoomBounds property has min/maxNativeZoom property which\r\n reflects the min/maxNativeZoom value range of member map-features\r\n - add back a zoom parameter to the createGeometry method, because\r\n it's necessary for templated mapml vector tiles' features for\r\n which the map-feature is discarded and just the rendered geometry\r\n is used; in that case the zoom parameter is used to do coordinate\r\n transformations for the geometry, using the zoom of the tile to\r\n which the feature belongs.\r\n\r\n- globally, remove call to _map._addZoomLimit, replace with _map\r\nevent handler for layeradd, layerremove to call _map.setZoomLimit\r\nwith the zoomBounds for the map at that moment\r\n(assuming mapml-viewer.extent.zoom is kept up to date with layer\r\nchanges. Some layers 'unpacked' their zoomBounds object onto their\r\noptions object via L.extend(options, this.zoomBounds), which added\r\nthe individual properties of zoomBounds to the options object for\r\nthe layer. For subclasses of L.GridLayer, that information was used\r\nto constrain the zoom values to which the map would zoom. That is no\r\nlonger used because of the layeradd/layerremove event handler\r\ndiscussed above, so those statements were globally deleted as well.\r\n\r\n- templatedImageLayer\r\n - get rid of options.minZoom, options.maxZoom (see comment above)\r\n - get rid of _map._addZoomLimit call (see comment above)\r\n\r\n- layer.js\r\n - add else if block for when a fetch fails due to CORS or other\r\n fetchy issues. The block adds a _fetchError flag to the layer so\r\n that whenReady can cut short its timer loop in such a case, as\r\n the tests for bad layer were taking 5 seconds to fail.\r\n\r\n- mapml-viewer.js / web-map.js\r\n - amend the algorithm for extent.min/maxZoom to use the layers'\r\n .extent property instead of the _map.getMin/MaxZoom()\r\n - update _setupEvents; add event handler for layeradd / layerremove\r\n which calls _map.setMin/MaxZoom(zoom) based on the extent.zoom\r\n values for min/maxZoom. The addition of the event handler must\r\n be delayed until whenLayersReady() promise is fulfilled, and\r\n the event handlers themselves must defer handling the event until\r\n the whenLayersReady() promise fulfills (layeradd/layerremove\r\n occur very frequently and don't correlate only to layers\r\n - make disconnectedCallback remove event handlers too\r\n\r\n- QueryHandler.js\r\n - update so that tests pass: there needn't be nodes inside the body\r\n of an HTML response to a query; this may have changed due to a\r\n change in chrome behviour.\r\n\r\n- map-extent.js\r\n - separate handling of bounds zoomBounds, so it's easier to\r\n understand\r\n\r\n- TemplatedTileLayer.js\r\n - add tile.z to call to M.FeatureLayer.createGeometry per comment\r\nabove\r\n - maintain TemplatedTileLayer.options.min/maxZoom, because\r\n L.TileLayer, which this is a subclass of, depends on /requires it\r\n\r\n- map-link.js\r\n - create (empty) _createStylesheetLink() which will need to be\r\n implemented in next commit, as the styleParing test is failing\r\n due to lack of implementation here\r\n\r\n- TemplatedFeaturesLayer.js\r\n - create .zoomBounds, .extentBounds properties, delete options.\r\n zoomBounds, extentBounds\r\n - remove unpacking of zoomBounds onto options, per global\r\n discussion above. Remove call to _map._addZoomLimit per above.\r\n - update onAdd/onRemove handler functions so that it adds/removes\r\n the added (geometry) layer to the ._features contained / child\r\n layer used to render the feature geometries for the layer.\r\n - replace triggering of _map 'moveend' event, replace with call to\r\n moveend handler function, per longstanding comment.\r\n\r\n- path.js\r\n - replace call to markup.getAttribute('zoom') with markup.zoom,\r\n in case that is ever called with a map-feature as the markup,\r\n which seems unlikely now - the zoom seems to be passed as an\r\n option property always.\r\n\r\n- get styleParsing.test.js working:\r\n - create (and remove) a in the templated\r\n feature container so that styles loaded that way apply to the renderer-generated\r\n svg elements in the container.\r\n - update test-results.txt\r\n\r\n- recover tileloadstart event functionality\r\n- get clientTemplatedTileLayer.test.js working\r\n\r\n- fix templatedFeaturesLayerStep test\r\n- fix templatedImageLayer test\r\n- fix customTCRS test\r\n\r\n- fix mapScale.test.js\r\n\r\n- update map-feature connected/disconnected callback to look at the\r\nancestor layer- or map-extent for data-moving attribute and forego\r\ndoing that in that case (supports drag and drop).\r\n\r\n- Get touchDevice.test.js working on linux\r\n\r\nUpdate ci-test.yml - remove --legacy-peer-deps argument to npm install\r\n\r\n- add very narrow map-style custom implementation\r\n- add mutation observer cases for map-link, map-style\r\n- move M._parseStylesheetAsHTML from Utils to TemplatedTileLayer,\r\nsince that is the only place it is now used from, eventually to be\r\nremoved altogether (see inline TO DO items)\r\n- remove use of M._parseStylesheetAsHTML from MapMLLayer\r\n- remove unnecessary _processContent function from MapMLLayer\r\n- Update TemplatedFeaturesLayer appendStyleLink,\r\nadd complementary appendStyleElement function. This layer loads\r\ntext/mapml documents dynamically, so it should propagate stylesheets\r\nand links to same into the shadow root container of the layer.\r\n- similar updates for TemplatedTileLayer need to be done, as the\r\n element for TemplatedTileLayer does not have a shadow\r\nroot and perhaps it should tbd. Anyway, it needs one if only\r\nfor map-link and map-style elements loaded with the tile text/mapml\r\ndata get connected to the DOM, similar to how it's done with\r\nTemplatedFeaturesLayer.\r\n- update some tests that failed because they formerly didn't take\r\nthe map-link and map-style effects into account (because that\r\nwasn't implemented)\r\n\r\n- MapMLLayer._calculateBounds: set .bounds and .zoomBounds to default\r\n(corresponding property of the layer projection) for empty layers.\r\n- delete ._layer.bounds in mutation observer when/before\r\nadding feature, so that the next time something uses .extent,\r\nit will be recalculated\r\n- map-feature: ensure that disconnectedCallback does not throw when\r\nfollowing links etc.\r\n\r\n- update .extent property so that for rel=query it returns an value\r\n- add map-link.zoomTo() method\r\n- update map-link._validateDisabled() to account for the fact that\r\nmap-link rel=query link now has an extent\r\n\r\n- add elements/map-link test directory, add it to server.js:\r\n- create locally hosted tiles for osm for zoom=3 to zoom=3\r\n- add test html file (work in progress, not finished)\r\n- add empty map-link.test.js wip\r\n\r\nMapMLLayer.js:\r\n- update getQueryTemplates method, add a zoom parameter to make\r\nbehaviour slightly more _map-independent. Affects call to this\r\nfrom QueryHandler.js\r\n-\r\n\r\nRefactor rename TemplatedLayer -> ExtentLayer to avoid layer confusion\r\n- affects: map-extent.js, index.js, renames TemplatedLayer.js to\r\nExtentLayer.js, mapSpan.test.js, styleParsing.test.js,\r\nmultipleExtents.test.js, imageStep.test.js,\r\ntemplatedImageLayer.test.js, templatedTileLayer.test.js,\r\n\r\nQueryHandler.js:\r\n- remove duplicate test to verify if click location is within the\r\nbounds of the selected query template (this step was already done\r\nin MapMLLayer.getQueryTemplates(location, zoom), which was called\r\nimmediately prior).\r\n\r\nFeatureLayer.js:\r\n- rename refactor the this._mapmlFeatures -> this._queryFeatures\r\nproperty, so as to read a little less ambiguously\r\n\r\nTemplatedImageLayer.js\r\n- update _scaleImage method, which is invoked repeatedly during\r\nmovend handling. The main behaviour is wrapped in a setTimeout,\r\nand the delay sometimes seems to cause the layer's ._map property\r\nto disappear (removed from map on zoom end due to zoom bounds\r\nconstraint?). Return / do nothing if obj._map doesn't exist.\r\n\r\nmap-extent.js:\r\n\r\n- copy refactor map-link API methods for .extent, .zoomTo(),\r\n.getMapEl(), .getLayerEl()\r\n\r\nfix bug in map-extent.js getMeta:\r\n\r\n- was over-scoping the selection of map-meta elements in parent layer\r\nto include map-meta elements in sibling map-extent. Fixed using :scope\r\n> selector.\r\n\r\n- add map-link.extent tests for inline and remote\r\ncontent. Limitation is that the tests only test\r\nmap-link.rel=image and rel=query so far.\r\n\r\n- some tests started failing because they used http:, not https: today.\r\nUpdate so that they pass now.\r\n\r\n- add ._featureEl reference to map-feature from its rendered self\r\n\r\n- de-flake new map-link.test.js by reloading the page before testing\r\ndisabled-ness, which is done in a loop, complicating matters\r\n\r\n- fix bug in first added or removed map-feature\r\n\r\n- fix bug in \"Focus Controls\" popup navigation button\r\n- closes #828\r\n\r\n- enable switching from remote to local / inline content\r\n- closes #898\r\n\r\n- add required tests, all pre-failing\r\n\r\n- add tests for map-extent extent\r\n\r\n- update selectors for map-meta related to extent\r\n- add failing tests with comments as reminders\r\n- next step (besides tests): resolve map-extent use of map-meta\r\n\r\n- fix bug in map-extent.getMeta()\r\n\r\n- fix min/maxNativeZoom bug in MapMLLayer._calculateBounds\r\n- update featureLayer.test.js to make it pass with bug fix, add comment\r\nexplaining why\r\n\r\n- add _calculateBounds to map-extent\r\n- add Mutation Observer to map-extent, layer-\r\n- add Mutation Observer to map-extent, update layer-'s to listen for\r\nmap-meta name=zoom / extent\r\n- prettier formatting in featureLayer.test.js\r\n- remove unwritten test from layer-src.test.js (updated extent test in featureLayer.test.js)\r\n- update / add tests for layer-extent.test that validate the\r\neffects of the MutationObservers (on layer- and map-extent listening\r\nfor map-meta) on layer-.extent results\r\n\r\n- update map-extent.disconnectedCallback to delete the MapMLLayer.bounds\r\nso that bounds are recalculated\r\n- get tests working for map-extent\r\n\r\n- tests for map-extent api methods zoomTo(), getMapEl(), getLayerEl()\r\nlocal and remote and for web-map, where warranted\r\n- add empty map-feature-extent test to remind of need\r\n\r\n- tests for map-link api .extent and zoomTo()\r\n\r\n- add map-feature-extent.test.js\r\n- add map-feature test subdirectory to server.js config\r\n\r\n- add test for layer- .extent bounds change with added / removed\r\nchild map-features\r\n\r\n- test case for svg tile rendering bug discovered by Andrea\r\n\r\n- update test page for render bug\r\n\r\n- select only map-feature with actual geometry for tile rendering\r\n- perttier formating on layer-extent.js\r\n\r\n- add \"reftest\" for 'zinger' rendering bug\r\n\r\nCo-authored-by: Aliyan Haq \r\nCo-authored-by: Hanyu Yao <97408822+yhy0217@users.noreply.github.com>\r\n\r\n* Update package.json version -> 0.13.0\r\n\r\n---------\r\n\r\nCo-authored-by: prushfor \r\nCo-authored-by: Aliyan Haq \r\nCo-authored-by: Hanyu Yao <97408822+yhy0217@users.noreply.github.com>","shortMessageHtmlLink":"Map link custom element implementation (#916)"}},{"before":null,"after":"6a769c2a7af142c9e42de4e9d24112cd1bb70cab","ref":"refs/heads/dependabot/npm_and_yarn/axios-and-jest-playwright-preset-1.6.7","pushedAt":"2024-02-21T11:05:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump axios and jest-playwright-preset\n\nBumps [axios](https://github.com/axios/axios) to 1.6.7 and updates ancestor dependency [jest-playwright-preset](https://github.com/playwright-community/jest-playwright). These dependencies need to be updated together.\n\n\nUpdates `axios` from 0.21.4 to 1.6.7\n- [Release notes](https://github.com/axios/axios/releases)\n- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)\n- [Commits](https://github.com/axios/axios/compare/v0.21.4...v1.6.7)\n\nUpdates `jest-playwright-preset` from 1.7.2 to 4.0.0\n- [Release notes](https://github.com/playwright-community/jest-playwright/releases)\n- [Commits](https://github.com/playwright-community/jest-playwright/compare/v1.7.2...v4.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: axios\n dependency-type: indirect\n- dependency-name: jest-playwright-preset\n dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump axios and jest-playwright-preset"}},{"before":"debaa3f8be176187d81307c9f0c03a2564487c97","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/follow-redirects-1.15.4","pushedAt":"2024-02-17T19:38:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPPk_jAA","startCursor":null,"endCursor":null}},"title":"Activity · Maps4HTML/Web-Map-Custom-Element"}