@opengis/gis 0.2.124 → 0.2.126
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/module/test/cls/doc_status.json +31 -31
- package/module/test/select/core.user_uid.sql +1 -1
- package/package.json +1 -1
- package/server/plugins/mapnik/funcs/checkRasterFile.js +1 -1
- package/server/plugins/mapnik/funcs/mapnik.js +5 -0
- package/server/plugins/mapnik/map.proto +0 -6
- package/server/routes/map/maps/get.map.js +9 -8
- package/server/routes/mapnik/controllers/clearTiles.js +3 -3
- package/server/routes/mapnik/controllers/createXml.js +2 -2
- package/server/routes/mapnik/controllers/rasterInfo.js +1 -1
- package/server/routes/mapnik/controllers/rtile.js +3 -3
- package/server/routes/mapnik/functions/uploadXML.js +3 -2
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:1px solid rgb(229 231 235);border-radius:.375rem;background:#fff;font-size:0;line-height:0}[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a:hover{background:#f3f4f6}[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a:before{content:"";width:1rem;height:1rem;display:block;background-color:#2563eb;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:contain;-webkit-mask-size:contain;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z'/%3E%3Cpath d='M15 5.764v15'/%3E%3Cpath d='M9 3.236v15'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z'/%3E%3Cpath d='M15 5.764v15'/%3E%3Cpath d='M9 3.236v15'/%3E%3C/svg%3E")}.custom-pagination[data-v-e728e68b] .items-center{display:block}.maplibregl-ctrl.maplibregl-ctrl-attrib.maplibregl-compact.maplibregl-compact{display:none}.maplibre-demo-map-container{height:100%;width:100%;position:relative}#maplibre-demo-map{height:100%;width:100%;position:absolute}.map-widgets-flex{width:100%;height:100%;display:flex;justify-content:space-between;padding:20px;box-sizing:border-box}.widgets-left,.widgets-right{display:flex;flex-direction:column;gap:10px;height:100%;width:400px;pointer-events:none}.widgets-right .widget-column{align-items:flex-end}.widgets-left{align-items:flex-start}.widget-column{display:flex;flex-direction:column;gap:10px;z-index:10;height:100%}.widgets-top{overflow-y:auto}.widgets-bottom{flex-shrink:0}.widgets-top,.widgets-bottom{display:flex;flex-direction:column;gap:8px;pointer-events:auto;overflow-y:auto}.widgets-top{align-items:flex-start}.widgets-bottom{align-items:flex-end;margin-top:auto}.widgets-left{justify-content:flex-start}.map-view-root[data-v-d6e61166]{position:relative}.mapLayer-info[data-v-cc1cc7bf]{display:inline-flex;position:relative}.mapLayer-info__trigger[data-v-cc1cc7bf]{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;text-decoration:none;cursor:pointer}.mapLayer-info__icon[data-v-cc1cc7bf]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transition:color .2s ease}.mapLayer-info__icon[data-v-cc1cc7bf]:hover{color:#1d4ed8}.mapLayer-info__popover[data-v-cc1cc7bf]{position:absolute;min-width:200px}.mapLayer-info__inner[data-v-cc1cc7bf]{display:flex;flex-direction:column;gap:0}.mapLayer-info__item[data-v-cc1cc7bf]{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #e2e8f0}.mapLayer-info__item[data-v-cc1cc7bf]:last-child{border-bottom:none}.mapLayer-info__item-label[data-v-cc1cc7bf]{font-size:12px;color:#475569;font-weight:600}.mapLayer-info__item-value[data-v-cc1cc7bf]{font-size:13px;color:#1f2937}.mapLayer-info__item-value--break-all[data-v-cc1cc7bf]{word-break:break-all}.map-info[data-v-813e24fb]{width:100%}.map-info__header[data-v-813e24fb]{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding:20px 20px 12px}.map-info__actions[data-v-813e24fb]{display:flex;align-items:center;gap:8px}.map-info__title[data-v-813e24fb]{margin:0;font-size:18px;line-height:1.3;font-weight:600;color:#1f2937}.map-info__menu[data-v-813e24fb]{position:relative}.map-info__menu-button[data-v-813e24fb]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-info__menu-button[data-v-813e24fb]:hover{background:#94a3b833}.map-info__popover[data-v-813e24fb]{position:absolute;background:#fff;box-shadow:0 10px 40px 10px #00000014;border-radius:12px;padding:8px 12px;min-width:160px;z-index:50}.map-info__popover-link[data-v-813e24fb]{display:block;padding:6px 0;font-size:13px;color:#1f2937;text-decoration:none}.map-info__popover-link[data-v-813e24fb]:hover{color:#1d4ed8}.map-info__content[data-v-813e24fb]{padding:0 20px 20px;font-size:14px;color:#34495e;transition:max-height .3s ease,opacity .3s ease,padding .3s ease;overflow:hidden;max-height:1000px;opacity:1}.map-info__content--collapsed[data-v-813e24fb]{max-height:0;opacity:0;padding:0 20px 5px}.map-info__content[data-v-813e24fb] p{margin:0 0 12px}.map-info__toggle-button[data-v-813e24fb]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-info__toggle-button[data-v-813e24fb]:hover{background:#94a3b833}.map-info__toggle-icon--rotated[data-v-813e24fb]{transform:rotate(180deg)}.mapLayer-filter[data-v-cc1f0579]{display:inline-flex;position:relative}.mapLayer-filter__trigger[data-v-cc1f0579]{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;text-decoration:none;cursor:pointer;border-radius:50%;transition:background .2s ease}.mapLayer-filter__trigger[data-v-cc1f0579]:hover:not(.mapLayer-filter__trigger--disabled){background:#d4dae033}.mapLayer-filter__trigger:hover:not(.mapLayer-filter__trigger--disabled) .mapLayer-filter__icon[data-v-cc1f0579]{color:#1d4ed8}.mapLayer-filter__trigger--disabled[data-v-cc1f0579]{cursor:not-allowed;opacity:.5;pointer-events:auto}.mapLayer-filter__icon[data-v-cc1f0579]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#475569;transition:color .2s ease}.mapLayer-filter__trigger--disabled .mapLayer-filter__icon[data-v-cc1f0579]{color:inherit}.mapLayer-filter__popover[data-v-cc1f0579]{position:absolute;max-width:min-content}.mapLayer-filter__popover--static[data-v-cc1f0579]{position:static;top:auto;left:auto;transform:none!important}.map-filter[data-v-cc1f0579]{background:#fffffff0;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px}.map-filter__header[data-v-cc1f0579]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.map-filter__title[data-v-cc1f0579]{margin:0;font-size:15px;font-weight:600;color:#1f2937}.map-filter__close[data-v-cc1f0579]{width:24px;height:24px;border:none;border-radius:50%;background:#94a3b833;color:#475569;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.map-filter__close[data-v-cc1f0579]:hover{background:#3b82f633;color:#2563eb}.filter-badge__hint[data-v-cc1f0579]{position:fixed;transform:translate(-50%);max-width:220px;font-size:11px;line-height:1.3;color:#1f2937;background:#fffffff2;border:1px solid rgba(148,163,184,.35);border-radius:6px;padding:6px 8px;box-shadow:0 8px 16px #0f172a1f;pointer-events:none;white-space:normal;z-index:1000}.opacity-btn[data-v-b278347a]{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:8px;border:none;background:transparent;color:#475569;cursor:pointer;transition:background .2s ease,color .2s ease}.opacity-btn[data-v-b278347a]:hover{background:#94a3b829;color:#1f2937}.opacity-popover[data-v-b278347a]{position:fixed;z-index:102;padding:12px;width:260px;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26}.opacity-popover__content[data-v-b278347a]{display:flex;align-items:center;gap:8px}.opacity-popover__label[data-v-b278347a]{font-size:12px;color:#6b7280}.opacity-popover__range[data-v-b278347a]{flex:1 1 auto;accent-color:#2563eb}.opacity-popover__value[data-v-b278347a]{font-size:12px;color:#475569}.layers-panel[data-v-4706ee79]{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px;box-shadow:0 16px 32px #0f172a1a;min-width:220px}.layers-panel__header[data-v-4706ee79]{display:flex;justify-content:space-between;align-items:center;gap:16px}.layers-panel__header-actions[data-v-4706ee79]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.layers-panel__heading-title[data-v-4706ee79]{display:flex;align-items:baseline;gap:8px}.layers-panel__count[data-v-4706ee79]{font-size:12px;text-transform:none;color:#475569}.layers-panel__bulk-actions[data-v-4706ee79]{display:flex;align-items:center;gap:6px}.layers-panel__header-link[data-v-4706ee79]{border:none;background:transparent;padding:0;font-size:12px;font-weight:500;color:#2563eb;cursor:pointer;transition:color .2s ease}.layers-panel__header-link[data-v-4706ee79]:hover{color:#1d4ed8}.layers-panel__header-controls[data-v-4706ee79]{display:flex;align-items:center;gap:6px}.layers-panel__heading[data-v-4706ee79]{display:flex;flex-direction:column;gap:6px}.layers-panel__title[data-v-4706ee79]{font-size:18px;font-weight:600;color:#1f2937}.layers-panel__clear[data-v-4706ee79]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:10px;border:1px solid rgba(59,130,246,.6);background-color:#3b82f614;color:#1d4ed8;font-size:12px;font-weight:500;line-height:1;transition:background-color .15s ease,color .15s ease}.layers-panel__clear[data-v-4706ee79]:hover{background-color:#2563eb26;color:#1e40af}.layers-panel__item[data-v-4706ee79]{display:flex;align-items:center;justify-content:space-between;gap:12px}.layers-panel__label[data-v-4706ee79]{display:flex;flex-direction:column;gap:4px;color:#334155;width:100%}.layers-panel__label-row[data-v-4706ee79]{display:flex;align-items:center;gap:12px}.layers-panel__title-block[data-v-4706ee79]{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0}.layers-panel__checkbox[data-v-4706ee79]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid var(--layers-panel-checkbox-color, #94a3b8);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;transition:all .15s ease}.layers-panel__checkbox[data-v-4706ee79]:checked{background:var(--layers-panel-checkbox-color, #94a3b8);border-color:var(--layers-panel-checkbox-color, #94a3b8)}.layers-panel__checkbox[data-v-4706ee79]:checked:after{content:"";width:9px;height:9px;display:block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='9' viewBox='0 0 12 9' fill='none'%3E%3Cpath d='M10.3332 1.5L4.49984 7.33333L1.6665 4.5' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.layers-panel__checkbox[data-v-4706ee79]:hover{border-color:var(--layers-panel-checkbox-color, #94a3b8);box-shadow:none}.layers-panel__name[data-v-4706ee79]{font-size:14px;font-weight:400;color:#1f2937;min-width:0}.layers-panel__meta[data-v-4706ee79]{display:flex;align-items:center;gap:4px;margin-left:auto}.layers-panel__actions[data-v-4706ee79]{display:flex;align-items:center;gap:4px}.layers-panel__action[data-v-4706ee79]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;cursor:pointer;padding:0;color:#475569}.layers-panel__action[data-v-4706ee79]:hover{color:#1d4ed8}.layers-panel__content[data-v-4706ee79]{display:flex;flex-direction:column;gap:10px;transition:max-height .3s ease,opacity .3s ease;overflow:hidden;max-height:10000px;opacity:1;margin-top:15px}.layers-panel__content--collapsed[data-v-4706ee79]{margin-top:-5px;max-height:0;opacity:0;gap:0}.layers-panel__toggle-button[data-v-4706ee79]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.layers-panel__toggle-button[data-v-4706ee79]:hover{background:#94a3b833}.layers-panel__toggle-icon--rotated[data-v-4706ee79]{transform:rotate(180deg);transition:transform .3s ease}.card[data-v-3a3cb28b]{font-family:inherit}.fade-enter-active[data-v-3a3cb28b],.fade-leave-active[data-v-3a3cb28b]{transition:opacity .2s ease}.fade-enter-from[data-v-3a3cb28b],.fade-leave-to[data-v-3a3cb28b]{opacity:0}.map-filter[data-v-98772410]{background:#fffffff0;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px;box-shadow:0 16px 32px #0f172a1a;min-width:240px}.map-filter__header[data-v-98772410]{display:flex;align-items:center;justify-content:space-between}.map-filter__title[data-v-98772410]{margin:0;font-size:15px;font-weight:600;color:#1f2937}.map-filter__close[data-v-98772410]{width:24px;height:24px;border:none;border-radius:50%;background:#94a3b833;color:#475569;cursor:pointer}.map-filter__close[data-v-98772410]:hover{background:#3b82f633;color:#2563eb}.catalog-tab[data-v-36ed2aad]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.catalog-tab__search[data-v-36ed2aad]{position:sticky;top:0;background:inherit;z-index:1;padding-bottom:8px}.catalog-tab__list[data-v-36ed2aad]{flex:1 1 auto;display:flex;flex-direction:column;overflow-y:auto;min-height:0;padding-bottom:8px}.fade-enter-active[data-v-36ed2aad],.fade-leave-active[data-v-36ed2aad]{transition:all .2s ease}.fade-enter-from[data-v-36ed2aad],.fade-leave-to[data-v-36ed2aad]{opacity:0;max-height:0}.filter-badge[data-v-36ed2aad]{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:9999px;background:#94a3b826;color:#475569;font-size:11px;font-weight:600;border:none;cursor:pointer;transition:background .2s ease,color .2s ease}.filter-badge[data-v-36ed2aad]:hover{background:#94a3b840;color:#1f2937}.filter-badge--disabled[data-v-36ed2aad]{cursor:not-allowed;background:#94a3b814;color:#475569b3}.filter-badge__icon[data-v-36ed2aad]{width:14px;height:14px}.filter-badge__hint[data-v-36ed2aad]{position:fixed;transform:translate(-50%);max-width:220px;font-size:11px;line-height:1.3;color:#1f2937;background:#fffffff2;border:1px solid rgba(148,163,184,.35);border-radius:6px;padding:6px 8px;box-shadow:0 8px 16px #0f172a1f;pointer-events:none;white-space:normal;z-index:1000}.selected-tab[data-v-1566770c]{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.selected-tab__actions[data-v-1566770c]{flex:0 0 auto}.selected-tab__add[data-v-1566770c]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 12px;border-radius:10px;background:#3b82f614;color:#2563eb;border:none;cursor:pointer;transition:background .2s ease,color .2s ease}.selected-tab__add[data-v-1566770c]:hover{background:#3b82f629;color:#1d4ed8}.selected-tab__empty[data-v-1566770c]{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed rgba(148,163,184,.6);border-radius:16px;padding:24px;background:#f8fafce6;text-align:center;color:#6b7280}.selected-tab__empty-title[data-v-1566770c]{margin:0;font-weight:600;color:#1f2937}.selected-tab__empty-text[data-v-1566770c]{margin:0;font-size:13px}.selected-tab__scroll[data-v-1566770c]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column}.selected-tab__scroll>div[data-v-1566770c]{display:flex;flex-direction:column;gap:8px}.selected-tab__item[data-v-1566770c]{border:1px solid #e5e7eb;border-radius:10px;padding:12px;background:#fff;color:#4b5563;font-size:13px;transition:background .2s ease,border-color .2s ease}.selected-tab__item[data-v-1566770c]:hover{background:#f8fafccc}.selected-tab__item--dragging[data-v-1566770c]{opacity:.5}.selected-tab__item--over[data-v-1566770c]{border-color:#2563eb;background:#3b82f61f}.selected-tab__item-header[data-v-1566770c]{display:flex;align-items:center;justify-content:space-between;gap:12px}.selected-tab__item-info[data-v-1566770c]{display:flex;align-items:center;gap:8px;cursor:move;color:#1f2937}.selected-tab__item-handle[data-v-1566770c]{color:#64748bcc;font-size:16px}.selected-tab__item-checkbox[data-v-1566770c]{width:16px;height:16px;accent-color:#2563eb}.selected-tab__item-controls[data-v-1566770c]{display:flex;align-items:center;gap:8px}.selected-tab__item-opacity[data-v-1566770c],.selected-tab__item-menu[data-v-1566770c]{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:8px;border:none;background:transparent;color:#475569;cursor:pointer;transition:background .2s ease,color .2s ease}.selected-tab__item-opacity[data-v-1566770c]:hover,.selected-tab__item-menu[data-v-1566770c]:hover{background:#94a3b829;color:#1f2937}.selected-tab__popover[data-v-1566770c]{position:fixed;z-index:102;padding:12px;width:240px;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26}.selected-tab__popover-content[data-v-1566770c]{display:flex;align-items:center;gap:8px}.selected-tab__popover-label[data-v-1566770c]{font-size:12px;color:#6b7280}.selected-tab__popover-range[data-v-1566770c]{flex:1 1 auto;accent-color:#2563eb}.selected-tab__popover-value[data-v-1566770c]{font-size:12px;color:#475569}.selected-tab__menu[data-v-1566770c]{position:fixed;z-index:102;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26;padding:12px}.selected-tab__menu-inner[data-v-1566770c]{display:flex;flex-direction:column;gap:4px;width:190px}.selected-tab__menu-item[data-v-1566770c]{display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;background:transparent;color:#1f2937;font-size:13px;text-align:left;cursor:pointer;transition:background .2s ease}.selected-tab__menu-item[data-v-1566770c]:hover{background:#94a3b829}.selected-tab__menu-item--disabled[data-v-1566770c]{color:#63666a99;cursor:not-allowed}.selected-tab__menu-item--danger[data-v-1566770c]{color:#dc2626}.selected-tab__menu-item--danger[data-v-1566770c]:hover{background:#dc26261f}.filter-tab[data-v-c6632fbd]{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.filter-tab__header[data-v-c6632fbd]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.filter-tab__subtitle[data-v-c6632fbd]{margin:0 0 4px;font-size:12px;font-weight:500;color:#6b7280}.filter-tab__title[data-v-c6632fbd]{margin:0;font-size:16px;font-weight:600;color:#1f2937}.filter-tab__content[data-v-c6632fbd]{flex:1 1 auto;min-height:0;background:#fffffff0;border:1px solid rgba(148,163,184,.35);box-shadow:0 16px 32px #0f172a1a}.filter-tab__scroll[data-v-c6632fbd]{max-height:100%;overflow-y:auto;padding:0}.filter-tab__empty[data-v-c6632fbd]{padding:24px;text-align:center;background:#f8fafce6;border:1px dashed rgba(148,163,184,.6);border-radius:16px}.filter-tab__empty-title[data-v-c6632fbd]{margin:0 0 8px;font-size:15px;font-weight:600;color:#1f2937}.filter-tab__empty-text[data-v-c6632fbd]{margin:0;font-size:13px;color:#6b7280}.map-catalog-widget[data-v-a5b24fc9]{display:flex;flex-direction:column;max-height:100%;overflow:hidden}.map-catalog-widget__body[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.map-catalog-widget__scroll[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.map-catalog-widget__content[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;transition:max-height .3s ease,opacity .3s ease;overflow:hidden;max-height:10000px;opacity:1}.map-catalog-widget__content--collapsed[data-v-a5b24fc9]{max-height:0;opacity:0;padding:0}.map-catalog-widget__toggle-button[data-v-a5b24fc9]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-catalog-widget__toggle-button[data-v-a5b24fc9]:hover{background:#94a3b833}.map-catalog-widget__toggle-icon--rotated[data-v-a5b24fc9]{transform:rotate(180deg);transition:transform .3s ease}.map-attribute__filter[data-v-9686ce7b] .filter-badge{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:#94a3b82e;color:#475569;border:none;padding:0;transition:background-color .15s ease}.map-attribute__filter[data-v-9686ce7b] .filter-badge:hover,.map-attribute__filter[data-v-9686ce7b] .filter-badge.filter-badge--active{background:#2563eb2e;color:#1d4ed8}.map-attribute__filter[data-v-9686ce7b] .filter-badge__icon{width:16px;height:16px}.map-attribute__filter[data-v-9686ce7b] .filter-badge__panel{border-radius:16px;box-shadow:0 16px 32px #0f172a14}.map-search-widget[data-v-ba50488b]{width:100%}.map-print-control[data-v-4fae7635]{z-index:35;display:flex;flex-direction:column;align-items:flex-end;gap:12px}[data-v-4fae7635] .mapboxgl-export-list{display:none;min-width:280px;padding:20px 16px 16px;border-radius:16px;background:#fffffffa;box-shadow:0 18px 40px #0f172a40;color:#0f172a;font-size:14px;line-height:1.4;margin-right:40px}[data-v-4fae7635] .mapboxgl-export-list table{width:100%;border-collapse:separate;border-spacing:0 12px}[data-v-4fae7635] .mapboxgl-export-list td:first-child{width:35%;font-weight:500;color:#334155;padding-right:12px}[data-v-4fae7635] .mapboxgl-export-list label{display:inline-flex;align-items:center}[data-v-4fae7635] .mapboxgl-export-list select{width:100%;height:36px;border-radius:10px;border:1px solid rgba(15,23,42,.1);padding:0 12px;font-size:14px;color:#0f172a;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none}[data-v-4fae7635] .mapboxgl-export-list select:focus{outline:none;border-color:#0f172a40;box-shadow:0 0 0 2px #3b82f633}[data-v-4fae7635] .mapboxgl-export-list .generate-button{margin-top:12px;width:100%;height:40px;border-radius:12px;border:none;background:linear-gradient(134deg,#2563eb,#1d4ed8);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}[data-v-4fae7635] .mapboxgl-export-list .generate-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb59}[data-v-4fae7635] .mapboxgl-export-list .generate-button:active{transform:translateY(0);box-shadow:0 10px 20px #2563eb4d}.map-center-control[data-v-03fa94f6]{display:flex;gap:.5rem}.cursor-coordinates[data-v-334315d9]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:#ffffffeb;color:#1f2937;box-shadow:0 10px 22px #0f172a29;font-size:12px;max-width:240px}.cursor-coordinates__icon[data-v-334315d9]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#2563eb}.cursor-coordinates__icon svg[data-v-334315d9]{width:100%;height:100%}.cursor-coordinates__text[data-v-334315d9]{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,SFMono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.minimap[data-v-bc754c89]{position:relative}.minimap__button[data-v-bc754c89]{width:32px;height:32px;border-radius:50%;border:1px solid rgba(148,163,184,.35);background:#ffffffeb;color:#334155;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px #0f172a1f;transition:all .2s ease}.minimap__button[data-v-bc754c89]:hover{border-color:#3b82f680;color:#1d4ed8}.minimap__button-icon[data-v-bc754c89]{transition:transform .2s ease}.minimap__wrapper[data-v-bc754c89]{position:absolute;bottom:2.5rem;right:2rem;border-radius:10px;overflow:hidden;border:1px solid rgba(148,163,184,.4);box-shadow:0 10px 22px #0f172a1f;background:#fff}.minimap-slide-enter-active[data-v-bc754c89],.minimap-slide-leave-active[data-v-bc754c89]{transition:opacity .2s ease,transform .2s ease}.minimap-slide-enter-from[data-v-bc754c89],.minimap-slide-leave-to[data-v-bc754c89]{opacity:0;transform:translate(12px)}.drawing-panel-range[data-v-4cee5a30]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e5e7eb}.drawing-panel-range[data-v-4cee5a30]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #0003}.drawing-panel-range[data-v-4cee5a30]::-moz-range-thumb{width:16px;height:16px;background:#3b82f6;border:none;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #0003}.drawing-canvas-wrap[data-v-ed2688bc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:auto;touch-action:none}.drawing-canvas-wrap--eraser[data-v-ed2688bc]{cursor:none}.drawing-canvas[data-v-ed2688bc]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;background:transparent}.drawing-canvas--preview[data-v-ed2688bc]{pointer-events:none}.drawing-canvas__eraser-cursor[data-v-ed2688bc]{position:fixed;pointer-events:none;border:2px solid rgba(100,116,139,.8);border-radius:50%;background:#ffffff26;box-sizing:border-box;z-index:1000}.map-widget[data-v-890fa8c5]{position:relative;width:100%;background:#f1f5f9;overflow:hidden}.map-widget__view[data-v-890fa8c5]{font-family:inherit;width:100%;height:100%}.map-widget__state[data-v-890fa8c5]{position:absolute;top:16px;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:10px 18px;font-size:14px;color:#1f2937;z-index:30;box-shadow:0 12px 24px #0f172a1f}.map-widget__state--error[data-v-890fa8c5]{color:#b91c1c;border-color:#dc262659}.map-widget__filter-host[data-v-890fa8c5]{position:absolute;left:430px;flex:0 0 auto;width:0;align-self:stretch;pointer-events:auto;z-index:21}.map-widget__overlay-grid[data-v-890fa8c5]{position:absolute;top:0;right:0;bottom:0;left:0;font-family:inherit;z-index:20;pointer-events:none;display:flex;justify-content:space-between;padding:16px 16px 36px}.map-widget__side[data-v-890fa8c5]{flex:0 0 auto;display:flex;flex-direction:column;justify-content:flex-start;height:100%;width:min(100%,400px);pointer-events:none}.map-widget__side--right[data-v-890fa8c5]{align-items:flex-end}.map-widget__stack-wrapper[data-v-890fa8c5]{display:flex;flex-direction:column;min-height:0;pointer-events:none;max-height:100%;max-width:calc(100% - 29px)}.map-widget__stack-wrapper--top[data-v-890fa8c5]{flex:1 1 auto}.map-widget__stack-wrapper--bottom[data-v-890fa8c5]{flex:0 0 auto;margin-top:auto;padding-top:16px}.map-widget__stack[data-v-890fa8c5]{display:flex;flex-direction:column;gap:12px;max-height:100%;min-height:0;width:min(100%,400px);pointer-events:auto;overflow-y:auto;padding-right:4px}.map-overlay__item[data-v-890fa8c5]{display:contents;flex-direction:column;flex:0 1 auto;max-width:100%;max-height:100%;min-height:0;width:100%;overflow:hidden}.map-widget__filter-host[data-v-890fa8c5]{left:16px;top:16px;z-index:82}@media(min-width:768px){.map-widget__filter-host[data-v-890fa8c5]{left:397px}}.animate-pulse[data-v-821aeb35]{animation:pulse-821aeb35 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-821aeb35{0%,to{opacity:1}50%{opacity:.4}}[data-v-821aeb35] [data-popover-trigger]{background-color:#fff!important;border:1px solid #d1d5db!important;color:#5b657a!important;border-radius:.5rem!important;padding:.45rem 1rem!important;box-shadow:none!important;height:38px!important}[data-v-821aeb35] [data-popover-trigger]:hover,[data-v-821aeb35] [data-popover-trigger]:focus{background-color:#f3f4f6!important;border-color:#c7d2fe!important;outline:none!important}[data-v-821aeb35] [data-popover-trigger][aria-expanded=true]{background-color:#fff!important;border-color:#2563eb!important;box-shadow:0 0 0 4px #2563eb1f!important}[data-v-821aeb35] [data-popover-trigger] svg{color:inherit!important;stroke:currentColor!important}th[data-v-25566600]{position:sticky;top:0;background:#fff}.map-widget__filter-host[data-v-68374a9b]{position:absolute;left:10px;top:100px;align-self:stretch;pointer-events:auto;z-index:21}.animate-pulse[data-v-63309b89]{animation:pulse-63309b89 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-63309b89{0%,to{opacity:1}50%{opacity:.4}}[data-v-63309b89] [data-popover-trigger]{background-color:#fff!important;border:1px solid #d1d5db!important;color:#5b657a!important;border-radius:.5rem!important;padding:.45rem 1rem!important;box-shadow:none!important;height:38px!important}[data-v-63309b89] [data-popover-trigger]:hover,[data-v-63309b89] [data-popover-trigger]:focus{background-color:#f3f4f6!important;border-color:#c7d2fe!important;outline:none!important}[data-v-63309b89] [data-popover-trigger][aria-expanded=true]{background-color:#fff!important;border-color:#2563eb!important;box-shadow:0 0 0 4px #2563eb1f!important}[data-v-df90fbac] .hide-add-btn button.rounded-full{display:none!important}
|
|
1
|
+
[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:1px solid rgb(229 231 235);border-radius:.375rem;background:#fff;font-size:0;line-height:0}[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a:hover{background:#f3f4f6}[data-v-d576dfc7] .entity-table-root tbody td:nth-child(5) a:before{content:"";width:1rem;height:1rem;display:block;background-color:#2563eb;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:contain;-webkit-mask-size:contain;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z'/%3E%3Cpath d='M15 5.764v15'/%3E%3Cpath d='M9 3.236v15'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z'/%3E%3Cpath d='M15 5.764v15'/%3E%3Cpath d='M9 3.236v15'/%3E%3C/svg%3E")}.custom-pagination[data-v-e728e68b] .items-center{display:block}.maplibregl-ctrl.maplibregl-ctrl-attrib.maplibregl-compact.maplibregl-compact{display:none}.maplibre-demo-map-container{height:100%;width:100%;position:relative}#maplibre-demo-map{height:100%;width:100%;position:absolute}.map-widgets-flex{width:100%;height:100%;display:flex;justify-content:space-between;padding:20px;box-sizing:border-box}.widgets-left,.widgets-right{display:flex;flex-direction:column;gap:10px;height:100%;width:400px;pointer-events:none}.widgets-right .widget-column{align-items:flex-end}.widgets-left{align-items:flex-start}.widget-column{display:flex;flex-direction:column;gap:10px;z-index:10;height:100%}.widgets-top{overflow-y:auto}.widgets-bottom{flex-shrink:0}.widgets-top,.widgets-bottom{display:flex;flex-direction:column;gap:8px;pointer-events:auto;overflow-y:auto}.widgets-top{align-items:flex-start}.widgets-bottom{align-items:flex-end;margin-top:auto}.widgets-left{justify-content:flex-start}.map-view-root[data-v-d6e61166]{position:relative}.mapLayer-info[data-v-cc1cc7bf]{display:inline-flex;position:relative}.mapLayer-info__trigger[data-v-cc1cc7bf]{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;text-decoration:none;cursor:pointer}.mapLayer-info__icon[data-v-cc1cc7bf]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transition:color .2s ease}.mapLayer-info__icon[data-v-cc1cc7bf]:hover{color:#1d4ed8}.mapLayer-info__popover[data-v-cc1cc7bf]{position:absolute;min-width:200px}.mapLayer-info__inner[data-v-cc1cc7bf]{display:flex;flex-direction:column;gap:0}.mapLayer-info__item[data-v-cc1cc7bf]{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #e2e8f0}.mapLayer-info__item[data-v-cc1cc7bf]:last-child{border-bottom:none}.mapLayer-info__item-label[data-v-cc1cc7bf]{font-size:12px;color:#475569;font-weight:600}.mapLayer-info__item-value[data-v-cc1cc7bf]{font-size:13px;color:#1f2937}.mapLayer-info__item-value--break-all[data-v-cc1cc7bf]{word-break:break-all}.map-info[data-v-813e24fb]{width:100%}.map-info__header[data-v-813e24fb]{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding:20px 20px 12px}.map-info__actions[data-v-813e24fb]{display:flex;align-items:center;gap:8px}.map-info__title[data-v-813e24fb]{margin:0;font-size:18px;line-height:1.3;font-weight:600;color:#1f2937}.map-info__menu[data-v-813e24fb]{position:relative}.map-info__menu-button[data-v-813e24fb]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-info__menu-button[data-v-813e24fb]:hover{background:#94a3b833}.map-info__popover[data-v-813e24fb]{position:absolute;background:#fff;box-shadow:0 10px 40px 10px #00000014;border-radius:12px;padding:8px 12px;min-width:160px;z-index:50}.map-info__popover-link[data-v-813e24fb]{display:block;padding:6px 0;font-size:13px;color:#1f2937;text-decoration:none}.map-info__popover-link[data-v-813e24fb]:hover{color:#1d4ed8}.map-info__content[data-v-813e24fb]{padding:0 20px 20px;font-size:14px;color:#34495e;transition:max-height .3s ease,opacity .3s ease,padding .3s ease;overflow:hidden;max-height:1000px;opacity:1}.map-info__content--collapsed[data-v-813e24fb]{max-height:0;opacity:0;padding:0 20px 5px}.map-info__content[data-v-813e24fb] p{margin:0 0 12px}.map-info__toggle-button[data-v-813e24fb]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-info__toggle-button[data-v-813e24fb]:hover{background:#94a3b833}.map-info__toggle-icon--rotated[data-v-813e24fb]{transform:rotate(180deg)}.mapLayer-filter[data-v-cc1f0579]{display:inline-flex;position:relative}.mapLayer-filter__trigger[data-v-cc1f0579]{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;text-decoration:none;cursor:pointer;border-radius:50%;transition:background .2s ease}.mapLayer-filter__trigger[data-v-cc1f0579]:hover:not(.mapLayer-filter__trigger--disabled){background:#d4dae033}.mapLayer-filter__trigger:hover:not(.mapLayer-filter__trigger--disabled) .mapLayer-filter__icon[data-v-cc1f0579]{color:#1d4ed8}.mapLayer-filter__trigger--disabled[data-v-cc1f0579]{cursor:not-allowed;opacity:.5;pointer-events:auto}.mapLayer-filter__icon[data-v-cc1f0579]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#475569;transition:color .2s ease}.mapLayer-filter__trigger--disabled .mapLayer-filter__icon[data-v-cc1f0579]{color:inherit}.mapLayer-filter__popover[data-v-cc1f0579]{position:absolute;max-width:min-content}.mapLayer-filter__popover--static[data-v-cc1f0579]{position:static;top:auto;left:auto;transform:none!important}.map-filter[data-v-cc1f0579]{background:#fffffff0;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px}.map-filter__header[data-v-cc1f0579]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.map-filter__title[data-v-cc1f0579]{margin:0;font-size:15px;font-weight:600;color:#1f2937}.map-filter__close[data-v-cc1f0579]{width:24px;height:24px;border:none;border-radius:50%;background:#94a3b833;color:#475569;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.map-filter__close[data-v-cc1f0579]:hover{background:#3b82f633;color:#2563eb}.filter-badge__hint[data-v-cc1f0579]{position:fixed;transform:translate(-50%);max-width:220px;font-size:11px;line-height:1.3;color:#1f2937;background:#fffffff2;border:1px solid rgba(148,163,184,.35);border-radius:6px;padding:6px 8px;box-shadow:0 8px 16px #0f172a1f;pointer-events:none;white-space:normal;z-index:1000}.opacity-btn[data-v-b278347a]{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:8px;border:none;background:transparent;color:#475569;cursor:pointer;transition:background .2s ease,color .2s ease}.opacity-btn[data-v-b278347a]:hover{background:#94a3b829;color:#1f2937}.opacity-popover[data-v-b278347a]{position:fixed;z-index:102;padding:12px;width:260px;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26}.opacity-popover__content[data-v-b278347a]{display:flex;align-items:center;gap:8px}.opacity-popover__label[data-v-b278347a]{font-size:12px;color:#6b7280}.opacity-popover__range[data-v-b278347a]{flex:1 1 auto;accent-color:#2563eb}.opacity-popover__value[data-v-b278347a]{font-size:12px;color:#475569}.layers-panel[data-v-4706ee79]{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px;box-shadow:0 16px 32px #0f172a1a;min-width:220px}.layers-panel__header[data-v-4706ee79]{display:flex;justify-content:space-between;align-items:center;gap:16px}.layers-panel__header-actions[data-v-4706ee79]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.layers-panel__heading-title[data-v-4706ee79]{display:flex;align-items:baseline;gap:8px}.layers-panel__count[data-v-4706ee79]{font-size:12px;text-transform:none;color:#475569}.layers-panel__bulk-actions[data-v-4706ee79]{display:flex;align-items:center;gap:6px}.layers-panel__header-link[data-v-4706ee79]{border:none;background:transparent;padding:0;font-size:12px;font-weight:500;color:#2563eb;cursor:pointer;transition:color .2s ease}.layers-panel__header-link[data-v-4706ee79]:hover{color:#1d4ed8}.layers-panel__header-controls[data-v-4706ee79]{display:flex;align-items:center;gap:6px}.layers-panel__heading[data-v-4706ee79]{display:flex;flex-direction:column;gap:6px}.layers-panel__title[data-v-4706ee79]{font-size:18px;font-weight:600;color:#1f2937}.layers-panel__clear[data-v-4706ee79]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:10px;border:1px solid rgba(59,130,246,.6);background-color:#3b82f614;color:#1d4ed8;font-size:12px;font-weight:500;line-height:1;transition:background-color .15s ease,color .15s ease}.layers-panel__clear[data-v-4706ee79]:hover{background-color:#2563eb26;color:#1e40af}.layers-panel__item[data-v-4706ee79]{display:flex;align-items:center;justify-content:space-between;gap:12px}.layers-panel__label[data-v-4706ee79]{display:flex;flex-direction:column;gap:4px;color:#334155;width:100%}.layers-panel__label-row[data-v-4706ee79]{display:flex;align-items:center;gap:12px}.layers-panel__title-block[data-v-4706ee79]{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0}.layers-panel__checkbox[data-v-4706ee79]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid var(--layers-panel-checkbox-color, #94a3b8);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;transition:all .15s ease}.layers-panel__checkbox[data-v-4706ee79]:checked{background:var(--layers-panel-checkbox-color, #94a3b8);border-color:var(--layers-panel-checkbox-color, #94a3b8)}.layers-panel__checkbox[data-v-4706ee79]:checked:after{content:"";width:9px;height:9px;display:block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='9' viewBox='0 0 12 9' fill='none'%3E%3Cpath d='M10.3332 1.5L4.49984 7.33333L1.6665 4.5' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.layers-panel__checkbox[data-v-4706ee79]:hover{border-color:var(--layers-panel-checkbox-color, #94a3b8);box-shadow:none}.layers-panel__name[data-v-4706ee79]{font-size:14px;font-weight:400;color:#1f2937;min-width:0}.layers-panel__meta[data-v-4706ee79]{display:flex;align-items:center;gap:4px;margin-left:auto}.layers-panel__actions[data-v-4706ee79]{display:flex;align-items:center;gap:4px}.layers-panel__action[data-v-4706ee79]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;cursor:pointer;padding:0;color:#475569}.layers-panel__action[data-v-4706ee79]:hover{color:#1d4ed8}.layers-panel__content[data-v-4706ee79]{display:flex;flex-direction:column;gap:10px;transition:max-height .3s ease,opacity .3s ease;overflow:hidden;max-height:10000px;opacity:1;margin-top:15px}.layers-panel__content--collapsed[data-v-4706ee79]{margin-top:-5px;max-height:0;opacity:0;gap:0}.layers-panel__toggle-button[data-v-4706ee79]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.layers-panel__toggle-button[data-v-4706ee79]:hover{background:#94a3b833}.layers-panel__toggle-icon--rotated[data-v-4706ee79]{transform:rotate(180deg);transition:transform .3s ease}.card[data-v-3a3cb28b]{font-family:inherit}.fade-enter-active[data-v-3a3cb28b],.fade-leave-active[data-v-3a3cb28b]{transition:opacity .2s ease}.fade-enter-from[data-v-3a3cb28b],.fade-leave-to[data-v-3a3cb28b]{opacity:0}.map-filter[data-v-98772410]{background:#fffffff0;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px;box-shadow:0 16px 32px #0f172a1a;min-width:240px}.map-filter__header[data-v-98772410]{display:flex;align-items:center;justify-content:space-between}.map-filter__title[data-v-98772410]{margin:0;font-size:15px;font-weight:600;color:#1f2937}.map-filter__close[data-v-98772410]{width:24px;height:24px;border:none;border-radius:50%;background:#94a3b833;color:#475569;cursor:pointer}.map-filter__close[data-v-98772410]:hover{background:#3b82f633;color:#2563eb}.catalog-tab[data-v-36ed2aad]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.catalog-tab__search[data-v-36ed2aad]{position:sticky;top:0;background:inherit;z-index:1;padding-bottom:8px}.catalog-tab__list[data-v-36ed2aad]{flex:1 1 auto;display:flex;flex-direction:column;overflow-y:auto;min-height:0;padding-bottom:8px}.fade-enter-active[data-v-36ed2aad],.fade-leave-active[data-v-36ed2aad]{transition:all .2s ease}.fade-enter-from[data-v-36ed2aad],.fade-leave-to[data-v-36ed2aad]{opacity:0;max-height:0}.filter-badge[data-v-36ed2aad]{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:9999px;background:#94a3b826;color:#475569;font-size:11px;font-weight:600;border:none;cursor:pointer;transition:background .2s ease,color .2s ease}.filter-badge[data-v-36ed2aad]:hover{background:#94a3b840;color:#1f2937}.filter-badge--disabled[data-v-36ed2aad]{cursor:not-allowed;background:#94a3b814;color:#475569b3}.filter-badge__icon[data-v-36ed2aad]{width:14px;height:14px}.filter-badge__hint[data-v-36ed2aad]{position:fixed;transform:translate(-50%);max-width:220px;font-size:11px;line-height:1.3;color:#1f2937;background:#fffffff2;border:1px solid rgba(148,163,184,.35);border-radius:6px;padding:6px 8px;box-shadow:0 8px 16px #0f172a1f;pointer-events:none;white-space:normal;z-index:1000}.selected-tab[data-v-1566770c]{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.selected-tab__actions[data-v-1566770c]{flex:0 0 auto}.selected-tab__add[data-v-1566770c]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 12px;border-radius:10px;background:#3b82f614;color:#2563eb;border:none;cursor:pointer;transition:background .2s ease,color .2s ease}.selected-tab__add[data-v-1566770c]:hover{background:#3b82f629;color:#1d4ed8}.selected-tab__empty[data-v-1566770c]{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed rgba(148,163,184,.6);border-radius:16px;padding:24px;background:#f8fafce6;text-align:center;color:#6b7280}.selected-tab__empty-title[data-v-1566770c]{margin:0;font-weight:600;color:#1f2937}.selected-tab__empty-text[data-v-1566770c]{margin:0;font-size:13px}.selected-tab__scroll[data-v-1566770c]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column}.selected-tab__scroll>div[data-v-1566770c]{display:flex;flex-direction:column;gap:8px}.selected-tab__item[data-v-1566770c]{border:1px solid #e5e7eb;border-radius:10px;padding:12px;background:#fff;color:#4b5563;font-size:13px;transition:background .2s ease,border-color .2s ease}.selected-tab__item[data-v-1566770c]:hover{background:#f8fafccc}.selected-tab__item--dragging[data-v-1566770c]{opacity:.5}.selected-tab__item--over[data-v-1566770c]{border-color:#2563eb;background:#3b82f61f}.selected-tab__item-header[data-v-1566770c]{display:flex;align-items:center;justify-content:space-between;gap:12px}.selected-tab__item-info[data-v-1566770c]{display:flex;align-items:center;gap:8px;cursor:move;color:#1f2937}.selected-tab__item-handle[data-v-1566770c]{color:#64748bcc;font-size:16px}.selected-tab__item-checkbox[data-v-1566770c]{width:16px;height:16px;accent-color:#2563eb}.selected-tab__item-controls[data-v-1566770c]{display:flex;align-items:center;gap:8px}.selected-tab__item-opacity[data-v-1566770c],.selected-tab__item-menu[data-v-1566770c]{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:8px;border:none;background:transparent;color:#475569;cursor:pointer;transition:background .2s ease,color .2s ease}.selected-tab__item-opacity[data-v-1566770c]:hover,.selected-tab__item-menu[data-v-1566770c]:hover{background:#94a3b829;color:#1f2937}.selected-tab__popover[data-v-1566770c]{position:fixed;z-index:102;padding:12px;width:240px;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26}.selected-tab__popover-content[data-v-1566770c]{display:flex;align-items:center;gap:8px}.selected-tab__popover-label[data-v-1566770c]{font-size:12px;color:#6b7280}.selected-tab__popover-range[data-v-1566770c]{flex:1 1 auto;accent-color:#2563eb}.selected-tab__popover-value[data-v-1566770c]{font-size:12px;color:#475569}.selected-tab__menu[data-v-1566770c]{position:fixed;z-index:102;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26;padding:12px}.selected-tab__menu-inner[data-v-1566770c]{display:flex;flex-direction:column;gap:4px;width:190px}.selected-tab__menu-item[data-v-1566770c]{display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;background:transparent;color:#1f2937;font-size:13px;text-align:left;cursor:pointer;transition:background .2s ease}.selected-tab__menu-item[data-v-1566770c]:hover{background:#94a3b829}.selected-tab__menu-item--disabled[data-v-1566770c]{color:#63666a99;cursor:not-allowed}.selected-tab__menu-item--danger[data-v-1566770c]{color:#dc2626}.selected-tab__menu-item--danger[data-v-1566770c]:hover{background:#dc26261f}.filter-tab[data-v-c6632fbd]{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.filter-tab__header[data-v-c6632fbd]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.filter-tab__subtitle[data-v-c6632fbd]{margin:0 0 4px;font-size:12px;font-weight:500;color:#6b7280}.filter-tab__title[data-v-c6632fbd]{margin:0;font-size:16px;font-weight:600;color:#1f2937}.filter-tab__content[data-v-c6632fbd]{flex:1 1 auto;min-height:0;background:#fffffff0;border:1px solid rgba(148,163,184,.35);box-shadow:0 16px 32px #0f172a1a}.filter-tab__scroll[data-v-c6632fbd]{max-height:100%;overflow-y:auto;padding:0}.filter-tab__empty[data-v-c6632fbd]{padding:24px;text-align:center;background:#f8fafce6;border:1px dashed rgba(148,163,184,.6);border-radius:16px}.filter-tab__empty-title[data-v-c6632fbd]{margin:0 0 8px;font-size:15px;font-weight:600;color:#1f2937}.filter-tab__empty-text[data-v-c6632fbd]{margin:0;font-size:13px;color:#6b7280}.map-catalog-widget[data-v-a5b24fc9]{display:flex;flex-direction:column;max-height:100%;overflow:hidden}.map-catalog-widget__body[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.map-catalog-widget__scroll[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.map-catalog-widget__content[data-v-a5b24fc9]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;transition:max-height .3s ease,opacity .3s ease;overflow:hidden;max-height:10000px;opacity:1}.map-catalog-widget__content--collapsed[data-v-a5b24fc9]{max-height:0;opacity:0;padding:0}.map-catalog-widget__toggle-button[data-v-a5b24fc9]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.map-catalog-widget__toggle-button[data-v-a5b24fc9]:hover{background:#94a3b833}.map-catalog-widget__toggle-icon--rotated[data-v-a5b24fc9]{transform:rotate(180deg);transition:transform .3s ease}.map-attribute__filter[data-v-9686ce7b] .filter-badge{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:#94a3b82e;color:#475569;border:none;padding:0;transition:background-color .15s ease}.map-attribute__filter[data-v-9686ce7b] .filter-badge:hover,.map-attribute__filter[data-v-9686ce7b] .filter-badge.filter-badge--active{background:#2563eb2e;color:#1d4ed8}.map-attribute__filter[data-v-9686ce7b] .filter-badge__icon{width:16px;height:16px}.map-attribute__filter[data-v-9686ce7b] .filter-badge__panel{border-radius:16px;box-shadow:0 16px 32px #0f172a14}.map-search-widget[data-v-ba50488b]{width:100%}.map-print-control[data-v-4fae7635]{z-index:35;display:flex;flex-direction:column;align-items:flex-end;gap:12px}[data-v-4fae7635] .mapboxgl-export-list{display:none;min-width:280px;padding:20px 16px 16px;border-radius:16px;background:#fffffffa;box-shadow:0 18px 40px #0f172a40;color:#0f172a;font-size:14px;line-height:1.4;margin-right:40px}[data-v-4fae7635] .mapboxgl-export-list table{width:100%;border-collapse:separate;border-spacing:0 12px}[data-v-4fae7635] .mapboxgl-export-list td:first-child{width:35%;font-weight:500;color:#334155;padding-right:12px}[data-v-4fae7635] .mapboxgl-export-list label{display:inline-flex;align-items:center}[data-v-4fae7635] .mapboxgl-export-list select{width:100%;height:36px;border-radius:10px;border:1px solid rgba(15,23,42,.1);padding:0 12px;font-size:14px;color:#0f172a;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none}[data-v-4fae7635] .mapboxgl-export-list select:focus{outline:none;border-color:#0f172a40;box-shadow:0 0 0 2px #3b82f633}[data-v-4fae7635] .mapboxgl-export-list .generate-button{margin-top:12px;width:100%;height:40px;border-radius:12px;border:none;background:linear-gradient(134deg,#2563eb,#1d4ed8);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}[data-v-4fae7635] .mapboxgl-export-list .generate-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb59}[data-v-4fae7635] .mapboxgl-export-list .generate-button:active{transform:translateY(0);box-shadow:0 10px 20px #2563eb4d}.map-center-control[data-v-03fa94f6]{display:flex;gap:.5rem}.cursor-coordinates[data-v-334315d9]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:#ffffffeb;color:#1f2937;box-shadow:0 10px 22px #0f172a29;font-size:12px;max-width:240px}.cursor-coordinates__icon[data-v-334315d9]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#2563eb}.cursor-coordinates__icon svg[data-v-334315d9]{width:100%;height:100%}.cursor-coordinates__text[data-v-334315d9]{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,SFMono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.minimap[data-v-bc754c89]{position:relative}.minimap__button[data-v-bc754c89]{width:32px;height:32px;border-radius:50%;border:1px solid rgba(148,163,184,.35);background:#ffffffeb;color:#334155;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px #0f172a1f;transition:all .2s ease}.minimap__button[data-v-bc754c89]:hover{border-color:#3b82f680;color:#1d4ed8}.minimap__button-icon[data-v-bc754c89]{transition:transform .2s ease}.minimap__wrapper[data-v-bc754c89]{position:absolute;bottom:2.5rem;right:2rem;border-radius:10px;overflow:hidden;border:1px solid rgba(148,163,184,.4);box-shadow:0 10px 22px #0f172a1f;background:#fff}.minimap-slide-enter-active[data-v-bc754c89],.minimap-slide-leave-active[data-v-bc754c89]{transition:opacity .2s ease,transform .2s ease}.minimap-slide-enter-from[data-v-bc754c89],.minimap-slide-leave-to[data-v-bc754c89]{opacity:0;transform:translate(12px)}.drawing-panel-range[data-v-4cee5a30]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e5e7eb}.drawing-panel-range[data-v-4cee5a30]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #0003}.drawing-panel-range[data-v-4cee5a30]::-moz-range-thumb{width:16px;height:16px;background:#3b82f6;border:none;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #0003}.drawing-canvas-wrap[data-v-ed2688bc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:auto;touch-action:none}.drawing-canvas-wrap--eraser[data-v-ed2688bc]{cursor:none}.drawing-canvas[data-v-ed2688bc]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;background:transparent}.drawing-canvas--preview[data-v-ed2688bc]{pointer-events:none}.drawing-canvas__eraser-cursor[data-v-ed2688bc]{position:fixed;pointer-events:none;border:2px solid rgba(100,116,139,.8);border-radius:50%;background:#ffffff26;box-sizing:border-box;z-index:1000}.map-widget[data-v-890fa8c5]{position:relative;width:100%;background:#f1f5f9;overflow:hidden}.map-widget__view[data-v-890fa8c5]{font-family:inherit;width:100%;height:100%}.map-widget__state[data-v-890fa8c5]{position:absolute;top:16px;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:10px 18px;font-size:14px;color:#1f2937;z-index:30;box-shadow:0 12px 24px #0f172a1f}.map-widget__state--error[data-v-890fa8c5]{color:#b91c1c;border-color:#dc262659}.map-widget__filter-host[data-v-890fa8c5]{position:absolute;left:430px;flex:0 0 auto;width:0;align-self:stretch;pointer-events:auto;z-index:21}.map-widget__overlay-grid[data-v-890fa8c5]{position:absolute;top:0;right:0;bottom:0;left:0;font-family:inherit;z-index:20;pointer-events:none;display:flex;justify-content:space-between;padding:16px 16px 36px}.map-widget__side[data-v-890fa8c5]{flex:0 0 auto;display:flex;flex-direction:column;justify-content:flex-start;height:100%;width:min(100%,400px);pointer-events:none}.map-widget__side--right[data-v-890fa8c5]{align-items:flex-end}.map-widget__stack-wrapper[data-v-890fa8c5]{display:flex;flex-direction:column;min-height:0;pointer-events:none;max-height:100%;max-width:calc(100% - 29px)}.map-widget__stack-wrapper--top[data-v-890fa8c5]{flex:1 1 auto}.map-widget__stack-wrapper--bottom[data-v-890fa8c5]{flex:0 0 auto;margin-top:auto;padding-top:16px}.map-widget__stack[data-v-890fa8c5]{display:flex;flex-direction:column;gap:12px;max-height:100%;min-height:0;width:min(100%,400px);pointer-events:auto;overflow-y:auto;padding-right:4px}.map-overlay__item[data-v-890fa8c5]{display:contents;flex-direction:column;flex:0 1 auto;max-width:100%;max-height:100%;min-height:0;width:100%;overflow:hidden}.map-widget__filter-host[data-v-890fa8c5]{left:16px;top:16px;z-index:82}@media (min-width: 768px){.map-widget__filter-host[data-v-890fa8c5]{left:397px}}.animate-pulse[data-v-821aeb35]{animation:pulse-821aeb35 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-821aeb35{0%,to{opacity:1}50%{opacity:.4}}[data-v-821aeb35] [data-popover-trigger]{background-color:#fff!important;border:1px solid #d1d5db!important;color:#5b657a!important;border-radius:.5rem!important;padding:.45rem 1rem!important;box-shadow:none!important;height:38px!important}[data-v-821aeb35] [data-popover-trigger]:hover,[data-v-821aeb35] [data-popover-trigger]:focus{background-color:#f3f4f6!important;border-color:#c7d2fe!important;outline:none!important}[data-v-821aeb35] [data-popover-trigger][aria-expanded=true]{background-color:#fff!important;border-color:#2563eb!important;box-shadow:0 0 0 4px #2563eb1f!important}[data-v-821aeb35] [data-popover-trigger] svg{color:inherit!important;stroke:currentColor!important}th[data-v-25566600]{position:sticky;top:0;background:#fff}.map-widget__filter-host[data-v-68374a9b]{position:absolute;left:10px;top:100px;align-self:stretch;pointer-events:auto;z-index:21}.animate-pulse[data-v-63309b89]{animation:pulse-63309b89 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-63309b89{0%,to{opacity:1}50%{opacity:.4}}[data-v-63309b89] [data-popover-trigger]{background-color:#fff!important;border:1px solid #d1d5db!important;color:#5b657a!important;border-radius:.5rem!important;padding:.45rem 1rem!important;box-shadow:none!important;height:38px!important}[data-v-63309b89] [data-popover-trigger]:hover,[data-v-63309b89] [data-popover-trigger]:focus{background-color:#f3f4f6!important;border-color:#c7d2fe!important;outline:none!important}[data-v-63309b89] [data-popover-trigger][aria-expanded=true]{background-color:#fff!important;border-color:#2563eb!important;box-shadow:0 0 0 4px #2563eb1f!important}[data-v-df90fbac] .hide-add-btn button.rounded-full{display:none!important}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"id": "1",
|
|
4
|
-
"text": "Діючий",
|
|
5
|
-
"color": "#1ab394"
|
|
6
|
-
},
|
|
7
|
-
{
|
|
8
|
-
"id": "2",
|
|
9
|
-
"text": "Зупинений",
|
|
10
|
-
"color": "#ed82c8"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"id": "3",
|
|
14
|
-
"text": "Скасований",
|
|
15
|
-
"color": "#4a4a4a"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"id": "5",
|
|
19
|
-
"text": "Проектний",
|
|
20
|
-
"color": "#6495ed"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"id": "7",
|
|
24
|
-
"text": "Очікує розгляду",
|
|
25
|
-
"color": "#92b8ef"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"id": "10",
|
|
29
|
-
"text": "Архівний",
|
|
30
|
-
"color": "#d48428"
|
|
31
|
-
}
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "1",
|
|
4
|
+
"text": "Діючий",
|
|
5
|
+
"color": "#1ab394"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "2",
|
|
9
|
+
"text": "Зупинений",
|
|
10
|
+
"color": "#ed82c8"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "3",
|
|
14
|
+
"text": "Скасований",
|
|
15
|
+
"color": "#4a4a4a"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "5",
|
|
19
|
+
"text": "Проектний",
|
|
20
|
+
"color": "#6495ed"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "7",
|
|
24
|
+
"text": "Очікує розгляду",
|
|
25
|
+
"color": "#92b8ef"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "10",
|
|
29
|
+
"text": "Архівний",
|
|
30
|
+
"color": "#d48428"
|
|
31
|
+
}
|
|
32
32
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
select uid, coalesce(coalesce(sur_name,'')||coalesce(' '||user_name,'') ||coalesce(' '||father_name,''),login) as text from admin.users
|
|
1
|
+
select uid, coalesce(coalesce(sur_name,'')||coalesce(' '||user_name,'') ||coalesce(' '||father_name,''),login) as text from admin.users
|
package/package.json
CHANGED
|
@@ -35,7 +35,7 @@ export default async function checkRasterFile({ rows, reply, nocache }) {
|
|
|
35
35
|
relpath, srid, idx,
|
|
36
36
|
}) => {
|
|
37
37
|
callback(`${idx + 1}/${rows.length} (${relpath})`);
|
|
38
|
-
const relpath1 = [config.mapnik?.folder,
|
|
38
|
+
const relpath1 = ['raster', config.mapnik?.folder, relpath].filter(Boolean).join('/');
|
|
39
39
|
|
|
40
40
|
// check raster upload status, skip for directories
|
|
41
41
|
const uploadStatus = !path.extname(relpath) ? {} : await GetRasterStatus({ path: relpath1 });
|
|
@@ -12,6 +12,11 @@ const dirname = path.dirname(filepath);
|
|
|
12
12
|
const PROTO_PATH = path.join(dirname, '../', 'map.proto');
|
|
13
13
|
// const PROTO_PATH = config.mapServerAddress && config.mapServerAddress.startsWith('127.0.0.1') ? path.join(dirname, '../../../../../../service/mapnikp/map.proto') : path.join(dirname, '../', 'map.proto');
|
|
14
14
|
|
|
15
|
+
// temporary support of old style environment variables
|
|
16
|
+
if (!config.mapnik?.server) {
|
|
17
|
+
config.mapnik = { server: config.mapServerAddress };
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
const { mapnik } = config;
|
|
16
21
|
|
|
17
22
|
if (!mapnik?.server) {
|
|
@@ -31,9 +31,7 @@ message RenderTileRequest {
|
|
|
31
31
|
string path = 2;
|
|
32
32
|
repeated double bbox = 3; // [minx, miny, maxx, maxy]
|
|
33
33
|
int32 width = 4;
|
|
34
|
-
string ttl = 5; // "5m", "1h", "1d" or "0"
|
|
35
34
|
string debug = 6;
|
|
36
|
-
optional bool skipSubdir = 7;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
message RenderTileOut {
|
|
@@ -115,7 +113,6 @@ message CreateXMLRequest {
|
|
|
115
113
|
string debug = 7;
|
|
116
114
|
string nocache = 8;
|
|
117
115
|
string proj4 = 9;
|
|
118
|
-
bool skipSubdir = 10;
|
|
119
116
|
}
|
|
120
117
|
|
|
121
118
|
message UploadXMLRequest {
|
|
@@ -156,7 +153,6 @@ message GetStatusOut {
|
|
|
156
153
|
|
|
157
154
|
message GetStatRequest {
|
|
158
155
|
string period = 1; // "5m", "1h", "1d"
|
|
159
|
-
string ttl = 2; // "0"
|
|
160
156
|
}
|
|
161
157
|
|
|
162
158
|
message GetStatOut {
|
|
@@ -184,10 +180,8 @@ message GetLogsOut {
|
|
|
184
180
|
|
|
185
181
|
message GetRasterInfoRequest {
|
|
186
182
|
string path = 1;
|
|
187
|
-
string ttl = 2;
|
|
188
183
|
int64 srid = 3;
|
|
189
184
|
string proj4 = 4;
|
|
190
|
-
bool skipSubdir = 5;
|
|
191
185
|
}
|
|
192
186
|
|
|
193
187
|
message FileItem {
|
|
@@ -20,7 +20,7 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
20
20
|
const fields = columns.map(({ name, dataTypeID, title }) => ({
|
|
21
21
|
name,
|
|
22
22
|
type: columnType[pg.pgType?.[dataTypeID] || 'text'],
|
|
23
|
-
label: title || name
|
|
23
|
+
label: title || name,
|
|
24
24
|
}));
|
|
25
25
|
|
|
26
26
|
const mapList = getTemplates('map').map(el => el[0]);
|
|
@@ -50,7 +50,7 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
50
50
|
...(Array.isArray(obj?.layers) ? obj.layers : []),
|
|
51
51
|
...(Array.isArray(obj?.ogc) ? obj.ogc : []),
|
|
52
52
|
...(Array.isArray(obj?.cartocss) ? obj.cartocss : []),
|
|
53
|
-
...(Array.isArray(obj?.rasters) ? obj.rasters : [])
|
|
53
|
+
...(Array.isArray(obj?.rasters) ? obj.rasters : []),
|
|
54
54
|
];
|
|
55
55
|
const layerIds = [...new Set(rawIds.map(id => id?.toString().trim()).filter(Boolean))];
|
|
56
56
|
|
|
@@ -58,17 +58,17 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
58
58
|
|
|
59
59
|
if (layerIds.length > 0) {
|
|
60
60
|
const [resServices, resOgc, resRasters, resCarto] = await Promise.all([
|
|
61
|
-
pg.query(`SELECT service_id::text as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center FROM gis.services WHERE is_active = true AND is_public = true AND service_id::text = ANY($1)`, [layerIds]),
|
|
61
|
+
pg.query(`SELECT service_id::text as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center, coalesce('/api/vtile/'||service_id||'/ua/{z}/{x}/{y}.vmt',null) as url FROM gis.services WHERE is_active = true AND is_public = true AND service_id::text = ANY($1)`, [layerIds]),
|
|
62
62
|
pg.query(`SELECT ogc_service_id::text as id, url as service_url, * FROM gis.ogc_service WHERE enabled = true AND ispublic = true AND ogc_service_id::text = ANY($1)`, [layerIds]),
|
|
63
|
-
pg.query(`SELECT raster_id::text as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center FROM gis.rasters WHERE is_active = true AND is_public = true AND isadmin = false AND raster_id::text = ANY($1)`, [layerIds]),
|
|
64
|
-
pg.query(`SELECT cartocss_id::text as id, *, st_asgeojson(geom)::json as bbox FROM gis.cartocss WHERE enabled = true AND is_public = true AND cartocss_id::text = ANY($1)`, [layerIds])
|
|
63
|
+
pg.query(`SELECT raster_id::text as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center, coalesce('/api/gis-rtile/'||raster_id||'/{z}/{x}/{y}.png',null) as url FROM gis.rasters WHERE is_active = true AND is_public = true AND isadmin = false AND raster_id::text = ANY($1)`, [layerIds]),
|
|
64
|
+
pg.query(`SELECT cartocss_id::text as id, *, st_asgeojson(geom)::json as bbox, coalesce('/api/gis-rtile/'||cartocss_id||'/{z}/{x}/{y}.png',null) as url FROM gis.cartocss WHERE enabled = true AND is_public = true AND cartocss_id::text = ANY($1)`, [layerIds]),
|
|
65
65
|
]);
|
|
66
66
|
|
|
67
67
|
const allFetchedLayers = [
|
|
68
68
|
...resServices.rows.map(row => ({ ...row, type: row.service_type || 'layer' })),
|
|
69
69
|
...resOgc.rows.map(row => ({ ...row, type: 'ogc', source_path: row.table_name })),
|
|
70
70
|
...resRasters.rows.map(row => ({ ...row, type: 'raster' })),
|
|
71
|
-
...resCarto.rows.map(row => ({ ...row, type: 'cartocss' }))
|
|
71
|
+
...resCarto.rows.map(row => ({ ...row, type: 'cartocss' })),
|
|
72
72
|
];
|
|
73
73
|
|
|
74
74
|
const dbLayersMap = new Map(allFetchedLayers.map(l => [String(l.id), l]));
|
|
@@ -91,7 +91,8 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
91
91
|
if (layerData.style && typeof layerData.style === 'string') {
|
|
92
92
|
if (layerData.type === 'cartocss') {
|
|
93
93
|
layerData.style = layerData.style.replace(/\s+/g, ' ').trim();
|
|
94
|
-
}
|
|
94
|
+
}
|
|
95
|
+
else if (layerData.type !== 'ogc') {
|
|
95
96
|
layerData.style = yml2json(layerData.style);
|
|
96
97
|
}
|
|
97
98
|
}
|
|
@@ -110,4 +111,4 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
return reply.status(200).send(params.id ? { ...rows[0], fields } : { rows, fields });
|
|
113
|
-
}
|
|
114
|
+
}
|
|
@@ -54,12 +54,12 @@ export default async function clearTiles({
|
|
|
54
54
|
|
|
55
55
|
const getParams = () => {
|
|
56
56
|
if (carto.cartocss_id && carto.source_path) {
|
|
57
|
-
return { name: [config.mapnik?.folder,
|
|
57
|
+
return { name: ['vector', config.mapnik?.folder, carto.source_path].filter(Boolean).join('/') };
|
|
58
58
|
}
|
|
59
59
|
if (carto.cartocss_id) {
|
|
60
|
-
return { name: [config.mapnik?.folder,
|
|
60
|
+
return { name: ['xml', config.mapnik?.folder, carto.cartocss_id].filter(Boolean).join('/') };
|
|
61
61
|
}
|
|
62
|
-
return { path: [config.mapnik?.folder,
|
|
62
|
+
return { path: ['raster', config.mapnik?.folder, raster.source_path].filter(Boolean).join('/') };
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
const { path: relpath, name } = getParams();
|
|
@@ -33,7 +33,7 @@ export default async function createXml({
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// const relpath = `/map/raster/${data.source_path}`;
|
|
36
|
-
const relpath = [config.mapnik?.folder,
|
|
36
|
+
const relpath = ['raster', config.mapnik?.folder, data.source_path].filter(Boolean).join('/');
|
|
37
37
|
|
|
38
38
|
// check raster upload status, skip for directories
|
|
39
39
|
const uploadStatus = path.extname(data.source_path) ? await GetRasterStatus({ path: relpath }) : {};
|
|
@@ -53,7 +53,7 @@ export default async function createXml({
|
|
|
53
53
|
// create at xml/:id with name only, always - by path
|
|
54
54
|
const resp = await CreateXML({
|
|
55
55
|
path: relpath,
|
|
56
|
-
name: id, // create additional xml named as primary key at xml directory
|
|
56
|
+
name: [config.mapnik?.folder, id].filter(Boolean).join('/'), // create additional xml named as primary key at xml directory
|
|
57
57
|
previewZoom: data.raster_zoom, // preview<=>detailed, default = 16 if file size > 1GB
|
|
58
58
|
// srid: data.srid, // auto detected if not supplied
|
|
59
59
|
proj4,
|
|
@@ -31,7 +31,7 @@ export default async function rasterInfo({
|
|
|
31
31
|
|
|
32
32
|
const proj4 = raster.proj4 || (raster.srid && pg.pk?.['public.spatial_ref_sys'] ? await pg.query('select proj4text from public.spatial_ref_sys where srid=$1', [raster.srid]).then(el => el.rows?.[0]?.proj4text) : undefined);
|
|
33
33
|
|
|
34
|
-
const relpath = [config.mapnik?.folder,
|
|
34
|
+
const relpath = ['raster', config.mapnik?.folder, raster.source_path].filter(Boolean).join('/');
|
|
35
35
|
|
|
36
36
|
const { data, cache, error } = await GetRasterInfo({
|
|
37
37
|
path: relpath,
|
|
@@ -95,12 +95,12 @@ export default async function gisRtile({
|
|
|
95
95
|
|
|
96
96
|
const getParams = () => {
|
|
97
97
|
if (data.type === 'css' && data.source_path) {
|
|
98
|
-
return { name: path.posix.join(config.mapnik?.folder || '',
|
|
98
|
+
return { name: path.posix.join('vector', config.mapnik?.folder || '', data.source_path) };
|
|
99
99
|
}
|
|
100
100
|
if (data.type === 'css') {
|
|
101
|
-
return { name: path.posix.join(config.mapnik?.folder || '',
|
|
101
|
+
return { name: path.posix.join('xml', config.mapnik?.folder || '', id) };
|
|
102
102
|
}
|
|
103
|
-
return { path: path.posix.join(config.mapnik?.folder || '',
|
|
103
|
+
return { path: path.posix.join('raster', config.mapnik?.folder || '', data.source_path) };
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
const { path: rpath, name } = getParams();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import carto from 'carto';
|
|
2
2
|
|
|
3
|
+
import { config } from '@opengis/fastify-table/utils.js';
|
|
3
4
|
import mapnik from '../../../plugins/mapnik/funcs/mapnik.js';
|
|
4
5
|
|
|
5
6
|
const { UploadXML } = mapnik();
|
|
@@ -98,8 +99,8 @@ export default async function uploadXML({
|
|
|
98
99
|
throw new Error('xml generation error');
|
|
99
100
|
}
|
|
100
101
|
const { status, error } = await UploadXML({
|
|
101
|
-
path: relpath ?
|
|
102
|
-
name: relpath ? null : id,
|
|
102
|
+
path: relpath ? ['vector', config.mapnik?.folder || '', relpath].filter(Boolean).join('/') : null,
|
|
103
|
+
name: relpath ? null : [config.mapnik?.folder, id].filter(Boolean).join('/'),
|
|
103
104
|
xml: xmlFileText,
|
|
104
105
|
}).catch((err) => ({ error: err.toString() }));
|
|
105
106
|
|