IMPR: GraphQL support
@ -28,4 +28,4 @@ SilverLeague\IDEAnnotator\DataObjectAnnotator:
|
||||
|
||||
SilverStripe\UserForms\Form\UserForm:
|
||||
no_placeholders: false
|
||||
show_labels: false
|
||||
show_labels: true
|
||||
|
37
app/_config/graphql.yml
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
Name: app-graphql
|
||||
After:
|
||||
- app-basics
|
||||
Only:
|
||||
classexists: 'SilverStripe\GraphQL\Schema\Schema'
|
||||
---
|
||||
|
||||
SilverStripe\Core\Injector\Injector:
|
||||
SilverStripe\GraphQL\Schema\Registry\PluginRegistry:
|
||||
constructor:
|
||||
- 'App\GraphQL\URLLinkablePlugin'
|
||||
|
||||
SilverStripe\Control\Director:
|
||||
rules:
|
||||
graphql:
|
||||
Controller: '%$SilverStripe\GraphQL\Controller.default'
|
||||
Schema: default
|
||||
|
||||
SilverStripe\GraphQL\Schema\Schema:
|
||||
schemas:
|
||||
'*':
|
||||
config:
|
||||
max_query_nodes: 250 # default 500
|
||||
max_query_depth: 20 # default 15
|
||||
max_query_complexity: 200 # default unlimited
|
||||
default:
|
||||
src:
|
||||
- app/_graphql
|
||||
|
||||
SilverStripe\GraphQLDevTools\Controller:
|
||||
# show two schemas
|
||||
schemas:
|
||||
- default
|
||||
- admin
|
||||
# default schema that is selected
|
||||
default_schema: default
|
16
app/_graphql/bulkLoad.yml
Normal file
@ -0,0 +1,16 @@
|
||||
app:
|
||||
# Load everything in our MyApp\Models\ namespace that has the Versioned extension
|
||||
# unless the filename ends with .secret.php
|
||||
load:
|
||||
namespaceLoader:
|
||||
include:
|
||||
- App\Models\*
|
||||
extensionLoader:
|
||||
include:
|
||||
- SilverStripe\Versioned\Versioned
|
||||
apply:
|
||||
fields:
|
||||
'*': true
|
||||
operations:
|
||||
read: true
|
||||
readOne: true
|
30
app/_graphql/config.yml
Normal file
@ -0,0 +1,30 @@
|
||||
modelConfig:
|
||||
Page:
|
||||
plugins:
|
||||
inheritance: true
|
||||
operations:
|
||||
read:
|
||||
plugins:
|
||||
readVersion: false
|
||||
paginateList: false
|
||||
readOne:
|
||||
plugins:
|
||||
getByLink:
|
||||
after: filter
|
||||
|
||||
DNADesign\Elemental\Models\ElementalArea:
|
||||
plugins:
|
||||
inheritance: true
|
||||
operations:
|
||||
read:
|
||||
plugins:
|
||||
readVersion: false
|
||||
paginateList: false
|
||||
DNADesign\Elemental\Models\BaseElement:
|
||||
plugins:
|
||||
inheritance: true
|
||||
operations:
|
||||
read:
|
||||
plugins:
|
||||
readVersion: false
|
||||
paginateList: false
|
0
app/_graphql/enums.yml
Normal file
49
app/_graphql/models.yml
Normal file
@ -0,0 +1,49 @@
|
||||
Page:
|
||||
fields:
|
||||
id: true
|
||||
className: true
|
||||
urlSegment: true
|
||||
parentID: true
|
||||
title: true
|
||||
sort: true
|
||||
CSSClass: true
|
||||
MainContent:
|
||||
type: String
|
||||
showInMenus: Boolean
|
||||
showInSearch: Boolean
|
||||
url:
|
||||
type: String
|
||||
link:
|
||||
type: String
|
||||
requestlink:
|
||||
type: String
|
||||
children: "[Page]"
|
||||
elementalArea:
|
||||
type: ElementalArea
|
||||
operations:
|
||||
read: true
|
||||
readOne:
|
||||
plugins:
|
||||
getByLink:
|
||||
after: filter
|
||||
|
||||
DNADesign\Elemental\Models\ElementalArea:
|
||||
fields:
|
||||
id: true
|
||||
elements:
|
||||
plugins:
|
||||
paginateList: false
|
||||
operations:
|
||||
read: true
|
||||
readOne: true
|
||||
|
||||
DNADesign\Elemental\Models\BaseElement:
|
||||
fields:
|
||||
id: true
|
||||
title: true
|
||||
showTitle: true
|
||||
className: true
|
||||
forTemplate: true
|
||||
operations:
|
||||
readOne: true
|
||||
read: true
|
4
app/_graphql/schema.yml
Normal file
@ -0,0 +1,4 @@
|
||||
queries:
|
||||
readMenu:
|
||||
type: '[PageInterface]'
|
||||
resolver: [ 'App\GraphQL\MenuResolver', 'resolveMenu' ]
|
0
app/_graphql/types.yml
Normal file
2
app/client/dist/css/app.css
vendored
2
app/client/dist/css/app_editor.css
vendored
@ -1 +1 @@
|
||||
.table,table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb),0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb),0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb),0.075);border-color:var(--bs-table-border-color);margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*,table>:not(caption)>*>*{background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)));color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));padding:.5rem}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width)*2) solid}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*,table>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*,table>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*,table.table-none>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child),table.table-none>:not(:first-child){border-top-width:0}.table-striped-columns>:not(caption)>tr>:nth-child(2n),.table-striped>tbody>tr:nth-of-type(odd)>*,table>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000}.table-primary,.table-secondary{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000}.table-info,.table-success{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000}.table-danger,.table-warning{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000}.table-dark,.table-light{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media(max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:1167.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;overflow-x:auto}}body,html{background:#fff;color:#212529}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:inherit;line-height:1.8em}.captionImage,.image,.ss-htmleditorfield-file,img{display:block;margin-bottom:1em;margin-top:1em;max-width:100%}@media(min-width:576px){.captionImage,.image,.ss-htmleditorfield-file,img{margin-left:1em;margin-right:1em}}.captionImage.center,.image.center,.ss-htmleditorfield-file.center,img.center{margin-left:auto;margin-right:auto;text-align:center}.captionImage.w-100,.image.w-100,.ss-htmleditorfield-file.w-100,img.w-100{margin-left:0;margin-right:0;text-align:center}.captionImage.left,.captionImage.start,.image.left,.image.start,.ss-htmleditorfield-file.left,.ss-htmleditorfield-file.start,img.left,img.start{clear:left;float:left}@media(min-width:576px){.captionImage.left,.captionImage.start,.image.left,.image.start,.ss-htmleditorfield-file.left,.ss-htmleditorfield-file.start,img.left,img.start{margin:0 1em 1em 0}}.captionImage.leftAlone,.image.leftAlone,.ss-htmleditorfield-file.leftAlone,img.leftAlone{clear:both;float:none;margin-left:0;margin-right:auto}.captionImage.end,.captionImage.right,.image.end,.image.right,.ss-htmleditorfield-file.end,.ss-htmleditorfield-file.right,img.end,img.right{clear:right;float:right}@media(min-width:576px){.captionImage.end,.captionImage.right,.image.end,.image.right,.ss-htmleditorfield-file.end,.ss-htmleditorfield-file.right,img.end,img.right{margin:1em 0 0 1em}}.captionImage.rightAlone,.image.rightAlone,.ss-htmleditorfield-file.rightAlone,img.rightAlone{clear:both;float:none;margin-left:auto;margin-right:0}.captionImage iframe,.image iframe,.ss-htmleditorfield-file iframe,img iframe{max-height:100%!important;width:100%!important}.captionImage img{margin-bottom:1em!important}.captionImage .caption{font-size:.8rem}.left,.text-left,.text-start{text-align:left}.center,.text-center{text-align:center}.right,.text-end,.text-right{text-align:right}.text-justify{text-align:justify}table{border-collapse:collapse;max-width:100%;width:100%}table.table-none{border:0;margin-left:-.5rem;margin-right:-.5rem}table.table-none td,table.table-none th,table.table-none tr{background:none!important;border:0;box-shadow:none!important}ol,ul{padding-left:2em}ol li,ul li{margin:.5em 0;position:relative}ol{padding-left:2em}iframe,img,p,table,td,th,tr{max-width:100%!important}@media(max-width:575px){iframe,img,p,table,td,th,tr{border:0!important;display:block;padding-left:0!important;padding-right:0!important;width:100%!important}img,p,table,td,th,tr{height:auto!important}.d-typography-breakpoint-none{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}thead{display:block;text-align:center}thead>tr{display:flex}tbody{display:block}td{display:flex;flex-direction:column}td:before{content:attr(data-label);display:block;font-weight:700;min-width:50%;padding:0 .5em;width:50%}}img{border:1px dashed}.ss-htmleditorfield-file.embed{position:relative}.ss-htmleditorfield-file.embed:before{content:"";display:block;padding-top:75%;position:relative;width:100%}.ss-htmleditorfield-file.embed iframe{bottom:0;left:0;position:absolute;right:0;top:0}a{color:#0d6efd}img{border:1px dashed #dedede}
|
||||
.table,table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb),0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb),0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb),0.075);border-color:var(--bs-table-border-color);margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*,table>:not(caption)>*>*{background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)));color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));padding:.5rem}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width)*2) solid}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*,table>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*,table>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*,table.table-none>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child),table.table-none>:not(:first-child){border-top-width:0}.table-striped-columns>:not(caption)>tr>:nth-child(2n),.table-striped>tbody>tr:nth-of-type(odd)>*,table>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000}.table-primary,.table-secondary{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000}.table-info,.table-success{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000}.table-danger,.table-warning{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000}.table-dark,.table-light{border-color:var(--bs-table-border-color);color:var(--bs-table-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media(max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media(max-width:1167.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;overflow-x:auto}}body,html{background:#fff;color:#212529}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:inherit}.captionImage,.image,.ss-htmleditorfield-file,img{display:block;margin-bottom:1em;margin-top:1em;max-width:100%}@media(min-width:576px){.captionImage,.image,.ss-htmleditorfield-file,img{margin-left:1em;margin-right:1em}}.captionImage.center,.image.center,.ss-htmleditorfield-file.center,img.center{margin-left:auto;margin-right:auto;text-align:center}.captionImage.w-100,.image.w-100,.ss-htmleditorfield-file.w-100,img.w-100{margin-left:0;margin-right:0;text-align:center}.captionImage.left,.captionImage.start,.image.left,.image.start,.ss-htmleditorfield-file.left,.ss-htmleditorfield-file.start,img.left,img.start{clear:left;float:left}@media(min-width:576px){.captionImage.left,.captionImage.start,.image.left,.image.start,.ss-htmleditorfield-file.left,.ss-htmleditorfield-file.start,img.left,img.start{margin:0 1em 1em 0}}.captionImage.leftAlone,.image.leftAlone,.ss-htmleditorfield-file.leftAlone,img.leftAlone{clear:both;float:none;margin-left:0;margin-right:auto}.captionImage.end,.captionImage.right,.image.end,.image.right,.ss-htmleditorfield-file.end,.ss-htmleditorfield-file.right,img.end,img.right{clear:right;float:right}@media(min-width:576px){.captionImage.end,.captionImage.right,.image.end,.image.right,.ss-htmleditorfield-file.end,.ss-htmleditorfield-file.right,img.end,img.right{margin:1em 0 0 1em}}.captionImage.rightAlone,.image.rightAlone,.ss-htmleditorfield-file.rightAlone,img.rightAlone{clear:both;float:none;margin-left:auto;margin-right:0}.captionImage iframe,.image iframe,.ss-htmleditorfield-file iframe,img iframe{max-height:100%!important;width:100%!important}.captionImage img{margin-bottom:1em!important}.captionImage .caption{font-size:.8rem}.left,.text-left,.text-start{text-align:left}.center,.text-center{text-align:center}.right,.text-end,.text-right{text-align:right}.text-justify{text-align:justify}table{border-collapse:collapse;max-width:100%;width:100%}table.table-none{border:0;margin-left:-.5rem;margin-right:-.5rem}table.table-none td,table.table-none th,table.table-none tr{background:none!important;border:0;box-shadow:none!important}ol,ul{padding-left:2em}ol li,ul li{margin:.5em 0;position:relative}ol{padding-left:2em}iframe,img,p,table,td,th,tr{max-width:100%!important}@media(max-width:575px){iframe,img,p,table,td,th,tr{border:0!important;display:block;padding-left:0!important;padding-right:0!important;width:100%!important}img,p,table,td,th,tr{height:auto!important}.d-typography-breakpoint-none{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}thead{display:block;text-align:center}thead>tr{display:flex}tbody{display:block}td{display:flex;flex-direction:column}td[data-label]:before{content:attr(data-label);display:block;font-weight:700;min-width:50%;padding:0 .5em;width:50%}}img{border:1px dashed}.ss-htmleditorfield-file.embed{position:relative}.ss-htmleditorfield-file.embed:before{content:"";display:block;padding-top:75%;position:relative;width:100%}.ss-htmleditorfield-file.embed iframe{bottom:0;left:0;position:absolute;right:0;top:0}img:last-child{margin-bottom:0!important}.table-none tr:last-child>td{padding-bottom:0}a{color:#0d6efd}img{border:1px dashed #dedede}
|
2
app/client/dist/css/sample.css
vendored
BIN
app/client/dist/icons/android-chrome-144x144.png
vendored
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
app/client/dist/icons/android-chrome-192x192.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
BIN
app/client/dist/icons/android-chrome-256x256.png
vendored
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
BIN
app/client/dist/icons/android-chrome-36x36.png
vendored
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
app/client/dist/icons/android-chrome-384x384.png
vendored
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 25 KiB |
BIN
app/client/dist/icons/android-chrome-48x48.png
vendored
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
app/client/dist/icons/android-chrome-512x512.png
vendored
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 36 KiB |
BIN
app/client/dist/icons/android-chrome-72x72.png
vendored
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
app/client/dist/icons/android-chrome-96x96.png
vendored
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
app/client/dist/icons/apple-touch-icon-1024x1024.png
vendored
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 101 KiB |
BIN
app/client/dist/icons/apple-touch-icon-114x114.png
vendored
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
BIN
app/client/dist/icons/apple-touch-icon-120x120.png
vendored
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.5 KiB |
BIN
app/client/dist/icons/apple-touch-icon-144x144.png
vendored
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
BIN
app/client/dist/icons/apple-touch-icon-152x152.png
vendored
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
BIN
app/client/dist/icons/apple-touch-icon-167x167.png
vendored
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
BIN
app/client/dist/icons/apple-touch-icon-180x180.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
app/client/dist/icons/apple-touch-icon-57x57.png
vendored
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
app/client/dist/icons/apple-touch-icon-60x60.png
vendored
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
app/client/dist/icons/apple-touch-icon-72x72.png
vendored
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
app/client/dist/icons/apple-touch-icon-76x76.png
vendored
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
app/client/dist/icons/apple-touch-icon.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 146 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 193 KiB |
Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 192 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 199 KiB |
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 201 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 260 KiB |
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 158 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 78 KiB |
BIN
app/client/dist/icons/favicon-16x16.png
vendored
Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 409 B |
BIN
app/client/dist/icons/favicon-32x32.png
vendored
Before Width: | Height: | Size: 980 B After Width: | Height: | Size: 937 B |
BIN
app/client/dist/icons/favicon-48x48.png
vendored
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
app/client/dist/icons/mstile-144x144.png
vendored
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
app/client/dist/icons/mstile-150x150.png
vendored
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
app/client/dist/icons/mstile-310x150.png
vendored
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 7.9 KiB |
BIN
app/client/dist/icons/mstile-310x310.png
vendored
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 19 KiB |
BIN
app/client/dist/icons/mstile-70x70.png
vendored
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
app/client/dist/icons/yandex-browser-50x50.png
vendored
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
2
app/client/dist/js/app.js
vendored
2
app/client/dist/js/app.js.LICENSE.txt
vendored
@ -11,3 +11,5 @@
|
||||
* (c) 2013-2022 Jędrzej Chałubek (https://github.com/jedrzejchalubek/)
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||||
|
@ -1,2 +1,2 @@
|
||||
/*! For license information please see app_Site.Controllers.MapElementController.js.LICENSE.txt */
|
||||
!function(){"use strict";var t={36:function(t){function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}t.exports=function equal(t,r){if(t===r)return!0;if(t&&r&&"object"==_typeof(t)&&"object"==_typeof(r)){if(t.constructor!==r.constructor)return!1;var o,a,i;if(Array.isArray(t)){if((o=t.length)!=r.length)return!1;for(a=o;0!==a--;)if(!equal(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((o=(i=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(a=o;0!==a--;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=o;0!==a--;){var l=i[a];if(!equal(t[l],r[l]))return!1}return!0}return t!==t&&r!==r}}},r={};function __webpack_require__(o){var a=r[o];if(void 0!==a)return a.exports;var i=r[o]={exports:{}};return t[o](i,i.exports,__webpack_require__),i.exports}__webpack_require__.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=function(t,r){for(var o in r)__webpack_require__.o(r,o)&&!__webpack_require__.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},__webpack_require__.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t="ajax-load",r="load-ready",o="map-loaded",a="map-api-loaded",i="map-marker-click",l="map-popup-close",u=__webpack_require__(36),c=__webpack_require__.n(u);function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a,i,l,u,c=[],p=!0,m=!1;try{if(l=(o=o.call(t)).next,0===r){if(Object(o)!==o)return;p=!1}else for(;!(p=(a=l.call(o)).done)&&(c.push(a.value),c.length!==r);p=!0);}catch(t){m=!0,i=t}finally{try{if(!p&&null!=o.return&&(u=o.return(),Object(u)!==u))return}finally{if(m)throw i}}return c}}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"===typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,a=new Array(r);o<r;o++)a[o]=t[o];return a}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,(i=a.key,l=void 0,l=function _toPrimitive(t,r){if("object"!==_typeof(t)||null===t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var a=o.call(t,r||"default");if("object"!==_typeof(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(i,"string"),"symbol"===_typeof(l)?l:String(l)),a)}var i,l}var p=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],m=function(){function KDBush(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:64,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Float64Array,a=arguments.length>3?arguments[3]:void 0;if(function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,KDBush),isNaN(t)||t<0)throw new Error("Unpexpected numItems value: ".concat(t,"."));this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=o,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;var i=p.indexOf(this.ArrayType),l=2*t*this.ArrayType.BYTES_PER_ELEMENT,u=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-u%8)%8;if(i<0)throw new Error("Unexpected typed array class: ".concat(o,"."));a&&a instanceof ArrayBuffer?(this.data=a,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+u+c,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+l+u+c),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+u+c,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=t)}return function _createClass(t,r,o){return r&&_defineProperties(t.prototype,r),o&&_defineProperties(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t}(KDBush,[{key:"add",value:function add(t,r){var o=this._pos>>1;return this.ids[o]=o,this.coords[this._pos++]=t,this.coords[this._pos++]=r,o}},{key:"finish",value:function finish(){var t=this._pos>>1;if(t!==this.numItems)throw new Error("Added ".concat(t," items when expected ").concat(this.numItems,"."));return sort(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}},{key:"range",value:function range(t,r,o,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");for(var i=this.ids,l=this.coords,u=this.nodeSize,c=[0,i.length-1,0],p=[];c.length;){var m=c.pop()||0,d=c.pop()||0,y=c.pop()||0;if(d-y<=u)for(var h=y;h<=d;h++){var g=l[2*h],v=l[2*h+1];g>=t&&g<=o&&v>=r&&v<=a&&p.push(i[h])}else{var _=y+d>>1,b=l[2*_],k=l[2*_+1];b>=t&&b<=o&&k>=r&&k<=a&&p.push(i[_]),(0===m?t<=b:r<=k)&&(c.push(y),c.push(_-1),c.push(1-m)),(0===m?o>=b:a>=k)&&(c.push(_+1),c.push(d),c.push(1-m))}}return p}},{key:"within",value:function within(t,r,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");for(var a=this.ids,i=this.coords,l=this.nodeSize,u=[0,a.length-1,0],c=[],p=o*o;u.length;){var m=u.pop()||0,d=u.pop()||0,y=u.pop()||0;if(d-y<=l)for(var h=y;h<=d;h++)sqDist(i[2*h],i[2*h+1],t,r)<=p&&c.push(a[h]);else{var g=y+d>>1,v=i[2*g],_=i[2*g+1];sqDist(v,_,t,r)<=p&&c.push(a[g]),(0===m?t-o<=v:r-o<=_)&&(u.push(y),u.push(g-1),u.push(1-m)),(0===m?t+o>=v:r+o>=_)&&(u.push(g+1),u.push(d),u.push(1-m))}}return c}}],[{key:"from",value:function from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");var r=_slicedToArray(new Uint8Array(t,0,2),2),o=r[0],a=r[1];if(219!==o)throw new Error("Data does not appear to be in a KDBush format.");var i=a>>4;if(1!==i)throw new Error("Got v".concat(i," data when expected v").concat(1,"."));var l=p[15&a];if(!l)throw new Error("Unrecognized array type.");var u=_slicedToArray(new Uint16Array(t,2,1),1)[0];return new KDBush(_slicedToArray(new Uint32Array(t,4,1),1)[0],u,l,t)}}]),KDBush}();function sort(t,r,o,a,i,l){if(!(i-a<=o)){var u=a+i>>1;kdbush_select(t,r,u,a,i,l),sort(t,r,o,a,u-1,1-l),sort(t,r,o,u+1,i,1-l)}}function kdbush_select(t,r,o,a,i,l){for(;i>a;){if(i-a>600){var u=i-a+1,c=o-a+1,p=Math.log(u),m=.5*Math.exp(2*p/3),d=.5*Math.sqrt(p*m*(u-m)/u)*(c-u/2<0?-1:1);kdbush_select(t,r,o,Math.max(a,Math.floor(o-c*m/u+d)),Math.min(i,Math.floor(o+(u-c)*m/u+d)),l)}var y=r[2*o+l],h=a,g=i;for(swapItem(t,r,a,o),r[2*i+l]>y&&swapItem(t,r,a,i);h<g;){for(swapItem(t,r,h,g),h++,g--;r[2*h+l]<y;)h++;for(;r[2*g+l]>y;)g--}r[2*a+l]===y?swapItem(t,r,a,g):swapItem(t,r,++g,i),g<=o&&(a=g+1),o<=g&&(i=g-1)}}function swapItem(t,r,o,a){swap(t,o,a),swap(r,2*o,2*a),swap(r,2*o+1,2*a+1)}function swap(t,r,o){var a=t[r];t[r]=t[o],t[o]=a}function sqDist(t,r,o,a){var i=t-o,l=r-a;return i*i+l*l}function supercluster_typeof(t){return supercluster_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},supercluster_typeof(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=supercluster_unsupportedIterableToArray(t))||r&&t&&"number"===typeof t.length){o&&(t=o);var a=0,i=function F(){};return{s:i,n:function n(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();return u=t.done,t},e:function e(t){c=!0,l=t},f:function f(){try{u||null==o.return||o.return()}finally{if(c)throw l}}}}function supercluster_slicedToArray(t,r){return function supercluster_arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function supercluster_iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a,i,l,u,c=[],p=!0,m=!1;try{if(l=(o=o.call(t)).next,0===r){if(Object(o)!==o)return;p=!1}else for(;!(p=(a=l.call(o)).done)&&(c.push(a.value),c.length!==r);p=!0);}catch(t){m=!0,i=t}finally{try{if(!p&&null!=o.return&&(u=o.return(),Object(u)!==u))return}finally{if(m)throw i}}return c}}(t,r)||supercluster_unsupportedIterableToArray(t,r)||function supercluster_nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function supercluster_unsupportedIterableToArray(t,r){if(t){if("string"===typeof t)return supercluster_arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?supercluster_arrayLikeToArray(t,r):void 0}}function supercluster_arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,a=new Array(r);o<r;o++)a[o]=t[o];return a}function supercluster_defineProperties(t,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,(i=a.key,l=void 0,l=function supercluster_toPrimitive(t,r){if("object"!==supercluster_typeof(t)||null===t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var a=o.call(t,r||"default");if("object"!==supercluster_typeof(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(i,"string"),"symbol"===supercluster_typeof(l)?l:String(l)),a)}var i,l}var d,y={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function map(t){return t}},h=Math.fround||(d=new Float32Array(1),function(t){return d[0]=+t,d[0]}),g=3,v=5,_=6,b=function(){function Supercluster(t){!function supercluster_classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Supercluster),this.options=Object.assign(Object.create(y),t),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}return function supercluster_createClass(t,r,o){return r&&supercluster_defineProperties(t.prototype,r),o&&supercluster_defineProperties(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t}(Supercluster,[{key:"load",value:function load(t){var r=this.options,o=r.log,a=r.minZoom,i=r.maxZoom;o&&console.time("total time");var l="prepare ".concat(t.length," points");o&&console.time(l),this.points=t;for(var u=[],c=0;c<t.length;c++){var p=t[c];if(p.geometry){var m=supercluster_slicedToArray(p.geometry.coordinates,2),d=m[0],y=m[1],g=h(lngX(d)),v=h(latY(y));u.push(g,v,1/0,c,-1,1),this.options.reduce&&u.push(0)}}var _=this.trees[i+1]=this._createTree(u);o&&console.timeEnd(l);for(var b=i;b>=a;b--){var k=+Date.now();_=this.trees[b]=this._createTree(this._cluster(_,b)),o&&console.log("z%d: %d clusters in %dms",b,_.numItems,+Date.now()-k)}return o&&console.timeEnd("total time"),this}},{key:"getClusters",value:function getClusters(t,r){var o=((t[0]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,l=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)o=-180,i=180;else if(o>i){var u=this.getClusters([o,a,180,l],r),c=this.getClusters([-180,a,i,l],r);return u.concat(c)}var p,m=this.trees[this._limitZoom(r)],d=m.range(lngX(o),latY(l),lngX(i),latY(a)),y=m.data,h=[],_=_createForOfIteratorHelper(d);try{for(_.s();!(p=_.n()).done;){var b=p.value,k=this.stride*b;h.push(y[k+v]>1?getClusterJSON(y,k,this.clusterProps):this.points[y[k+g]])}}catch(w){_.e(w)}finally{_.f()}return h}},{key:"getChildren",value:function getChildren(t){var r=this._getOriginId(t),o=this._getOriginZoom(t),a="No cluster with the specified id.",i=this.trees[o];if(!i)throw new Error(a);var l=i.data;if(r*this.stride>=l.length)throw new Error(a);var u,c=this.options.radius/(this.options.extent*Math.pow(2,o-1)),p=l[r*this.stride],m=l[r*this.stride+1],d=[],y=_createForOfIteratorHelper(i.within(p,m,c));try{for(y.s();!(u=y.n()).done;){var h=u.value*this.stride;l[h+4]===t&&d.push(l[h+v]>1?getClusterJSON(l,h,this.clusterProps):this.points[l[h+g]])}}catch(_){y.e(_)}finally{y.f()}if(0===d.length)throw new Error(a);return d}},{key:"getLeaves",value:function getLeaves(t,r,o){r=r||10,o=o||0;var a=[];return this._appendLeaves(a,t,r,o,0),a}},{key:"getTile",value:function getTile(t,r,o){var a=this.trees[this._limitZoom(t)],i=Math.pow(2,t),l=this.options,u=l.extent,c=l.radius/u,p=(o-c)/i,m=(o+1+c)/i,d={features:[]};return this._addTileFeatures(a.range((r-c)/i,p,(r+1+c)/i,m),a.data,r,o,i,d),0===r&&this._addTileFeatures(a.range(1-c/i,p,1,m),a.data,i,o,i,d),r===i-1&&this._addTileFeatures(a.range(0,p,c/i,m),a.data,-1,o,i,d),d.features.length?d:null}},{key:"getClusterExpansionZoom",value:function getClusterExpansionZoom(t){for(var r=this._getOriginZoom(t)-1;r<=this.options.maxZoom;){var o=this.getChildren(t);if(r++,1!==o.length)break;t=o[0].properties.cluster_id}return r}},{key:"_appendLeaves",value:function _appendLeaves(t,r,o,a,i){var l,u=_createForOfIteratorHelper(this.getChildren(r));try{for(u.s();!(l=u.n()).done;){var c=l.value,p=c.properties;if(p&&p.cluster?i+p.point_count<=a?i+=p.point_count:i=this._appendLeaves(t,p.cluster_id,o,a,i):i<a?i++:t.push(c),t.length===o)break}}catch(m){u.e(m)}finally{u.f()}return i}},{key:"_createTree",value:function _createTree(t){for(var r=new m(t.length/this.stride|0,this.options.nodeSize,Float32Array),o=0;o<t.length;o+=this.stride)r.add(t[o],t[o+1]);return r.finish(),r.data=t,r}},{key:"_addTileFeatures",value:function _addTileFeatures(t,r,o,a,i,l){var u,c=_createForOfIteratorHelper(t);try{for(c.s();!(u=c.n()).done;){var p=u.value*this.stride,m=r[p+v]>1,d=void 0,y=void 0,h=void 0;if(m)d=getClusterProperties(r,p,this.clusterProps),y=r[p],h=r[p+1];else{var _=this.points[r[p+g]];d=_.properties;var b=supercluster_slicedToArray(_.geometry.coordinates,2),k=b[0],w=b[1];y=lngX(k),h=latY(w)}var x={type:1,geometry:[[Math.round(this.options.extent*(y*i-o)),Math.round(this.options.extent*(h*i-a))]],tags:d},M=void 0;void 0!==(M=m||this.options.generateId?r[p+g]:this.points[r[p+g]].id)&&(x.id=M),l.features.push(x)}}catch(C){c.e(C)}finally{c.f()}}},{key:"_limitZoom",value:function _limitZoom(t){return Math.max(this.options.minZoom,Math.min(Math.floor(+t),this.options.maxZoom+1))}},{key:"_cluster",value:function _cluster(t,r){for(var o=this.options,a=o.radius,i=o.extent,l=o.reduce,u=o.minPoints,c=a/(i*Math.pow(2,r)),p=t.data,m=[],d=this.stride,y=0;y<p.length;y+=d)if(!(p[y+2]<=r)){p[y+2]=r;var h,g=p[y],_=p[y+1],b=t.within(p[y],p[y+1],c),k=p[y+v],w=k,x=_createForOfIteratorHelper(b);try{for(x.s();!(h=x.n()).done;){var M=h.value*d;p[M+2]>r&&(w+=p[M+v])}}catch(U){x.e(U)}finally{x.f()}if(w>k&&w>=u){var C,P=g*k,A=_*k,O=void 0,S=-1,I=((y/d|0)<<5)+(r+1)+this.points.length,T=_createForOfIteratorHelper(b);try{for(T.s();!(C=T.n()).done;){var E=C.value*d;if(!(p[E+2]<=r)){p[E+2]=r;var j=p[E+v];P+=p[E]*j,A+=p[E+1]*j,p[E+4]=I,l&&(O||(O=this._map(p,y,!0),S=this.clusterProps.length,this.clusterProps.push(O)),l(O,this._map(p,E)))}}}catch(U){T.e(U)}finally{T.f()}p[y+4]=I,m.push(P/w,A/w,1/0,I,-1,w),l&&m.push(S)}else{for(var L=0;L<d;L++)m.push(p[y+L]);if(w>1){var D,N=_createForOfIteratorHelper(b);try{for(N.s();!(D=N.n()).done;){var R=D.value*d;if(!(p[R+2]<=r)){p[R+2]=r;for(var Z=0;Z<d;Z++)m.push(p[R+Z])}}}catch(U){N.e(U)}finally{N.f()}}}}return m}},{key:"_getOriginId",value:function _getOriginId(t){return t-this.points.length>>5}},{key:"_getOriginZoom",value:function _getOriginZoom(t){return(t-this.points.length)%32}},{key:"_map",value:function _map(t,r,o){if(t[r+v]>1){var a=this.clusterProps[t[r+_]];return o?Object.assign({},a):a}var i=this.points[t[r+g]].properties,l=this.options.map(i);return o&&l===i?Object.assign({},l):l}}]),Supercluster}();function getClusterJSON(t,r,o){return{type:"Feature",id:t[r+g],properties:getClusterProperties(t,r,o),geometry:{type:"Point",coordinates:[(l=t[r],360*(l-.5)),(a=t[r+1],i=(180-360*a)*Math.PI/180,360*Math.atan(Math.exp(i))/Math.PI-90)]}};var a,i,l}function getClusterProperties(t,r,o){var a=t[r+v],i=a>=1e4?"".concat(Math.round(a/1e3),"k"):a>=1e3?"".concat(Math.round(a/100)/10,"k"):a,l=t[r+_],u=-1===l?{}:Object.assign({},o[l]);return Object.assign(u,{cluster:!0,cluster_id:t[r+g],point_count:a,point_count_abbreviated:i})}function lngX(t){return t/360+.5}function latY(t){var r=Math.sin(t*Math.PI/180),o=.5-.25*Math.log((1+r)/(1-r))/Math.PI;return o<0?0:o>1?1:o}function index_esm_slicedToArray(t,r){return function index_esm_arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function index_esm_iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a,i,l,u,c=[],p=!0,m=!1;try{if(l=(o=o.call(t)).next,0===r){if(Object(o)!==o)return;p=!1}else for(;!(p=(a=l.call(o)).done)&&(c.push(a.value),c.length!==r);p=!0);}catch(t){m=!0,i=t}finally{try{if(!p&&null!=o.return&&(u=o.return(),Object(u)!==u))return}finally{if(m)throw i}}return c}}(t,r)||index_esm_unsupportedIterableToArray(t,r)||function index_esm_nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return index_esm_arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||index_esm_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _inherits(t,r){if("function"!==typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(t,r){return t.__proto__=r,t},_setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function _createSuperInternal(){var o,a=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;o=Reflect.construct(a,arguments,i)}else o=a.apply(this,arguments);return function _possibleConstructorReturn(t,r){if(r&&("object"===index_esm_typeof(r)||"function"===typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,o)}}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function index_esm_createForOfIteratorHelper(t,r){var o="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=index_esm_unsupportedIterableToArray(t))||r&&t&&"number"===typeof t.length){o&&(t=o);var a=0,i=function F(){};return{s:i,n:function n(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();return u=t.done,t},e:function e(t){c=!0,l=t},f:function f(){try{u||null==o.return||o.return()}finally{if(c)throw l}}}}function index_esm_unsupportedIterableToArray(t,r){if(t){if("string"===typeof t)return index_esm_arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?index_esm_arrayLikeToArray(t,r):void 0}}function index_esm_arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,a=new Array(r);o<r;o++)a[o]=t[o];return a}function index_esm_typeof(t){return index_esm_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},index_esm_typeof(t)}function index_esm_classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function index_esm_defineProperties(t,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,(i=a.key,l=void 0,l=function index_esm_toPrimitive(t,r){if("object"!==index_esm_typeof(t)||null===t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var a=o.call(t,r||"default");if("object"!==index_esm_typeof(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(i,"string"),"symbol"===index_esm_typeof(l)?l:String(l)),a)}var i,l}function index_esm_createClass(t,r,o){return r&&index_esm_defineProperties(t.prototype,r),o&&index_esm_defineProperties(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t}function __rest(t,r){var o={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&r.indexOf(a)<0&&(o[a]=t[a]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(t);i<a.length;i++)r.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(t,a[i])&&(o[a[i]]=t[a[i]])}return o}var k=function(){function MarkerUtils(){index_esm_classCallCheck(this,MarkerUtils)}return index_esm_createClass(MarkerUtils,null,[{key:"isAdvancedMarkerAvailable",value:function isAdvancedMarkerAvailable(t){return google.maps.marker&&!0===t.getMapCapabilities().isAdvancedMarkersAvailable}},{key:"isAdvancedMarker",value:function isAdvancedMarker(t){return google.maps.marker&&t instanceof google.maps.marker.AdvancedMarkerElement}},{key:"setMap",value:function setMap(t,r){this.isAdvancedMarker(t)?t.map=r:t.setMap(r)}},{key:"getPosition",value:function getPosition(t){if(this.isAdvancedMarker(t)){if(t.position){if(t.position instanceof google.maps.LatLng)return t.position;if(t.position.lat&&t.position.lng)return new google.maps.LatLng(t.position.lat,t.position.lng)}return new google.maps.LatLng(null)}return t.getPosition()}},{key:"getVisible",value:function getVisible(t){return!!this.isAdvancedMarker(t)||t.getVisible()}}]),MarkerUtils}(),w=function(){function Cluster(t){var r=t.markers,o=t.position;index_esm_classCallCheck(this,Cluster),this.markers=r,o&&(o instanceof google.maps.LatLng?this._position=o:this._position=new google.maps.LatLng(o))}return index_esm_createClass(Cluster,[{key:"bounds",get:function get(){if(0!==this.markers.length||this._position){var t,r=new google.maps.LatLngBounds(this._position,this._position),o=index_esm_createForOfIteratorHelper(this.markers);try{for(o.s();!(t=o.n()).done;){var a=t.value;r.extend(k.getPosition(a))}}catch(i){o.e(i)}finally{o.f()}return r}}},{key:"position",get:function get(){return this._position||this.bounds.getCenter()}},{key:"count",get:function get(){return this.markers.filter((function(t){return k.getVisible(t)})).length}},{key:"push",value:function push(t){this.markers.push(t)}},{key:"delete",value:function _delete(){this.marker&&(k.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}]),Cluster}(),x=function(){function AbstractAlgorithm(t){var r=t.maxZoom,o=void 0===r?16:r;index_esm_classCallCheck(this,AbstractAlgorithm),this.maxZoom=o}return index_esm_createClass(AbstractAlgorithm,[{key:"noop",value:function noop(t){var r=t.markers;return M(r)}}]),AbstractAlgorithm}(),M=function _noop(t){return t.map((function(t){return new w({position:k.getPosition(t),markers:[t]})}))},C=function(t){_inherits(SuperClusterAlgorithm,t);var r=_createSuper(SuperClusterAlgorithm);function SuperClusterAlgorithm(t){var o;index_esm_classCallCheck(this,SuperClusterAlgorithm);var a=t.maxZoom,i=t.radius,l=void 0===i?60:i,u=__rest(t,["maxZoom","radius"]);return(o=r.call(this,{maxZoom:a})).state={zoom:-1},o.superCluster=new b(Object.assign({maxZoom:o.maxZoom,radius:l},u)),o}return index_esm_createClass(SuperClusterAlgorithm,[{key:"calculate",value:function calculate(t){var r=!1,o={zoom:t.map.getZoom()};if(!c()(t.markers,this.markers)){r=!0,this.markers=_toConsumableArray(t.markers);var a=this.markers.map((function(t){var r=k.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[r.lng(),r.lat()]},properties:{marker:t}}}));this.superCluster.load(a)}return r||(this.state.zoom<=this.maxZoom||o.zoom<=this.maxZoom)&&(r=!c()(this.state,o)),this.state=o,r&&(this.clusters=this.cluster(t)),{clusters:this.clusters,changed:r}}},{key:"cluster",value:function cluster(t){var r=this,o=t.map;return this.superCluster.getClusters([-180,-90,180,90],Math.round(o.getZoom())).map((function(t){return r.transformCluster(t)}))}},{key:"transformCluster",value:function transformCluster(t){var r=index_esm_slicedToArray(t.geometry.coordinates,2),o=r[0],a=r[1],i=t.properties;if(i.cluster)return new w({markers:this.superCluster.getLeaves(i.cluster_id,1/0).map((function(t){return t.properties.marker})),position:{lat:a,lng:o}});var l=i.marker;return new w({markers:[l],position:k.getPosition(l)})}}]),SuperClusterAlgorithm}(x),P=index_esm_createClass((function ClusterStats(t,r){index_esm_classCallCheck(this,ClusterStats),this.markers={sum:t.length};var o=r.map((function(t){return t.count})),a=o.reduce((function(t,r){return t+r}),0);this.clusters={count:r.length,markers:{mean:a/r.length,sum:a,min:Math.min.apply(Math,_toConsumableArray(o)),max:Math.max.apply(Math,_toConsumableArray(o))}}})),A=function(){function DefaultRenderer(){index_esm_classCallCheck(this,DefaultRenderer)}return index_esm_createClass(DefaultRenderer,[{key:"render",value:function render(t,r,o){var a=t.count,i=t.position,l=a>Math.max(10,r.clusters.markers.mean)?"#ff0000":"#0000ff",u='<svg fill="'.concat(l,'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">').concat(a,"</text>\n</svg>"),c="Cluster of ".concat(a," markers"),p=Number(google.maps.Marker.MAX_ZINDEX)+a;if(k.isAdvancedMarkerAvailable(o)){var m=(new DOMParser).parseFromString(u,"image/svg+xml").documentElement;m.setAttribute( |