@opengis/gis 0.2.79 → 0.2.80
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
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
th[data-v-93fedaf0]{position:sticky;top:0;background:#fff}.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}.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}.card[data-v-b9b6f5d5]{font-family:inherit}.fade-enter-active[data-v-b9b6f5d5],.fade-leave-active[data-v-b9b6f5d5]{transition:opacity .2s ease}.fade-enter-from[data-v-b9b6f5d5],.fade-leave-to[data-v-b9b6f5d5]{opacity:0}.map-center-control[data-v-03fa94f6]{display:flex;gap:.5rem}.map-widget__filter-host[data-v-5e9526e9]{position:absolute;left:10px;top:100px;align-self:stretch;pointer-events:auto;z-index:21}.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)}.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-496b3875]{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-496b3875]{display:flex;justify-content:space-between;align-items:center;gap:16px}.layers-panel__header-actions[data-v-496b3875]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.layers-panel__heading-title[data-v-496b3875]{display:flex;align-items:baseline;gap:8px}.layers-panel__count[data-v-496b3875]{font-size:12px;text-transform:none;color:#475569}.layers-panel__bulk-actions[data-v-496b3875]{display:flex;align-items:center;gap:6px}.layers-panel__header-link[data-v-496b3875]{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-496b3875]:hover{color:#1d4ed8}.layers-panel__header-controls[data-v-496b3875]{display:flex;align-items:center;gap:6px}.layers-panel__heading[data-v-496b3875]{display:flex;flex-direction:column;gap:6px}.layers-panel__title[data-v-496b3875]{font-size:18px;font-weight:600;color:#1f2937}.layers-panel__description[data-v-496b3875]{margin:0;font-size:14px;color:#34495e}.layers-panel__clear[data-v-496b3875]{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-496b3875]:hover{background-color:#2563eb26;color:#1e40af}.layers-panel__item[data-v-496b3875]{display:flex;align-items:center;justify-content:space-between;gap:12px}.layers-panel__label[data-v-496b3875]{display:flex;flex-direction:column;gap:4px;color:#334155;width:100%}.layers-panel__label-row[data-v-496b3875]{display:flex;align-items:center;gap:12px}.layers-panel__title-block[data-v-496b3875]{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0}.layers-panel__checkbox[data-v-496b3875]{-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-496b3875]:checked{background:var(--layers-panel-checkbox-color, #94a3b8);border-color:var(--layers-panel-checkbox-color, #94a3b8)}.layers-panel__checkbox[data-v-496b3875]: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-496b3875]:hover{border-color:var(--layers-panel-checkbox-color, #94a3b8);box-shadow:none}.layers-panel__name[data-v-496b3875]{font-size:14px;font-weight:400;color:#1f2937;min-width:0}.layers-panel__meta[data-v-496b3875]{display:flex;align-items:center;gap:4px;margin-left:auto}.layers-panel__actions[data-v-496b3875]{display:flex;align-items:center;gap:4px}.layers-panel__action[data-v-496b3875]{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-496b3875]:hover{color:#1d4ed8}.layers-panel__content[data-v-496b3875]{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-496b3875]{margin-top:-5px;max-height:0;opacity:0;gap:0}.layers-panel__toggle-button[data-v-496b3875]{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-496b3875]:hover{background:#94a3b833}.layers-panel__toggle-icon--rotated[data-v-496b3875]{transform:rotate(180deg);transition:transform .3s ease}.catalog-tab[data-v-f68d8bda]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.catalog-tab__search[data-v-f68d8bda]{position:sticky;top:0;background:inherit;z-index:1;padding-bottom:8px}.catalog-tab__list[data-v-f68d8bda]{flex:1 1 auto;display:flex;flex-direction:column;overflow-y:auto;min-height:0;padding-bottom:8px}.fade-enter-active[data-v-f68d8bda],.fade-leave-active[data-v-f68d8bda]{transition:all .2s ease}.fade-enter-from[data-v-f68d8bda],.fade-leave-to[data-v-f68d8bda]{opacity:0;max-height:0}.filter-badge[data-v-f68d8bda]{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-f68d8bda]:hover{background:#94a3b840;color:#1f2937}.filter-badge--disabled[data-v-f68d8bda]{cursor:not-allowed;background:#94a3b814;color:#475569b3}.filter-badge__icon[data-v-f68d8bda]{width:14px;height:14px}.filter-badge__hint[data-v-f68d8bda]{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-39b6f281]{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.selected-tab__actions[data-v-39b6f281]{flex:0 0 auto}.selected-tab__add[data-v-39b6f281]{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-39b6f281]:hover{background:#3b82f629;color:#1d4ed8}.selected-tab__empty[data-v-39b6f281]{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-39b6f281]{margin:0;font-weight:600;color:#1f2937}.selected-tab__empty-text[data-v-39b6f281]{margin:0;font-size:13px}.selected-tab__scroll[data-v-39b6f281]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column}.selected-tab__scroll>div[data-v-39b6f281]{display:flex;flex-direction:column;gap:8px}.selected-tab__item[data-v-39b6f281]{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-39b6f281]:hover{background:#f8fafccc}.selected-tab__item--dragging[data-v-39b6f281]{opacity:.5}.selected-tab__item--over[data-v-39b6f281]{border-color:#2563eb;background:#3b82f61f}.selected-tab__item-header[data-v-39b6f281]{display:flex;align-items:center;justify-content:space-between;gap:12px}.selected-tab__item-info[data-v-39b6f281]{display:flex;align-items:center;gap:8px;cursor:move;color:#1f2937}.selected-tab__item-handle[data-v-39b6f281]{color:#64748bcc;font-size:16px}.selected-tab__item-checkbox[data-v-39b6f281]{width:16px;height:16px;accent-color:#2563eb}.selected-tab__item-controls[data-v-39b6f281]{display:flex;align-items:center;gap:8px}.selected-tab__item-opacity[data-v-39b6f281],.selected-tab__item-menu[data-v-39b6f281]{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-39b6f281]:hover,.selected-tab__item-menu[data-v-39b6f281]:hover{background:#94a3b829;color:#1f2937}.selected-tab__popover[data-v-39b6f281]{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-39b6f281]{display:flex;align-items:center;gap:8px}.selected-tab__popover-label[data-v-39b6f281]{font-size:12px;color:#6b7280}.selected-tab__popover-range[data-v-39b6f281]{flex:1 1 auto;accent-color:#2563eb}.selected-tab__popover-value[data-v-39b6f281]{font-size:12px;color:#475569}.selected-tab__menu[data-v-39b6f281]{position:fixed;z-index:102;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26;padding:12px}.selected-tab__menu-inner[data-v-39b6f281]{display:flex;flex-direction:column;gap:4px;width:190px}.selected-tab__menu-item[data-v-39b6f281]{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-39b6f281]:hover{background:#94a3b829}.selected-tab__menu-item--disabled[data-v-39b6f281]{color:#63666a99;cursor:not-allowed}.selected-tab__menu-item--danger[data-v-39b6f281]{color:#dc2626}.selected-tab__menu-item--danger[data-v-39b6f281]: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-0023ade8]{display:flex;flex-direction:column;max-height:100%;overflow:hidden}.map-catalog-widget__body[data-v-0023ade8]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.map-catalog-widget__scroll[data-v-0023ade8]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.map-catalog-widget__content[data-v-0023ade8]{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-0023ade8]{max-height:0;opacity:0;padding:0}.map-catalog-widget__toggle-button[data-v-0023ade8]{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-0023ade8]:hover{background:#94a3b833}.map-catalog-widget__toggle-icon--rotated[data-v-0023ade8]{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-d773179e]{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}.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)}.map-widget[data-v-73d647f9]{position:relative;width:100%;background:#f1f5f9;overflow:hidden}.map-widget__view[data-v-73d647f9]{font-family:inherit;width:100%;height:100%}.map-widget__state[data-v-73d647f9]{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-73d647f9]{color:#b91c1c;border-color:#dc262659}.map-widget__filter-host[data-v-73d647f9]{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-73d647f9]{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-73d647f9]{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-73d647f9]{align-items:flex-end}.map-widget__stack-wrapper[data-v-73d647f9]{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-73d647f9]{flex:1 1 auto}.map-widget__stack-wrapper--bottom[data-v-73d647f9]{flex:0 0 auto;margin-top:auto;padding-top:16px}.map-widget__stack[data-v-73d647f9]{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-73d647f9]{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-73d647f9]{left:16px;top:16px;z-index:82}@media (min-width: 768px){.map-widget__filter-host[data-v-73d647f9]{left:397px}}[data-v-75f83258] .hide-add-btn button.rounded-full{display:none!important}.custom-pagination[data-v-6f5da01d] .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}
|
|
1
|
+
th[data-v-93fedaf0]{position:sticky;top:0;background:#fff}.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}.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}.card[data-v-b9b6f5d5]{font-family:inherit}.fade-enter-active[data-v-b9b6f5d5],.fade-leave-active[data-v-b9b6f5d5]{transition:opacity .2s ease}.fade-enter-from[data-v-b9b6f5d5],.fade-leave-to[data-v-b9b6f5d5]{opacity:0}.map-center-control[data-v-03fa94f6]{display:flex;gap:.5rem}.map-widget__filter-host[data-v-5e9526e9]{position:absolute;left:10px;top:100px;align-self:stretch;pointer-events:auto;z-index:21}.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)}.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-496b3875]{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-496b3875]{display:flex;justify-content:space-between;align-items:center;gap:16px}.layers-panel__header-actions[data-v-496b3875]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.layers-panel__heading-title[data-v-496b3875]{display:flex;align-items:baseline;gap:8px}.layers-panel__count[data-v-496b3875]{font-size:12px;text-transform:none;color:#475569}.layers-panel__bulk-actions[data-v-496b3875]{display:flex;align-items:center;gap:6px}.layers-panel__header-link[data-v-496b3875]{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-496b3875]:hover{color:#1d4ed8}.layers-panel__header-controls[data-v-496b3875]{display:flex;align-items:center;gap:6px}.layers-panel__heading[data-v-496b3875]{display:flex;flex-direction:column;gap:6px}.layers-panel__title[data-v-496b3875]{font-size:18px;font-weight:600;color:#1f2937}.layers-panel__description[data-v-496b3875]{margin:0;font-size:14px;color:#34495e}.layers-panel__clear[data-v-496b3875]{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-496b3875]:hover{background-color:#2563eb26;color:#1e40af}.layers-panel__item[data-v-496b3875]{display:flex;align-items:center;justify-content:space-between;gap:12px}.layers-panel__label[data-v-496b3875]{display:flex;flex-direction:column;gap:4px;color:#334155;width:100%}.layers-panel__label-row[data-v-496b3875]{display:flex;align-items:center;gap:12px}.layers-panel__title-block[data-v-496b3875]{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0}.layers-panel__checkbox[data-v-496b3875]{-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-496b3875]:checked{background:var(--layers-panel-checkbox-color, #94a3b8);border-color:var(--layers-panel-checkbox-color, #94a3b8)}.layers-panel__checkbox[data-v-496b3875]: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-496b3875]:hover{border-color:var(--layers-panel-checkbox-color, #94a3b8);box-shadow:none}.layers-panel__name[data-v-496b3875]{font-size:14px;font-weight:400;color:#1f2937;min-width:0}.layers-panel__meta[data-v-496b3875]{display:flex;align-items:center;gap:4px;margin-left:auto}.layers-panel__actions[data-v-496b3875]{display:flex;align-items:center;gap:4px}.layers-panel__action[data-v-496b3875]{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-496b3875]:hover{color:#1d4ed8}.layers-panel__content[data-v-496b3875]{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-496b3875]{margin-top:-5px;max-height:0;opacity:0;gap:0}.layers-panel__toggle-button[data-v-496b3875]{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-496b3875]:hover{background:#94a3b833}.layers-panel__toggle-icon--rotated[data-v-496b3875]{transform:rotate(180deg);transition:transform .3s ease}.catalog-tab[data-v-f68d8bda]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.catalog-tab__search[data-v-f68d8bda]{position:sticky;top:0;background:inherit;z-index:1;padding-bottom:8px}.catalog-tab__list[data-v-f68d8bda]{flex:1 1 auto;display:flex;flex-direction:column;overflow-y:auto;min-height:0;padding-bottom:8px}.fade-enter-active[data-v-f68d8bda],.fade-leave-active[data-v-f68d8bda]{transition:all .2s ease}.fade-enter-from[data-v-f68d8bda],.fade-leave-to[data-v-f68d8bda]{opacity:0;max-height:0}.filter-badge[data-v-f68d8bda]{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-f68d8bda]:hover{background:#94a3b840;color:#1f2937}.filter-badge--disabled[data-v-f68d8bda]{cursor:not-allowed;background:#94a3b814;color:#475569b3}.filter-badge__icon[data-v-f68d8bda]{width:14px;height:14px}.filter-badge__hint[data-v-f68d8bda]{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-39b6f281]{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.selected-tab__actions[data-v-39b6f281]{flex:0 0 auto}.selected-tab__add[data-v-39b6f281]{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-39b6f281]:hover{background:#3b82f629;color:#1d4ed8}.selected-tab__empty[data-v-39b6f281]{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-39b6f281]{margin:0;font-weight:600;color:#1f2937}.selected-tab__empty-text[data-v-39b6f281]{margin:0;font-size:13px}.selected-tab__scroll[data-v-39b6f281]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column}.selected-tab__scroll>div[data-v-39b6f281]{display:flex;flex-direction:column;gap:8px}.selected-tab__item[data-v-39b6f281]{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-39b6f281]:hover{background:#f8fafccc}.selected-tab__item--dragging[data-v-39b6f281]{opacity:.5}.selected-tab__item--over[data-v-39b6f281]{border-color:#2563eb;background:#3b82f61f}.selected-tab__item-header[data-v-39b6f281]{display:flex;align-items:center;justify-content:space-between;gap:12px}.selected-tab__item-info[data-v-39b6f281]{display:flex;align-items:center;gap:8px;cursor:move;color:#1f2937}.selected-tab__item-handle[data-v-39b6f281]{color:#64748bcc;font-size:16px}.selected-tab__item-checkbox[data-v-39b6f281]{width:16px;height:16px;accent-color:#2563eb}.selected-tab__item-controls[data-v-39b6f281]{display:flex;align-items:center;gap:8px}.selected-tab__item-opacity[data-v-39b6f281],.selected-tab__item-menu[data-v-39b6f281]{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-39b6f281]:hover,.selected-tab__item-menu[data-v-39b6f281]:hover{background:#94a3b829;color:#1f2937}.selected-tab__popover[data-v-39b6f281]{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-39b6f281]{display:flex;align-items:center;gap:8px}.selected-tab__popover-label[data-v-39b6f281]{font-size:12px;color:#6b7280}.selected-tab__popover-range[data-v-39b6f281]{flex:1 1 auto;accent-color:#2563eb}.selected-tab__popover-value[data-v-39b6f281]{font-size:12px;color:#475569}.selected-tab__menu[data-v-39b6f281]{position:fixed;z-index:102;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a26;padding:12px}.selected-tab__menu-inner[data-v-39b6f281]{display:flex;flex-direction:column;gap:4px;width:190px}.selected-tab__menu-item[data-v-39b6f281]{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-39b6f281]:hover{background:#94a3b829}.selected-tab__menu-item--disabled[data-v-39b6f281]{color:#63666a99;cursor:not-allowed}.selected-tab__menu-item--danger[data-v-39b6f281]{color:#dc2626}.selected-tab__menu-item--danger[data-v-39b6f281]: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-0023ade8]{display:flex;flex-direction:column;max-height:100%;overflow:hidden}.map-catalog-widget__body[data-v-0023ade8]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.map-catalog-widget__scroll[data-v-0023ade8]{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.map-catalog-widget__content[data-v-0023ade8]{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-0023ade8]{max-height:0;opacity:0;padding:0}.map-catalog-widget__toggle-button[data-v-0023ade8]{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-0023ade8]:hover{background:#94a3b833}.map-catalog-widget__toggle-icon--rotated[data-v-0023ade8]{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-d773179e]{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}.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)}.map-widget[data-v-73d647f9]{position:relative;width:100%;background:#f1f5f9;overflow:hidden}.map-widget__view[data-v-73d647f9]{font-family:inherit;width:100%;height:100%}.map-widget__state[data-v-73d647f9]{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-73d647f9]{color:#b91c1c;border-color:#dc262659}.map-widget__filter-host[data-v-73d647f9]{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-73d647f9]{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-73d647f9]{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-73d647f9]{align-items:flex-end}.map-widget__stack-wrapper[data-v-73d647f9]{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-73d647f9]{flex:1 1 auto}.map-widget__stack-wrapper--bottom[data-v-73d647f9]{flex:0 0 auto;margin-top:auto;padding-top:16px}.map-widget__stack[data-v-73d647f9]{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-73d647f9]{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-73d647f9]{left:16px;top:16px;z-index:82}@media(min-width:768px){.map-widget__filter-host[data-v-73d647f9]{left:397px}}[data-v-75f83258] .hide-add-btn button.rounded-full{display:none!important}.custom-pagination[data-v-6f5da01d] .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}
|
package/dist/index.js
CHANGED
|
@@ -1352,7 +1352,7 @@ const Qi = { class: "vs-form" }, ea = { class: "vs-form__body auto-rows-max cont
|
|
|
1352
1352
|
validators: ["required"],
|
|
1353
1353
|
disabled: !0
|
|
1354
1354
|
},
|
|
1355
|
-
|
|
1355
|
+
ua: {
|
|
1356
1356
|
type: "text",
|
|
1357
1357
|
label: "Назва",
|
|
1358
1358
|
validators: ["required"]
|
|
@@ -1475,9 +1475,7 @@ const Qi = { class: "vs-form" }, ea = { class: "vs-form__body auto-rows-max cont
|
|
|
1475
1475
|
}),
|
|
1476
1476
|
emits: ["update:data", "update:form"],
|
|
1477
1477
|
setup(e) {
|
|
1478
|
-
const t = ut(e, "data"), n = ut(e, "form"), l = e, r = R(
|
|
1479
|
-
() => Array.isArray(l.fields) ? l.fields : []
|
|
1480
|
-
), s = (d) => $t(d || {}), i = j(!1), a = j([]), f = () => {
|
|
1478
|
+
const t = ut(e, "data"), n = ut(e, "form"), l = e, r = R(() => Array.isArray(l.fields) ? l.fields : []), s = (d) => $t(d || {}), i = j(!1), a = j([]), f = () => {
|
|
1481
1479
|
const d = p.value.map((v) => s(v)).filter((v) => v.length > 0);
|
|
1482
1480
|
a.value = [...d], i.value = !0;
|
|
1483
1481
|
}, p = R({
|
|
@@ -1503,15 +1501,24 @@ const Qi = { class: "vs-form" }, ea = { class: "vs-form__body auto-rows-max cont
|
|
|
1503
1501
|
}), i.value = !1, a.value = [];
|
|
1504
1502
|
}, c = [
|
|
1505
1503
|
{ key: "id", label: "Name" },
|
|
1506
|
-
{ key: "label", label: "
|
|
1504
|
+
{ key: "label", label: "Назва" },
|
|
1507
1505
|
{ key: "type", label: "Тип" }
|
|
1508
1506
|
], h = {
|
|
1509
|
-
name: {
|
|
1510
|
-
|
|
1507
|
+
name: {
|
|
1508
|
+
type: "text",
|
|
1509
|
+
label: "Назва колонки",
|
|
1510
|
+
validators: ["required"],
|
|
1511
|
+
disabled: !0
|
|
1512
|
+
},
|
|
1513
|
+
ua: {
|
|
1514
|
+
type: "text",
|
|
1515
|
+
label: "Назва",
|
|
1516
|
+
validators: ["required"]
|
|
1517
|
+
},
|
|
1511
1518
|
type: {
|
|
1512
1519
|
type: "radio",
|
|
1513
1520
|
label: "Тип",
|
|
1514
|
-
|
|
1521
|
+
validators: ["required"],
|
|
1515
1522
|
position: "horizontal",
|
|
1516
1523
|
options: [
|
|
1517
1524
|
{ text: "Check", id: "check" },
|
|
@@ -1526,8 +1533,9 @@ const Qi = { class: "vs-form" }, ea = { class: "vs-form__body auto-rows-max cont
|
|
|
1526
1533
|
type: "Switcher"
|
|
1527
1534
|
},
|
|
1528
1535
|
data: {
|
|
1529
|
-
type: "
|
|
1536
|
+
type: "select",
|
|
1530
1537
|
label: "Класифікатор",
|
|
1538
|
+
data: "admin.cls.name",
|
|
1531
1539
|
conditions: ["type", "in", ["select", "autocomplete", "check"]]
|
|
1532
1540
|
}
|
|
1533
1541
|
};
|
|
@@ -1646,7 +1654,7 @@ const Qi = { class: "vs-form" }, ea = { class: "vs-form__body auto-rows-max cont
|
|
|
1646
1654
|
validators: ["required"],
|
|
1647
1655
|
disabled: !0
|
|
1648
1656
|
},
|
|
1649
|
-
|
|
1657
|
+
ua: {
|
|
1650
1658
|
type: "text",
|
|
1651
1659
|
label: "Назва",
|
|
1652
1660
|
validators: ["required"]
|
package/dist/index.umd.cjs
CHANGED
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
* See the LICENSE file in the root directory of this source tree.
|
|
126
126
|
*/const yt=Ee("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Xr={class:"flex items-center justify-center col-span-3 gap-2"},Jr={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Qr=e.defineComponent({__name:"vs-datatable-controls",props:e.mergeModels({index:{},data:{},scheme:{}},{columns:{type:Array,default:()=>[]},columnsModifiers:{}}),emits:["update:columns"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.defineAsyncComponent(()=>import("@opengis/core").then(w=>w.VsModal)),l=t,r=e.useModel(t,"columns"),a=e.ref(!1),i=e.ref({}),s=e.ref({...l.data||{}});e.watch(()=>l.data,w=>{s.value={...w||{}}},{deep:!0});const u=()=>r.value=r.value.filter((w,c)=>c!==l.index),p=async()=>{const w=i.value.validate();if(w){ue.notify({type:"warning",title:"Validation",message:Object.entries(w).map(([c,y])=>`${c}: ${y}`).join(`
|
|
127
127
|
`)});return}r.value[l.index]=s.value,a.value=!1};return(w,c)=>(e.openBlock(),e.createElementBlock("div",Xr,[e.createElementVNode("button",{onClick:c[0]||(c[0]=y=>{a.value=!0}),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground h-8 w-8 rounded-full hover:bg-gray-100"},[e.createVNode(e.unref(jn),{class:"w-4 h-4"})]),e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-8 w-8 rounded-full hover:bg-red-100 text-red-600 hover:text-red-700"},[e.createVNode(e.unref(Kr),{class:"w-4 h-4"})]),e.createVNode(e.unref(o),{teleport:"#modal",size:"lg",visible:a.value,"onUpdate:visible":c[4]||(c[4]=y=>a.value=y),title:"Редагувати поле"},{footer:e.withCtx(()=>[e.createElementVNode("div",Jr,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border border-gray-200 rounded-lg hover:bg-gray-100 duration-300",onClick:c[3]||(c[3]=y=>a.value=!1)}," Скасувати "),e.createElementVNode("button",{class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300",onClick:p}," Зберегти ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(n),{values:s.value,"onUpdate:values":c[1]||(c[1]=y=>s.value=y),schema:t.scheme,form:i.value,"onUpdate:form":c[2]||(c[2]=y=>i.value=y)},null,8,["values","schema","form"])]),_:1},8,["visible"])]))}}),el={mounted(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})},updated(t){setTimeout(()=>{t.scrollWidth>t.clientWidth?t.setAttribute("title",t.textContent):t.removeAttribute("title")})}},tl={array:"purple",boolean:"red",date:"red",datetime:"purple",number:"green",text:"blue",file:"yellow",select:"yellow",slug:"green",image:"blue",badge:"orange",title:"blue",features:"green",status:"red",tags:"yellow",category:"purple",check:"green",range:"orange",autocomplete:"yellow",other:"gray","yes/no":"green"},On=t=>tl[t==null?void 0:t.toLowerCase()]||"gray",nl=["array","boolean","date","datetime","number","text","file","select","slug","image","badge","title","features","status","tags","category","check","range","autocomplete"],Rn=t=>{var n;return nl.includes((n=t||"")==null?void 0:n.toLowerCase())},ae=(t,n)=>{const o=t.__vccOpts||t;for(const[l,r]of n)o[l]=r;return o},ol={},rl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-type",__v0_r:"0,5361,5384"};function ll(t,n){return e.openBlock(),e.createElementBlock("svg",rl,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"4 7 4 4 20 4 20 7"},null,-1),e.createElementVNode("line",{x1:"9",x2:"15",y1:"20",y2:"20"},null,-1),e.createElementVNode("line",{x1:"12",x2:"12",y1:"4",y2:"20"},null,-1)])])}const al=ae(ol,[["render",ll]]),il={},sl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-hash",__v0_r:"0,5361,5384"};function cl(t,n){return e.openBlock(),e.createElementBlock("svg",sl,[...n[0]||(n[0]=[e.createElementVNode("line",{x1:"4",x2:"20",y1:"9",y2:"9"},null,-1),e.createElementVNode("line",{x1:"4",x2:"20",y1:"15",y2:"15"},null,-1),e.createElementVNode("line",{x1:"10",x2:"8",y1:"3",y2:"21"},null,-1),e.createElementVNode("line",{x1:"16",x2:"14",y1:"3",y2:"21"},null,-1)])])}const dl=ae(il,[["render",cl]]),ul={},pl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function ml(t,n){return e.openBlock(),e.createElementBlock("svg",pl,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const fl=ae(ul,[["render",ml]]),gl={},yl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-calendar",__v0_r:"0,5361,5384"};function hl(t,n){return e.openBlock(),e.createElementBlock("svg",yl,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M8 2v4"},null,-1),e.createElementVNode("path",{d:"M16 2v4"},null,-1),e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"},null,-1),e.createElementVNode("path",{d:"M3 10h18"},null,-1)])])}const xl=ae(gl,[["render",hl]]),bl={},kl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-code",__v0_r:"0,5361,5384"};function wl(t,n){return e.openBlock(),e.createElementBlock("svg",kl,[...n[0]||(n[0]=[e.createElementVNode("polyline",{points:"16 18 22 12 16 6"},null,-1),e.createElementVNode("polyline",{points:"8 6 2 12 8 18"},null,-1)])])}const _l=ae(bl,[["render",wl]]),El={},Nl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-toggle-left",__v0_r:"0,5361,5384"};function Bl(t,n){return e.openBlock(),e.createElementBlock("svg",Nl,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6"},null,-1),e.createElementVNode("circle",{cx:"8",cy:"12",r:"2"},null,-1)])])}const Vl=ae(El,[["render",Bl]]),Cl={},$l={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-file-text",__v0_r:"0,5361,5384"};function vl(t,n){return e.openBlock(),e.createElementBlock("svg",$l,[...n[0]||(n[0]=[e.createStaticVNode('<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path>',5)])])}const Sl=ae(Cl,[["render",vl]]),Ll={},Al={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-image",__v0_r:"0,5361,5384"};function Tl(t,n){return e.openBlock(),e.createElementBlock("svg",Al,[...n[0]||(n[0]=[e.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"},null,-1),e.createElementVNode("circle",{cx:"9",cy:"9",r:"2"},null,-1),e.createElementVNode("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"},null,-1)])])}const Ml=ae(Ll,[["render",Tl]]),Fl={},Dl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Il(t,n){return e.openBlock(),e.createElementBlock("svg",Dl,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const jl=ae(Fl,[["render",Il]]),zl={},Ol={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Rl(t,n){return e.openBlock(),e.createElementBlock("svg",Ol,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Pl=ae(zl,[["render",Rl]]),Ul={},ql={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Hl(t,n){return e.openBlock(),e.createElementBlock("svg",ql,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const Wl=ae(Ul,[["render",Hl]]),Yl={},Zl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function Gl(t,n){return e.openBlock(),e.createElementBlock("svg",Zl,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const Kl=ae(Yl,[["render",Gl]]),Xl={},Jl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-link2",__v0_r:"0,5361,5384"};function Ql(t,n){return e.openBlock(),e.createElementBlock("svg",Jl,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M9 17H7A5 5 0 0 1 7 7h2"},null,-1),e.createElementVNode("path",{d:"M15 7h2a5 5 0 1 1 0 10h-2"},null,-1),e.createElementVNode("line",{x1:"8",x2:"16",y1:"12",y2:"12"},null,-1)])])}const ea=ae(Xl,[["render",Ql]]),ta={},na={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"w-4 h-4 text-gray-700 lucide lucide-list",__v0_r:"0,5361,5384"};function oa(t,n){return e.openBlock(),e.createElementBlock("svg",na,[...n[0]||(n[0]=[e.createStaticVNode('<line x1="8" x2="21" y1="6" y2="6"></line><line x1="8" x2="21" y1="12" y2="12"></line><line x1="8" x2="21" y1="18" y2="18"></line><line x1="3" x2="3.01" y1="6" y2="6"></line><line x1="3" x2="3.01" y1="12" y2="12"></line><line x1="3" x2="3.01" y1="18" y2="18"></line>',6)])])}const ra=ae(ta,[["render",oa]]),la={},aa={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",height:"800px",width:"800px",version:"1.1",id:"_x32_",viewBox:"0 0 512 512","xml:space":"preserve"};function ia(t,n){return e.openBlock(),e.createElementBlock("svg",aa,[...n[0]||(n[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{class:"st0",d:"M511.989,292.396c0.021-16.486-6.344-33.136-18.945-45.703L273.605,27.242 C262.3,15.936,247.175,9.22,231.184,8.407L66.821,0.032l1.184,0.066C66.974,0.044,65.866,0,64.67,0 C47.58,0,31.105,6.783,18.944,18.955C6.783,31.106-0.001,47.58,0.011,64.67c0,1.076,0.034,2.172,0.078,3.27l8.297,163.254 c0.835,15.981,7.54,31.106,18.857,42.421l219.451,219.451c12.578,12.589,29.217,18.955,45.703,18.934 c16.496,0.021,33.124-6.356,45.703-18.934l154.956-154.945l-11.92-11.92l11.932,11.909 C505.645,325.521,512.011,308.881,511.989,292.396z M314.26,469.216c-6.08,6.08-13.895,9.044-21.864,9.067 c-7.969-0.023-15.783-2.986-21.864-9.067L51.082,249.765c-5.4-5.4-8.616-12.633-9.023-20.305L33.762,66.238l-0.034-1.569 c0-8.188,3.238-16.048,9.055-21.875c5.839-5.839,13.697-9.077,21.886-9.077l1.502,0.044l163.288,8.319 c7.683,0.396,14.904,3.6,20.305,9.012l219.45,219.45c6.059,6.069,9.033,13.884,9.056,21.853 c-0.023,7.968-2.986,15.794-9.067,21.886h0.011L314.26,469.216z"}),e.createElementVNode("path",{class:"st0",d:"M105.632,105.642c-15.366,15.378-15.366,40.27,0,55.636c15.366,15.366,40.259,15.366,55.625,0 c15.366-15.366,15.366-40.259,0-55.636C145.891,90.276,120.998,90.276,105.632,105.642z"})],-1)])])}const sa=ae(la,[["render",ia]]),ca={},da={xmlns:"http://www.w3.org/2000/svg",width:"800px",height:"800px",viewBox:"0 0 24 24",fill:"none"};function ua(t,n){return e.openBlock(),e.createElementBlock("svg",da,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M3 12C3 4.5885 4.5885 3 12 3C19.4115 3 21 4.5885 21 12C21 19.4115 19.4115 21 12 21C4.5885 21 3 19.4115 3 12Z",stroke:"#323232","stroke-width":"2"},null,-1),e.createElementVNode("path",{d:"M9 12L10.6828 13.6828V13.6828C10.858 13.858 11.142 13.858 11.3172 13.6828V13.6828L15 10",stroke:"#323232","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const Pn={IconText:al,IconNumber:dl,IconDate:fl,IconDatetime:xl,IconRichtext:_l,IconBoolean:Vl,IconFile:Sl,IconImage:Ml,IconArray:jl,IconSelect:Pl,IconSlug:Wl,IconDatalist:Kl,IconReference:ea,IconReferenceList:ra,IconBadge:sa,IconCheck:ae(ca,[["render",ua]])},pa={key:0,class:"flex items-center justify-between mb-6"},ma={class:"flex justify-end w-full"},fa={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl flex flex-col flex-1 min-h-0"},ga={class:"table-scroll-wrapper flex-1 overflow-y-auto min-h-0"},ya={class:"table-fixed w-full text-[13px]"},ha={class:"bg-gray-50 border-b border-gray-200"},xa={key:0},ba=["onDragstart","onDragover","onDrop"],ka={key:0,class:"flex w-fit items-center gap-2 text-left"},wa={class:"flex-1 min-w-0"},_a={class:"font-medium text-gray-900 truncate"},Ea={class:"text-xs text-gray-500"},Na={key:1,class:"flex items-center justify-center"},Ba={key:0,class:"inline-flex items-center px-2 py-1 h-fit text-[13px] font-medium rounded-md ring-1 ring-inset ring-gray-500/10 bg-gray-100"},Va={key:1,class:"text-gray-500 text-sm"},Ca={key:3},$a={class:"px-6 py-4"},va={key:1},Sa=["colspan"],We=ae(e.defineComponent({__name:"vs-datatable",props:e.mergeModels({columnsScheme:{},formScheme:{},addButton:{type:Boolean,default:!0},mainColWidth:{default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:n}){function o(B){return B.charAt(0).toUpperCase()+B.slice(1)}const l=e.defineAsyncComponent(()=>import("@opengis/core").then(B=>B.VsModal)),r=e.defineAsyncComponent(()=>import("@opengis/form")),a=e.useModel(t,"modelValue"),i=t,s=e.ref({}),u=e.ref(!1),p=e.ref({}),w=e.ref(null),c=e.useSlots(),y=B=>!!(B&&c[B]);n({openCreateDialog:()=>{u.value=!0}});const d=e.computed({get(){return Array.isArray(a.value)?a.value:a.value&&Array.isArray(a.value.columns)?a.value.columns:[]},set(B){Array.isArray(a.value)?a.value=B:a.value&&Array.isArray(a.value.columns)&&(a.value.columns=B)}}),m=e.computed(()=>{const B=i.columnsScheme.map(V=>V.key);return B.includes("name")&&B.includes("label")||B.includes("id")&&B.includes("label")?[{key:"main",label:"Назва",type:"main",width:"100%"},...i.columnsScheme.filter(V=>!["name","id","label"].includes(V.key))]:i.columnsScheme});function g(){u.value=!1,p.value={},w.value=null}async function h(){const B=s.value.validate();if(B){ue.notify({type:"warning",title:"Validation",message:Object.entries(B).map(([V,v])=>`${V}: ${v}`).join(`
|
|
128
|
-
`)});return}if(w.value===null)d.value=[...d.value,{...p.value}];else{const V=[...d.value];V[w.value]={...p.value},d.value=V}g()}const f=e.ref(null),k=e.ref(null),E=B=>{f.value=B},T=B=>{k.value=B},j=B=>{if(f.value===null||f.value===B){f.value=null,k.value=null;return}const V=[...d.value],[v]=V.splice(f.value,1);V.splice(B,0,v),d.value=V,f.value=null,k.value=null};return(B,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.addButton?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("div",ma,[e.createElementVNode("button",{onClick:V[0]||(V[0]=v=>u.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...V[4]||(V[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Додати поле ",-1)])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",fa,[e.createElementVNode("div",ga,[e.createElementVNode("table",ya,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("col",{key:v.key,style:e.normalizeStyle(v.type==="main"?`width: ${t.mainColWidth}`:v.width?`width: ${v.width}`:"auto")},null,4))),128)),V[5]||(V[5]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",ha,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("th",{key:v.key,class:"px-6 py-4"},e.toDisplayString(v.label),1))),128)),V[6]||(V[6]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),d.value.length?(e.openBlock(),e.createElementBlock("tbody",xa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(v,S)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id||v.name||S,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":f.value===S,"border-t-2 border-b-2 border-blue-500 bg-blue-50":k.value===S}]),draggable:"true",onDragstart:M=>E(S),onDragover:e.withModifiers(M=>T(S),["prevent"]),onDrop:M=>j(S)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,M=>(e.openBlock(),e.createElementBlock("td",{key:M.key,class:"px-6 py-4 align-middle text-center"},[M.type==="main"?(e.openBlock(),e.createElementBlock("div",ka,[V[7]||(V[7]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(Rn)(v.format==="yes/no"?"check":v.format||v.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(On)(v.format==="yes/no"?"check":v.format||v.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(v.format==="yes/no"?"icon-check":e.unref(Pn)["Icon"+o(v.format||v.type)]||e.unref(Pn).IconText),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",wa,[e.withDirectives((e.openBlock(),e.createElementBlock("p",_a,[e.createTextVNode(e.toDisplayString(v.name||v.id),1)])),[[e.unref(el)]]),e.createElementVNode("p",Ea,e.toDisplayString(v.label||v.ua||v.name||v.id),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[M.slot&&y(M.slot)?e.renderSlot(B.$slots,M.slot,{key:0,row:v,column:M,value:v[M.key],rowIndex:S},void 0,!0):M.type==="color"?(e.openBlock(),e.createElementBlock("div",Na,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${v[M.key]}]`])},null,2)])):["format","type","meta"].includes(M.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[v[M.key]?(e.openBlock(),e.createElementBlock("span",Ba,e.toDisplayString(v[M.key]),1)):(e.openBlock(),e.createElementBlock("span",Va,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",Ca,e.toDisplayString(v[M.key]),1))],64))]))),128)),e.createElementVNode("td",$a,[e.createVNode(Qr,{columns:d.value,"onUpdate:columns":V[1]||(V[1]=M=>d.value=M),data:v,index:S,scheme:t.formScheme},null,8,["columns","data","index","scheme"])])],42,ba))),128))])):(e.openBlock(),e.createElementBlock("tr",va,[e.createElementVNode("td",{colspan:m.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Sa)]))])])]),e.createVNode(e.unref(l),{teleport:"#modal",title:"Створити поле",size:"lg",visible:u.value,"onUpdate:visible":V[3]||(V[3]=v=>u.value=v)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:g,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:h,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(r),{ref_key:"form",ref:s,modelValue:p.value,"onUpdate:modelValue":V[2]||(V[2]=v=>p.value=v),schema:t.formScheme},null,8,["modelValue","schema"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-93fedaf0"]]),La={class:"p-4 text-[13px]"},Aa={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Ta=["id","checked","onChange"],Ma={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Fa={class:"font-medium text-gray-900 truncate"},Da={class:"text-xs text-gray-500"},Ia={key:0,class:"text-xs text-[#B2C9D6]"},ja={class:"flex justify-end gap-2 p-4 border-t w-full"},lt=e.defineComponent({__name:"import-fields-dialog",props:e.mergeModels({fields:{default:()=>[]},title:{},idPrefix:{default:"import"},confirmText:{default:"Імпортувати"},cancelText:{default:"Скасувати"}},{visible:{type:Boolean,default:!1},visibleModifiers:{},selection:{default:[]},selectionModifiers:{}}),emits:e.mergeModels(["confirm","cancel"],["update:visible","update:selection"]),setup(t,{emit:n}){const o=e.useModel(t,"visible"),l=e.useModel(t,"selection"),r=t,a=n,i=e.defineAsyncComponent(()=>import("@opengis/core").then(E=>E.VsModal)),s=e.computed(()=>Array.isArray(r.fields)?r.fields.filter(Boolean):[]),u=E=>(E==null?void 0:E.name)??(E==null?void 0:E.id)??(E==null?void 0:E.key)??(E==null?void 0:E.code)??(E==null?void 0:E.field)??(E==null?void 0:E.value)??"",p=E=>String(u(E)??"").trim(),w=E=>(E==null?void 0:E.title)??(E==null?void 0:E.label)??p(E),c=E=>String((E==null?void 0:E.type)??"").trim(),y=e.computed(()=>new Set(l.value.map(E=>String(E??"").trim()))),d=E=>y.value.has(p(E)),m=E=>{const T=p(E);if(!T)return;const j=new Set(y.value);j.has(T)?j.delete(T):j.add(T),l.value=Array.from(j)},g=e.computed(()=>r.confirmText||"Імпортувати"),h=e.computed(()=>r.cancelText||"Скасувати"),f=()=>{o.value=!1,a("cancel")},k=()=>{a("confirm"),o.value=!1};return(E,T)=>(e.openBlock(),e.createBlock(e.unref(i),{visible:o.value,"onUpdate:visible":T[0]||(T[0]=j=>o.value=j),teleport:"#modal",title:t.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",ja,[e.createElementVNode("button",{onClick:f,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(h.value),1),e.createElementVNode("button",{onClick:k,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(g.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",La,[e.createElementVNode("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,j=>(e.openBlock(),e.createElementBlock("label",{key:p(j),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${t.idPrefix}-${p(j)}`,checked:d(j),onChange:B=>m(j)},null,40,Ta),e.createElementVNode("div",Ma,[e.unref(Rn)(j.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(On)(j.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${j.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Fa,e.toDisplayString(p(j)),1),e.createElementVNode("p",Da,e.toDisplayString(w(j)),1),c(j)?(e.openBlock(),e.createElementBlock("p",Ia,e.toDisplayString(c(j)),1)):e.createCommentVNode("",!0)])])]))),128))])])]),_:1},8,["visible","title"]))}});function at(t){return t==null?"":String(t).trim()}function Ye(t){return at((t==null?void 0:t.name)??(t==null?void 0:t.id)??(t==null?void 0:t.key)??(t==null?void 0:t.code)??(t==null?void 0:t.field)??(t==null?void 0:t.value)??"")}function it(t,n,o){const l=Array.isArray(t)?[...t]:[],r=Array.isArray(n)?n:[],{selectedKeys:a,resolveKey:i}=o,s=new Set;for(const c of a){const y=at(c);y&&s.add(y)}if(s.size===0)return[];const u=c=>at(i(c)),p=[],w=new Set;for(const c of l){const y=u(c);!y||!s.has(y)||(p.push(c),w.add(y))}for(const c of r){const y=u(c);!y||w.has(y)||!s.has(y)||(p.push(c),w.add(y))}return p}const za={class:"vs-form"},Oa={class:"vs-form__body auto-rows-max container"},Ra={class:"flex flex-wrap"},Pa={class:"h-fit w-full mb-6 px-2"},Ua={class:"h-fit w-full flex flex-wrap"},qa={class:"w-full"},Ha=e.defineComponent({__name:"list-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=k=>Ye(k||{}),i=e.defineAsyncComponent(()=>import("@opengis/form")),s=e.ref(),u=e.ref(!1),p=e.ref([]),w=()=>{const k=y.value.map(E=>a(E)).filter(E=>E.length>0);p.value=[...k],u.value=!0},c=e.computed(()=>{var k,E;return((k=n.value)==null?void 0:k.token)||((E=n.value)==null?void 0:E.id)||"register-form"}),y=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:k=>{n.value||(n.value={}),n.value.columns=Array.isArray(k)?k:[]}}),d=e.computed({get:()=>n.value||{},set:k=>{var T;const E=Array.isArray((T=n.value)==null?void 0:T.columns)?n.value.columns:[];n.value={...n.value,...k,columns:E}}});e.watch(()=>s.value,k=>{o.value=k||null},{immediate:!0}),e.watch(u,k=>{k||(p.value=[])});const m=()=>{const k=new Set(p.value.map(j=>at(j)).filter(j=>j.length>0)),E=Array.isArray(y.value)?[...y.value]:[],T=r.value.filter(j=>k.has(a(j))).map(j=>{const B=a(j),V=j.title??j.label??B;return{...j,name:B,label:V,type:j.type||"text",meta:j.meta??"features"}});y.value=it(E,T,{selectedKeys:p.value,resolveKey:a}),u.value=!1,p.value=[]},g={table_name:{type:"select",label:"Таблиця",required:!0,data:"pg.table_name",placeholder:"Таблиця в БД",validators:["required"],col:6},name:{type:"text",label:"Назва",required:!0,placeholder:"Назва",validators:["required"],col:6},query:{type:"text",label:"Умова",placeholder:"Умова",col:6},order:{type:"text",label:"Сортування",placeholder:"Сортування",col:6},description:{type:"textarea",label:"Опис",placeholder:"Опис",col:12}},h=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Назва",type:"text"},{key:"meta",label:"Мета",type:"text"}],f={name:{type:"text",label:"Назва колонки",validators:["required"],disabled:!0},label:{type:"text",label:"Назва",validators:["required"]},format:{type:"radio",label:"Формат",position:"horizontal",options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"},{text:"Badge",id:"badge"},{text:"Tags",id:"tags"}],validators:["required"]},is_export:{type:"switcher",label:"Експорт",info:"Чи експортувати дані колонки?",view:"switcher"},meta:{type:"combobox",label:"Мета",mode:"combo",options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"},{text:"Image",id:"image"}]},data:{type:"select",label:"Класифікатор",data:"admin.cls.name",conditions:["format","in",["select","badge","tags"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(k,E)=>(e.openBlock(),e.createElementBlock("div",za,[e.createElementVNode("div",Oa,[e.createElementVNode("div",Ra,[e.createElementVNode("div",Pa,[(e.openBlock(),e.createBlock(e.unref(i),{ref_key:"formEl",ref:s,key:c.value,schema:g,modelValue:d.value,"onUpdate:modelValue":E[0]||(E[0]=T=>d.value=T)},null,8,["modelValue"]))]),e.createElementVNode("div",Ua,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:w,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...E[4]||(E[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",qa,[e.createVNode(We,{modelValue:y.value,"onUpdate:modelValue":E[1]||(E[1]=T=>y.value=T),"columns-scheme":h,"form-scheme":f,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:u.value,"onUpdate:visible":E[2]||(E[2]=T=>u.value=T),selection:p.value,"onUpdate:selection":E[3]||(E[3]=T=>p.value=T),fields:r.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:m},null,8,["visible","selection","fields"])]))}}),Wa={class:"vs-form"},Ya={class:"vs-form__body auto-rows-max container"},Za={class:"flex flex-wrap"},Ga={class:"h-fit w-full flex flex-wrap"},Ka={class:"w-full"},Xa=e.defineComponent({__name:"filter-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=d=>Ye(d||{}),i=e.ref(!1),s=e.ref([]),u=()=>{const d=p.value.map(m=>a(m)).filter(m=>m.length>0);s.value=[...d],i.value=!0},p=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:d=>{n.value||(n.value={}),n.value.filters=Array.isArray(d)?d:[]}});e.watch(i,d=>{d||(s.value=[])});const w=()=>{const d=new Set(s.value.map(h=>at(h)).filter(h=>h.length>0)),m=Array.isArray(p.value)?[...p.value]:[],g=r.value.filter(h=>d.has(a(h))).map(h=>({name:a(h),label:h.title??h.label??a(h),type:h.type||"text"}));p.value=it(m,g,{selectedKeys:s.value,resolveKey:a}),i.value=!1,s.value=[]},c=[{key:"id",label:"Name"},{key:"label",label:"UA"},{key:"type",label:"Тип"}],y={name:{type:"text",label:"Name",required:!0,disabled:!0},label:{type:"text",label:"Label",required:!0},type:{type:"radio",label:"Тип",required:!0,position:"horizontal",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"text",label:"Класифікатор",conditions:["type","in",["select","autocomplete","check"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(d,m)=>(e.openBlock(),e.createElementBlock("div",Wa,[e.createElementVNode("div",Ya,[e.createElementVNode("div",Za,[m[4]||(m[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте фільтри реєстру. Оберіть поля для імпорту або відредагуйте властивості вручну. ")],-1)),e.createElementVNode("div",Ga,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...m[3]||(m[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Ka,[e.createVNode(We,{modelValue:p.value,"onUpdate:modelValue":m[0]||(m[0]=g=>p.value=g),"columns-scheme":c,"form-scheme":y,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:i.value,"onUpdate:visible":m[1]||(m[1]=g=>i.value=g),selection:s.value,"onUpdate:selection":m[2]||(m[2]=g=>s.value=g),fields:r.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:w},null,8,["visible","selection","fields"])]))}}),Ja={class:"vs-form"},Qa={class:"vs-form__body auto-rows-max container"},ei={class:"flex flex-wrap"},ti={class:"h-fit w-full flex flex-wrap"},ni={class:"w-full"},oi=e.defineComponent({__name:"card-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=d=>Ye(d||{}),i=e.ref(!1),s=e.ref([]),u=()=>{const d=p.value.map(m=>a(m)).filter(m=>m.length>0);s.value=[...d],i.value=!0},p=e.computed({get:()=>n.value.card,set:d=>{n.value||(n.value={}),n.value.card=Array.isArray(d)?d:[]}});e.watch(i,d=>{var m;if(d){const g=((m=p.value)==null?void 0:m.map(h=>h.name))||[];s.value=[...g]}});const w=()=>{const d=new Set(s.value.map(h=>at(h)).filter(h=>h.length>0)),m=Array.isArray(p.value)?[...p.value]:[],g=r.value.filter(h=>d.has(a(h))).map(h=>{const f=a(h),k=h.title??h.label??f;return{...h,name:f,label:k,format:h.format||h.type||"text",meta:h.meta||"title"}});p.value=it(m,g,{selectedKeys:s.value,resolveKey:a}),i.value=!1,s.value=[]},c=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Назва",type:"text"},{key:"format",label:"Формат",type:"text"}],y={name:{type:"text",label:"Назва колонки",validators:["required"],disabled:!0},label:{type:"text",label:"Назва",validators:["required"]},format:{type:"radio",label:"Формат",position:"horizontal",options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"},{text:"Badge",id:"badge"},{text:"Tags",id:"tags"}],validators:["required"]},data:{type:"text",label:"Класифікатор",conditions:["format","in",["select","badge","tags"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(d,m)=>(e.openBlock(),e.createElementBlock("div",Ja,[e.createElementVNode("div",Qa,[e.createElementVNode("div",ei,[m[4]||(m[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте відображення картки. Оберіть потрібні поля та відредагуйте їхні властивості. ")],-1)),e.createElementVNode("div",ti,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...m[3]||(m[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",ni,[e.createVNode(We,{modelValue:p.value,"onUpdate:modelValue":m[0]||(m[0]=g=>p.value=g),"columns-scheme":c,"form-scheme":y,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:i.value,"onUpdate:visible":m[1]||(m[1]=g=>i.value=g),selection:s.value,"onUpdate:selection":m[2]||(m[2]=g=>s.value=g),fields:r.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:w},null,8,["visible","selection","fields"])]))}}),ri=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function ht(t){if(!t)return"";const[n,o]=t.split(" ");if(!n)return t;const[l,r,a]=n.split("-");if(!l||!r||!a)return t;const i=parseInt(r,10),s=ri[i]||r;let u=`${parseInt(a,10)} ${s} ${l}`;if(o){const p=o.split(".")[0],[w,c,y]=p.split(":");w&&c&&y?u+=`, ${w}:${c}:${y}`:w&&c?u+=`, ${w}:${c}`:w&&(u+=`, ${w}`)}return u}function xt(t,n={dateStyle:"short"}){if(t==null||t==="")return"";const o=new Date(t);return Number.isNaN(o.getTime())?"":new Intl.DateTimeFormat(void 0,n).format(o)}const li={class:"flex flex-col md:flex-row md:justify-between lg:flex-row lg:justify-between p-3 md:p-3.5 lg:p-4 pb-2 bg-slate-50 gap-3 md:gap-3.5 lg:gap-4"},ai={class:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between md:gap-3 lg:flex-row lg:items-center lg:justify-between lg:gap-0"},ii={class:"flex flex-col gap-2 md:flex-row md:items-center"},si={class:"text-base md:text-base lg:text-lg font-bold line-clamp-2"},ci={key:0,class:"flex flex-wrap items-center gap-1 md:gap-1.5 lg:gap-2 md:ml-2 lg:ml-2"},di={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground whitespace-nowrap","data-v0-t":"badge"},ui={key:0,class:"flex flex-wrap items-center gap-1 md:gap-1.5 lg:gap-2"},pi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground whitespace-nowrap"},mi={class:"p-3 md:p-3.5 lg:p-4 pt-2"},fi={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-2 md:gap-2.5 lg:gap-3 text-sm"},gi={class:"text-gray-500 shrink-0 md:max-w-[50%]"},yi={class:"font-medium flex flex-wrap gap-1"},hi={class:"items-center p-3 bg-slate-50 flex flex-col md:flex-row justify-end gap-2"},xi=["href"],bi=["href"],Un=e.defineComponent({__name:"template-1",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",li,[e.createElementVNode("div",ai,[e.createElementVNode("div",ii,[e.createElementVNode("h2",si,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(),e.createElementBlock("div",ci,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",di,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)])]),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",ui,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("span",pi,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",mi,[e.createElementVNode("div",fi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-col md:flex-row md:items-center lg:flex-row lg:items-center gap-1 md:gap-1.5 lg:gap-1.5"},[e.createElementVNode("span",gi,e.toDisplayString((f==null?void 0:f.ua)||f.label||f.name)+": ",1),e.createElementVNode("span",yi,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-100 px-2 py-0 border-[0.01rem] border-gray-300 rounded-lg whitespace-nowrap"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",hi,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[0]||(y[0]=[e.createTextVNode(" На карті ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-map-pin-check-inside ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,xi)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[1]||(y[1]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)])],8,bi))])])}),128))}}),ki={class:"p-0"},wi={class:"border-l-4 border-l-slate-400"},_i={class:"p-4"},Ei={class:"flex flex-wrap items-center gap-2 mb-3"},Ni={class:"text-lg font-bold"},Bi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-green-100 text-green-800 hover:bg-green-100","data-v0-t":"badge"},Vi={key:1,class:"flex"},Ci={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},$i={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3 text-sm border-t pt-3"},vi={class:"text-xs text-gray-500 mb-1"},Si={class:"font-medium"},Li={class:"flex justify-end gap-2 mt-3 border-t pt-3"},Ai=["href"],Ti=["href"],qn=e.defineComponent({__name:"template-2",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",ki,[e.createElementVNode("div",wi,[e.createElementVNode("div",_i,[e.createElementVNode("div",Ei,[e.createElementVNode("h2",Ni,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",Bi,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",Vi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-wrap gap-1 ml-2"},[d[f.name]?(e.openBlock(),e.createElementBlock("span",Ci,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",$i,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name},[e.createElementVNode("p",vi,e.toDisplayString(f.ua),1),e.createElementVNode("p",Si,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))]),e.createElementVNode("div",Li,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[0]||(y[0]=[e.createTextVNode(" На карті ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-map-pin-check-inside ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,Ai)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[1]||(y[1]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M15 3h6v6"}),e.createElementVNode("path",{d:"M10 14 21 3"}),e.createElementVNode("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})],-1)])],8,Ti))])])])])])}),128))}}),Mi={class:"space-y-4"},Fi={class:"flex flex-col lg:flex-row lg:items-center py-2 px-2 lg:px-3"},Di={class:"flex-1"},Ii={class:"grid grid-cols-1 lg:grid-cols-12 gap-2 w-full text-xs"},ji={class:"col-span-1 lg:col-span-4"},zi={class:"flex items-start"},Oi={class:"flex flex-col"},Ri={class:"font-bold text-xs lg:text-sm"},Pi={key:0,class:"flex flex-wrap gap-1 mt-1"},Ui={key:0,class:"inline-flex items-center rounded-full bg-secondary text-secondary-foreground text-[9px] lg:text-[10px] px-1.5 py-0"},qi={key:1,class:"flex flex-wrap gap-1 mt-1"},Hi={key:0,class:"inline-flex items-center rounded-full bg-gray-100 text-gray-800 text-[10px] lg:text-xs px-2 py-0.5 font-semibold"},Wi={class:"col-span-1 lg:col-span-7 mt-2 lg:mt-0"},Yi={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2 lg:gap-3"},Zi={class:"text-[9px] lg:text-[10px] text-gray-500 mb-1"},Gi={class:"truncate font-medium text-xs lg:text-sm"},Ki={class:"flex items-center justify-center gap-2 mt-3 lg:mt-0"},Xi=["href"],Ji=["href"],Hn=e.defineComponent({__name:"template-3",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=y=>(y==null?void 0:y.service_id)&&(y==null?void 0:y.is_map)&&y[n.id_key]&&(y==null?void 0:y.geom),r=e.computed(()=>n.columns.find(y=>y.meta==="title")),a=e.computed(()=>n.columns.filter(y=>y.meta==="category")),i=e.computed(()=>n.columns.filter(y=>y.meta==="tags")),s=e.computed(()=>n.columns.filter(y=>y.meta!=="title")),u=e.computed(()=>"bg-blue-500"),p=(y,d)=>{if(d)return y[d]},w=y=>{const d=p(y,n.id_key);return`${n.path}?id=${d}`},c=(y,d)=>{const m=p(y,n.id_key);return`/map?layers=${d}&info=${d},${m}`};return(y,d)=>(e.openBlock(),e.createElementBlock("div",Mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,m=>{var g,h,f;return e.openBlock(),e.createElementBlock("div",{key:m.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",Fi,[e.createElementVNode("div",Di,[e.createElementVNode("div",Ii,[e.createElementVNode("div",ji,[e.createElementVNode("div",zi,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-6 lg:h-8 rounded-full mr-2 lg:mr-3 mt-1",u.value])},null,2),e.createElementVNode("div",Oi,[e.createElementVNode("p",Ri,e.toDisplayString(m[`${(g=r.value)==null?void 0:g.name}_text`]||m[(h=r.value)==null?void 0:h.name]||m[(f=r.value)==null?void 0:f.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(),e.createElementBlock("div",Pi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,k=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.name},[m[k.name]?(e.openBlock(),e.createElementBlock("span",Ui,e.toDisplayString(m[`${k.name}_text`]||m[k.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,k=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.name},[m[k.name]?(e.openBlock(),e.createElementBlock("span",Hi,e.toDisplayString(m[`${k.name}_text`]||m[k.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",Wi,[e.createElementVNode("div",Yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,k=>{var E;return e.openBlock(),e.createElementBlock("div",{key:k.name},[e.createElementVNode("p",Zi,e.toDisplayString(k.ua),1),e.createElementVNode("p",Gi,[Array.isArray(m[k.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m[k.name],(T,j)=>(e.openBlock(),e.createElementBlock("span",{key:j,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1 text-[10px] lg:text-xs"},e.toDisplayString(T),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[k.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(m[k.name])||"Немає даних"),1)],64)):k.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(m[k.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((E=m[k.name+"_data"])==null?void 0:E.text)||m[k.name+"_text"]||m[k.name]||"Немає даних"),1)],64))],64))])])}),128))])])])]),e.createElementVNode("div",Ki,[!t.hideDetailsButton&&l(m)?(e.openBlock(),e.createElementBlock("a",{key:0,href:c(m,m.service_id),class:"inline-flex items-center justify-center gap-2 text-xs lg:text-sm font-medium hover:bg-accent hover:text-accent-foreground h-8 lg:h-9 rounded-md px-2 lg:px-3"},[...d[0]||(d[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"h-3 w-3 lg:h-3.5 lg:w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,Xi)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:w(m),class:"flex items-center justify-center hover:bg-accent hover:text-accent-foreground rounded-md h-8 w-8 lg:h-7 lg:w-7"},[...d[1]||(d[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"h-3.5 w-3.5 lg:h-4 lg:w-4"},[e.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)])],8,Ji))])])])}),128))]))}}),Qi={class:"flex flex-col space-y-1.5 p-6 pb-2"},es={class:"flex items-center gap-2 flex-wrap"},ts={class:"tracking-tight text-lg font-medium"},ns={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-blue-100 text-blue-800 ml-2","data-v0-t":"badge"},os={key:1,class:"flex"},rs={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},ls={class:"p-6 pt-0 pb-4"},as={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},is={class:"text-sm text-gray-500"},ss={class:"font-medium"},cs={class:"flex items-center p-6 pt-0 gap-2"},ds=["href"],us=["href"],Wn=e.defineComponent({__name:"template-4",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm border-l-4 border-l-blue-600","data-v0-t":"card"},[e.createElementVNode("div",Qi,[e.createElementVNode("div",es,[e.createElementVNode("h3",ts,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",ns,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",os,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-wrap gap-1 ml-2"},[d[f.name]?(e.openBlock(),e.createElementBlock("span",rs,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ls,[e.createElementVNode("div",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name},[e.createElementVNode("p",is,e.toDisplayString(f.ua),1),e.createElementVNode("p",ss,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",cs,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," На карті ",8,ds)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," Детальніше ",8,us))])])}),128))}}),ps={class:"grid grid-cols-1 lg:grid-cols-12 lg:divide-x divide-y lg:divide-y-0 divide-gray-100"},ms={key:0,class:"w-full lg:w-auto lg:col-span-1"},fs=["src"],gs={key:1,class:"hidden lg:flex lg:col-span-1 items-center justify-center py-4 lg:py-0"},ys={class:"col-span-1 lg:col-span-7 p-4 lg:p-4"},hs={class:"flex flex-col mb-3 lg:flex-row lg:items-center lg:mb-1"},xs={class:"text-base lg:text-base font-bold text-gray-900 mb-2 lg:mr-2 lg:mb-0"},bs={class:"flex flex-wrap gap-2 lg:gap-0"},ks={key:0,class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs lg:ml-2"},ws={class:"text-sm text-gray-600 line-clamp-2 lg:line-clamp-1 mb-3 lg:mb-2"},_s={class:"grid grid-cols-1 md:grid-cols-2 gap-y-3 md:gap-x-4 md:gap-y-1 text-sm"},Es={class:"flex items-center mb-1 md:mb-0 md:mr-1 max-w-[50%]"},Ns=["innerHTML"],Bs={class:"text-gray-500 font-medium md:font-normal"},Vs={class:"text-gray-600 break-words line-clamp-2"},Cs={class:"col-span-1 lg:col-span-2 p-4 lg:p-3 bg-gray-50 flex flex-col justify-center border-t lg:border-t-0 lg:border-l border-gray-100"},$s={class:"text-xs text-gray-500 mb-2 lg:mb-1.5"},vs={key:0,class:"flex flex-wrap gap-1.5 lg:gap-1"},Ss={key:0,class:"inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-2 py-0.5 lg:px-1.5 lg:py-0"},Ls={class:"col-span-1 lg:col-span-2 flex flex-col justify-center items-stretch lg:items-center bg-gray-50 border-t lg:border-t-0 lg:border-l border-gray-100 p-4 lg:p-2"},As={class:"w-full space-y-2"},Ts=["href"],Ms=["href"],Yn=e.defineComponent({__name:"template-5",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=d=>(d==null?void 0:d.service_id)&&(d==null?void 0:d.is_map)&&d[n.id_key]&&(d==null?void 0:d.geom),r=e.computed(()=>n.columns.find(d=>d.meta==="title")),a=e.computed(()=>n.columns.filter(d=>d.meta==="category")),i=e.computed(()=>n.columns.filter(d=>d.meta==="tags")),s=e.computed(()=>n.columns.filter(d=>d.meta!=="title")),u=e.computed(()=>n.columns.find(d=>d.meta==="image")),p=e.computed(()=>n.columns.find(d=>d.meta==="desc")||n.columns.find(d=>d.name==="description")),w=(d,m)=>{if(m)return d[m]},c=d=>{const m=w(d,n.id_key);return`${n.path}?id=${m}`},y=(d,m)=>{const g=w(d,n.id_key);return`/map?layers=${m}&info=${m},${g}`};return(d,m)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,g=>{var h,f,k,E,T,j,B,V,v;return e.openBlock(),e.createElementBlock("div",{key:g.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",ps,[u.value?(e.openBlock(),e.createElementBlock("div",ms,[g[(h=u.value)==null?void 0:h.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:g[(f=u.value)==null?void 0:f.name],alt:"image",class:"object-cover w-full h-48 lg:h-full lg:w-auto"},null,8,fs)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",gs,[...m[0]||(m[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",ys,[e.createElementVNode("div",hs,[e.createElementVNode("h3",xs,e.toDisplayString(g[`${(k=r.value)==null?void 0:k.name}_text`]||g[(E=r.value)==null?void 0:E.name]||g[(T=r.value)==null?void 0:T.label]||"Не вказано"),1),e.createElementVNode("div",bs,[Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,S=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S.name},[g[S.name]?(e.openBlock(),e.createElementBlock("div",ks,e.toDisplayString(g[`${S.name}_text`]||g[S.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)])]),e.createElementVNode("p",ws,e.toDisplayString(((B=g[((j=p.value)==null?void 0:j.name)+"_data"])==null?void 0:B.text)||g[((V=p.value)==null?void 0:V.name)+"_text"]||g[(v=p.value)==null?void 0:v.name]),1),e.createElementVNode("div",_s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>{var M;return e.openBlock(),e.createElementBlock("div",{key:S.name,class:"flex flex-col md:flex-row md:items-center"},[e.createElementVNode("div",Es,[S.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:S.icon},null,8,Ns)):e.createCommentVNode("",!0),e.createElementVNode("span",Bs,e.toDisplayString((S==null?void 0:S.ua)||S.label||S.name)+":",1)]),e.createElementVNode("span",Vs,[Array.isArray(g[S==null?void 0:S.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(g[S==null?void 0:S.name],(R,I)=>(e.openBlock(),e.createElementBlock("span",{key:I,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1 inline-block"},e.toDisplayString(R),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[S.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(g[S==null?void 0:S.name])||"Немає даних"),1)],64)):S.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(g[S==null?void 0:S.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((M=g[(S==null?void 0:S.name)+"_data"])==null?void 0:M.text)||g[(S==null?void 0:S.name)+"_text"]||g[S==null?void 0:S.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Cs,[e.createElementVNode("p",$s," Теги: "+e.toDisplayString(i.value.length&&g[i.value[0].name]?"":"відсутні"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",vs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,S=>(e.openBlock(),e.createElementBlock("div",{key:S.name,class:"flex flex-wrap gap-1"},[g[S.name]?(e.openBlock(),e.createElementBlock("span",Ss,e.toDisplayString(g[`${S.name}_text`]||g[S.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ls,[e.createElementVNode("div",As,[!t.hideDetailsButton&&l(g)?(e.openBlock(),e.createElementBlock("a",{key:0,href:y(g,g==null?void 0:g.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," На карті ",8,Ts)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:c(g),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше ",8,Ms))])])])])}),128))}}),Zn={template1:Un,template2:qn,template3:Hn,template4:Wn,template5:Yn},Fs={class:"space-y-4"},Ds={class:"flex items-center gap-4"},Is={class:"text-lg font-semibold mb-4"},js={key:1,class:"text-gray-400 text-center py-12"},zs={key:2,class:"text-gray-400 text-center py-12"},Os=e.defineComponent({__name:"preview-tab",props:e.mergeModels({hideDetailsButton:{type:Boolean,default:!1}},{data:{default:{}},dataModifiers:{}}),emits:["update:data"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.useModel(t,"data"),l=[{text:"template1",id:"template1"},{text:"template2",id:"template2"},{text:"template3",id:"template3"},{text:"template4",id:"template4"},{text:"template5",id:"template5"}],r={view:{type:"radio",label:"Вигляд",position:"horizontal",required:!0,options:l,col:12}},a=e.computed(()=>{var w;return Array.isArray((w=o.value)==null?void 0:w.columns)?o.value.columns:[]}),i=e.computed(()=>{var w;return((w=o.value)==null?void 0:w.view)||"template1"}),s=e.computed(()=>Zn[i.value]||Zn.template1),u=e.computed(()=>{var y;const w=(y=o.value)==null?void 0:y.view;if(!w)return"template1";const c=l.find(d=>d.id===w);return(c==null?void 0:c.text)||w}),p=e.computed(()=>(Array.isArray(o.value.tableData)?o.value.tableData:[]).slice(0,5).map(c=>{var y,d;return{...c,service_id:(y=o.value)==null?void 0:y.service_id,is_map:(d=o.value)==null?void 0:d.is_map}}));return(w,c)=>(e.openBlock(),e.createElementBlock("div",Fs,[e.createElementVNode("div",Ds,[(e.openBlock(),e.createBlock(e.unref(n),{key:o.value.id,schema:r,modelValue:o.value,"onUpdate:modelValue":c[0]||(c[0]=y=>o.value=y)},null,8,["modelValue"]))]),e.createElementVNode("h2",Is," Превʼю таблиці ("+e.toDisplayString(u.value)+") ",1),s.value&&p.value.length&&a.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{items:p.value,columns:a.value,path:"#",id_key:"id","hide-details-button":t.hideDetailsButton,key:i.value},null,8,["items","columns","hide-details-button"])):p.value.length?(e.openBlock(),e.createElementBlock("div",zs," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",js," Немає даних для превʼю "))]))}}),Rs={class:"relative h-screen flex flex-col bg-white p-8"},Ps={class:"flex-1 flex flex-col min-h-0 overflow-hidden"},Us={class:"max-w-6xl mx-auto flex-1 flex flex-col min-h-0 w-full"},qs={class:"flex items-center justify-between mb-6 flex-shrink-0"},Hs={class:"flex items-center gap-2"},Ws={class:"w-full flex-shrink-0 mb-6"},Ys={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 bg-white border border-gray-200 rounded-md text-muted-foreground"},Zs=["onClick"],Gs={class:"flex-1 min-h-0 overflow-y-auto"},Ks=e.defineComponent({__name:"register",props:{hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=be.useRoute(),o=be.useRouter(),l=e.ref("list"),r=e.ref(""),a=[{name:"Список",id:"list"},{name:"Фільтри",id:"filters"},{name:"Картка",id:"card"},{name:"Перегляд",id:"preview"}],i={list:Ha,filters:Xa,card:oi,preview:Os},s=a.map(d=>d.id),u=e.ref({columns:[],filters:[],card:[],tableData:[]}),p=e.ref([]),w=async()=>{var m;if(!((m=u.value)==null?void 0:m.token)){ue.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const g=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(u.value)});if(!g.ok)throw new Error(`Failed to save content: ${g.status}`);ue.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(g){ue.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(g)}},c=async d=>{try{const g=await(await fetch(`/api/gis-registry/${d}`)).json(),h=Array.isArray(g==null?void 0:g.rows)?g.rows:[];u.value.tableData=h.slice(0,3)}catch(m){console.error("Помилка завантаження превʼю:",m)}},y=async()=>{var d,m;try{const h=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),f=((d=h==null?void 0:h.rows)==null?void 0:d[0])||{};r.value=f.register_key||"",u.value={...f,columns:Array.isArray(f.columns)?f.columns:[],filters:Array.isArray(f.filters)?f.filters:[],card:Array.isArray(f.card)?f.card:[],tableData:Array.isArray(f.tableData)?f.tableData:[]},(m=h==null?void 0:h.tokens)!=null&&m.edit&&(u.value.token=h.tokens.edit),p.value=Array.isArray(h==null?void 0:h.fields)?h.fields:[]}catch(g){console.error("Помилка завантаження даних:",g)}};return e.onMounted(async()=>{const d=n.query.tab;typeof d=="string"&&s.includes(d)&&(l.value=d),await y(),r.value&&await c(r.value)}),e.watch(l,d=>{n.query.tab!==d&&o.replace({query:{...n.query,tab:d}})}),e.watch(()=>n.query.tab,d=>{typeof d=="string"&&s.includes(d)&&l.value!==d&&(l.value=d)}),(d,m)=>(e.openBlock(),e.createElementBlock("main",Rs,[e.createElementVNode("div",Ps,[e.createElementVNode("div",Us,[e.createElementVNode("div",qs,[m[2]||(m[2]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"mb-2 text-2xl font-semibold text-gray-900"},"Створити контент"),e.createElementVNode("p",{class:"text-gray-600"},"Створити контент для вашого сайту")],-1)),e.createElementVNode("div",Hs,[e.createElementVNode("button",{onClick:m[0]||(m[0]=g=>e.unref(o).back()),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground h-10 px-4 py-2 border-gray-300 text-gray-700 hover:bg-gray-50"}," Повернутися "),e.createElementVNode("button",{onClick:w,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-white rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-primary-foreground h-10 px-4 py-2 bg-blue-600 hover:bg-blue-700"}," Зберегти ")])]),e.createElementVNode("div",Ws,[e.createElementVNode("div",Ys,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,g=>e.createElementVNode("button",{key:g.id,onClick:h=>l.value=g.id,class:e.normalizeClass(["inline-flex flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm data-[state=active]:bg-blue-50 data-[state=active]:text-blue-700 data-[state=active]:border-blue-200",g.id===l.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(g.name),11,Zs)),64))])]),e.createElementVNode("div",Gs,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i[l.value]),{data:u.value,"onUpdate:data":m[1]||(m[1]=g=>u.value=g),fields:p.value,"hide-details-button":t.hideDetailsButton,key:l.value},null,40,["data","fields","hide-details-button"]))])])])]))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function Gn(t){return typeof t>"u"||t===null}function Xs(t){return typeof t=="object"&&t!==null}function Js(t){return Array.isArray(t)?t:Gn(t)?[]:[t]}function Qs(t,n){var o,l,r,a;if(n)for(a=Object.keys(n),o=0,l=a.length;o<l;o+=1)r=a[o],t[r]=n[r];return t}function ec(t,n){var o="",l;for(l=0;l<n;l+=1)o+=t;return o}function tc(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var nc=Gn,oc=Xs,rc=Js,lc=ec,ac=tc,ic=Qs,Ce={isNothing:nc,isObject:oc,toArray:rc,repeat:lc,isNegativeZero:ac,extend:ic};function Kn(t,n){var o="",l=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(o+='in "'+t.mark.name+'" '),o+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!n&&t.mark.snippet&&(o+=`
|
|
128
|
+
`)});return}if(w.value===null)d.value=[...d.value,{...p.value}];else{const V=[...d.value];V[w.value]={...p.value},d.value=V}g()}const f=e.ref(null),k=e.ref(null),E=B=>{f.value=B},T=B=>{k.value=B},j=B=>{if(f.value===null||f.value===B){f.value=null,k.value=null;return}const V=[...d.value],[v]=V.splice(f.value,1);V.splice(B,0,v),d.value=V,f.value=null,k.value=null};return(B,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.addButton?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("div",ma,[e.createElementVNode("button",{onClick:V[0]||(V[0]=v=>u.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...V[4]||(V[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Додати поле ",-1)])])])])):e.createCommentVNode("",!0),e.createElementVNode("div",fa,[e.createElementVNode("div",ga,[e.createElementVNode("table",ya,[e.createElementVNode("colgroup",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("col",{key:v.key,style:e.normalizeStyle(v.type==="main"?`width: ${t.mainColWidth}`:v.width?`width: ${v.width}`:"auto")},null,4))),128)),V[5]||(V[5]=e.createElementVNode("col",null,null,-1))]),e.createElementVNode("thead",null,[e.createElementVNode("tr",ha,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("th",{key:v.key,class:"px-6 py-4"},e.toDisplayString(v.label),1))),128)),V[6]||(V[6]=e.createElementVNode("th",{class:"px-6 py-4"},"Дії",-1))])]),d.value.length?(e.openBlock(),e.createElementBlock("tbody",xa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(v,S)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id||v.name||S,class:e.normalizeClass(["transition-colors hover:bg-gray-50/50 cursor-move",{"opacity-50":f.value===S,"border-t-2 border-b-2 border-blue-500 bg-blue-50":k.value===S}]),draggable:"true",onDragstart:M=>E(S),onDragover:e.withModifiers(M=>T(S),["prevent"]),onDrop:M=>j(S)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,M=>(e.openBlock(),e.createElementBlock("td",{key:M.key,class:"px-6 py-4 align-middle text-center"},[M.type==="main"?(e.openBlock(),e.createElementBlock("div",ka,[V[7]||(V[7]=e.createElementVNode("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),e.unref(Rn)(v.format==="yes/no"?"check":v.format||v.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center justify-center p-1 rounded",`bg-${e.unref(On)(v.format==="yes/no"?"check":v.format||v.type)}-100`])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(v.format==="yes/no"?"icon-check":e.unref(Pn)["Icon"+o(v.format||v.type)]||e.unref(Pn).IconText),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",wa,[e.withDirectives((e.openBlock(),e.createElementBlock("p",_a,[e.createTextVNode(e.toDisplayString(v.name||v.id),1)])),[[e.unref(el)]]),e.createElementVNode("p",Ea,e.toDisplayString(v.label||v.ua||v.name||v.id),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[M.slot&&y(M.slot)?e.renderSlot(B.$slots,M.slot,{key:0,row:v,column:M,value:v[M.key],rowIndex:S},void 0,!0):M.type==="color"?(e.openBlock(),e.createElementBlock("div",Na,[e.createElementVNode("div",{class:e.normalizeClass(["w-4 h-4 rounded-full align-middle",`bg-[${v[M.key]}]`])},null,2)])):["format","type","meta"].includes(M.key)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[v[M.key]?(e.openBlock(),e.createElementBlock("span",Ba,e.toDisplayString(v[M.key]),1)):(e.openBlock(),e.createElementBlock("span",Va,"Не вказано"))],64)):(e.openBlock(),e.createElementBlock("span",Ca,e.toDisplayString(v[M.key]),1))],64))]))),128)),e.createElementVNode("td",$a,[e.createVNode(Qr,{columns:d.value,"onUpdate:columns":V[1]||(V[1]=M=>d.value=M),data:v,index:S,scheme:t.formScheme},null,8,["columns","data","index","scheme"])])],42,ba))),128))])):(e.openBlock(),e.createElementBlock("tr",va,[e.createElementVNode("td",{colspan:m.value.length+1,class:"text-gray-500 text-center py-4"}," Поля не знайдені ",8,Sa)]))])])]),e.createVNode(e.unref(l),{teleport:"#modal",title:"Створити поле",size:"lg",visible:u.value,"onUpdate:visible":V[3]||(V[3]=v=>u.value=v)},{footer:e.withCtx(()=>[e.createElementVNode("div",{class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},[e.createElementVNode("button",{type:"button",onClick:g,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"}," Скасувати "),e.createElementVNode("button",{type:"button",onClick:h,class:"px-4 py-2 rounded bg-blue-600 text-white"}," Зберегти1 ")])]),default:e.withCtx(()=>[e.createVNode(e.unref(r),{ref_key:"form",ref:s,modelValue:p.value,"onUpdate:modelValue":V[2]||(V[2]=v=>p.value=v),schema:t.formScheme},null,8,["modelValue","schema"])]),_:1},8,["visible"])],64))}}),[["__scopeId","data-v-93fedaf0"]]),La={class:"p-4 text-[13px]"},Aa={class:"grid grid-cols-2 gap-x-6 gap-y-2"},Ta=["id","checked","onChange"],Ma={class:"ml-2 flex-1 min-w-0 flex items-center gap-2"},Fa={class:"font-medium text-gray-900 truncate"},Da={class:"text-xs text-gray-500"},Ia={key:0,class:"text-xs text-[#B2C9D6]"},ja={class:"flex justify-end gap-2 p-4 border-t w-full"},lt=e.defineComponent({__name:"import-fields-dialog",props:e.mergeModels({fields:{default:()=>[]},title:{},idPrefix:{default:"import"},confirmText:{default:"Імпортувати"},cancelText:{default:"Скасувати"}},{visible:{type:Boolean,default:!1},visibleModifiers:{},selection:{default:[]},selectionModifiers:{}}),emits:e.mergeModels(["confirm","cancel"],["update:visible","update:selection"]),setup(t,{emit:n}){const o=e.useModel(t,"visible"),l=e.useModel(t,"selection"),r=t,a=n,i=e.defineAsyncComponent(()=>import("@opengis/core").then(E=>E.VsModal)),s=e.computed(()=>Array.isArray(r.fields)?r.fields.filter(Boolean):[]),u=E=>(E==null?void 0:E.name)??(E==null?void 0:E.id)??(E==null?void 0:E.key)??(E==null?void 0:E.code)??(E==null?void 0:E.field)??(E==null?void 0:E.value)??"",p=E=>String(u(E)??"").trim(),w=E=>(E==null?void 0:E.title)??(E==null?void 0:E.label)??p(E),c=E=>String((E==null?void 0:E.type)??"").trim(),y=e.computed(()=>new Set(l.value.map(E=>String(E??"").trim()))),d=E=>y.value.has(p(E)),m=E=>{const T=p(E);if(!T)return;const j=new Set(y.value);j.has(T)?j.delete(T):j.add(T),l.value=Array.from(j)},g=e.computed(()=>r.confirmText||"Імпортувати"),h=e.computed(()=>r.cancelText||"Скасувати"),f=()=>{o.value=!1,a("cancel")},k=()=>{a("confirm"),o.value=!1};return(E,T)=>(e.openBlock(),e.createBlock(e.unref(i),{visible:o.value,"onUpdate:visible":T[0]||(T[0]=j=>o.value=j),teleport:"#modal",title:t.title,size:"lg"},{footer:e.withCtx(()=>[e.createElementVNode("div",ja,[e.createElementVNode("button",{onClick:f,class:"px-4 py-2 rounded bg-gray-100 text-gray-700"},e.toDisplayString(h.value),1),e.createElementVNode("button",{onClick:k,class:"px-4 py-2 rounded bg-blue-600 text-white"},e.toDisplayString(g.value),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",La,[e.createElementVNode("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,j=>(e.openBlock(),e.createElementBlock("label",{key:p(j),class:"flex items-center hover:bg-gray-100 rounded p-2 cursor-pointer"},[e.createElementVNode("input",{type:"checkbox",id:`${t.idPrefix}-${p(j)}`,checked:d(j),onChange:B=>m(j)},null,40,Ta),e.createElementVNode("div",Ma,[e.unref(Rn)(j.type)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`bg-${e.unref(On)(j.type)}-100 p-1 rounded`)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(`icon-${j.type}`),{class:"w-4 h-4"}))],2)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[e.createElementVNode("p",Fa,e.toDisplayString(p(j)),1),e.createElementVNode("p",Da,e.toDisplayString(w(j)),1),c(j)?(e.openBlock(),e.createElementBlock("p",Ia,e.toDisplayString(c(j)),1)):e.createCommentVNode("",!0)])])]))),128))])])]),_:1},8,["visible","title"]))}});function at(t){return t==null?"":String(t).trim()}function Ye(t){return at((t==null?void 0:t.name)??(t==null?void 0:t.id)??(t==null?void 0:t.key)??(t==null?void 0:t.code)??(t==null?void 0:t.field)??(t==null?void 0:t.value)??"")}function it(t,n,o){const l=Array.isArray(t)?[...t]:[],r=Array.isArray(n)?n:[],{selectedKeys:a,resolveKey:i}=o,s=new Set;for(const c of a){const y=at(c);y&&s.add(y)}if(s.size===0)return[];const u=c=>at(i(c)),p=[],w=new Set;for(const c of l){const y=u(c);!y||!s.has(y)||(p.push(c),w.add(y))}for(const c of r){const y=u(c);!y||w.has(y)||!s.has(y)||(p.push(c),w.add(y))}return p}const za={class:"vs-form"},Oa={class:"vs-form__body auto-rows-max container"},Ra={class:"flex flex-wrap"},Pa={class:"h-fit w-full mb-6 px-2"},Ua={class:"h-fit w-full flex flex-wrap"},qa={class:"w-full"},Ha=e.defineComponent({__name:"list-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=k=>Ye(k||{}),i=e.defineAsyncComponent(()=>import("@opengis/form")),s=e.ref(),u=e.ref(!1),p=e.ref([]),w=()=>{const k=y.value.map(E=>a(E)).filter(E=>E.length>0);p.value=[...k],u.value=!0},c=e.computed(()=>{var k,E;return((k=n.value)==null?void 0:k.token)||((E=n.value)==null?void 0:E.id)||"register-form"}),y=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.columns)||(n.value.columns=[]),n.value.columns),set:k=>{n.value||(n.value={}),n.value.columns=Array.isArray(k)?k:[]}}),d=e.computed({get:()=>n.value||{},set:k=>{var T;const E=Array.isArray((T=n.value)==null?void 0:T.columns)?n.value.columns:[];n.value={...n.value,...k,columns:E}}});e.watch(()=>s.value,k=>{o.value=k||null},{immediate:!0}),e.watch(u,k=>{k||(p.value=[])});const m=()=>{const k=new Set(p.value.map(j=>at(j)).filter(j=>j.length>0)),E=Array.isArray(y.value)?[...y.value]:[],T=r.value.filter(j=>k.has(a(j))).map(j=>{const B=a(j),V=j.title??j.label??B;return{...j,name:B,label:V,type:j.type||"text",meta:j.meta??"features"}});y.value=it(E,T,{selectedKeys:p.value,resolveKey:a}),u.value=!1,p.value=[]},g={table_name:{type:"select",label:"Таблиця",required:!0,data:"pg.table_name",placeholder:"Таблиця в БД",validators:["required"],col:6},name:{type:"text",label:"Назва",required:!0,placeholder:"Назва",validators:["required"],col:6},query:{type:"text",label:"Умова",placeholder:"Умова",col:6},order:{type:"text",label:"Сортування",placeholder:"Сортування",col:6},description:{type:"textarea",label:"Опис",placeholder:"Опис",col:12}},h=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Назва",type:"text"},{key:"meta",label:"Мета",type:"text"}],f={name:{type:"text",label:"Назва колонки",validators:["required"],disabled:!0},ua:{type:"text",label:"Назва",validators:["required"]},format:{type:"radio",label:"Формат",position:"horizontal",options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"},{text:"Badge",id:"badge"},{text:"Tags",id:"tags"}],validators:["required"]},is_export:{type:"switcher",label:"Експорт",info:"Чи експортувати дані колонки?",view:"switcher"},meta:{type:"combobox",label:"Мета",mode:"combo",options:[{text:"Title",id:"title"},{text:"Features",id:"features"},{text:"Status",id:"status"},{text:"Tags",id:"tags"},{text:"Category",id:"category"},{text:"Image",id:"image"}]},data:{type:"select",label:"Класифікатор",data:"admin.cls.name",conditions:["format","in",["select","badge","tags"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(k,E)=>(e.openBlock(),e.createElementBlock("div",za,[e.createElementVNode("div",Oa,[e.createElementVNode("div",Ra,[e.createElementVNode("div",Pa,[(e.openBlock(),e.createBlock(e.unref(i),{ref_key:"formEl",ref:s,key:c.value,schema:g,modelValue:d.value,"onUpdate:modelValue":E[0]||(E[0]=T=>d.value=T)},null,8,["modelValue"]))]),e.createElementVNode("div",Ua,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:w,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...E[4]||(E[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",qa,[e.createVNode(We,{modelValue:y.value,"onUpdate:modelValue":E[1]||(E[1]=T=>y.value=T),"columns-scheme":h,"form-scheme":f,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:u.value,"onUpdate:visible":E[2]||(E[2]=T=>u.value=T),selection:p.value,"onUpdate:selection":E[3]||(E[3]=T=>p.value=T),fields:r.value,title:"Імпорт колонок","id-prefix":"import-column",onConfirm:m},null,8,["visible","selection","fields"])]))}}),Wa={class:"vs-form"},Ya={class:"vs-form__body auto-rows-max container"},Za={class:"flex flex-wrap"},Ga={class:"h-fit w-full flex flex-wrap"},Ka={class:"w-full"},Xa=e.defineComponent({__name:"filter-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=d=>Ye(d||{}),i=e.ref(!1),s=e.ref([]),u=()=>{const d=p.value.map(m=>a(m)).filter(m=>m.length>0);s.value=[...d],i.value=!0},p=e.computed({get:()=>(n.value||(n.value={}),Array.isArray(n.value.filters)||(n.value.filters=[]),n.value.filters),set:d=>{n.value||(n.value={}),n.value.filters=Array.isArray(d)?d:[]}});e.watch(i,d=>{d||(s.value=[])});const w=()=>{const d=new Set(s.value.map(h=>at(h)).filter(h=>h.length>0)),m=Array.isArray(p.value)?[...p.value]:[],g=r.value.filter(h=>d.has(a(h))).map(h=>({name:a(h),label:h.title??h.label??a(h),type:h.type||"text"}));p.value=it(m,g,{selectedKeys:s.value,resolveKey:a}),i.value=!1,s.value=[]},c=[{key:"id",label:"Name"},{key:"label",label:"Назва"},{key:"type",label:"Тип"}],y={name:{type:"text",label:"Назва колонки",validators:["required"],disabled:!0},ua:{type:"text",label:"Назва",validators:["required"]},type:{type:"radio",label:"Тип",validators:["required"],position:"horizontal",options:[{text:"Check",id:"check"},{text:"Range",id:"range"},{text:"Date",id:"date"},{text:"Text",id:"text"},{text:"Select",id:"select"}]},hidden:{label:"Приховати",type:"Switcher"},data:{type:"select",label:"Класифікатор",data:"admin.cls.name",conditions:["type","in",["select","autocomplete","check"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(d,m)=>(e.openBlock(),e.createElementBlock("div",Wa,[e.createElementVNode("div",Ya,[e.createElementVNode("div",Za,[m[4]||(m[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте фільтри реєстру. Оберіть поля для імпорту або відредагуйте властивості вручну. ")],-1)),e.createElementVNode("div",Ga,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...m[3]||(m[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",Ka,[e.createVNode(We,{modelValue:p.value,"onUpdate:modelValue":m[0]||(m[0]=g=>p.value=g),"columns-scheme":c,"form-scheme":y,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:i.value,"onUpdate:visible":m[1]||(m[1]=g=>i.value=g),selection:s.value,"onUpdate:selection":m[2]||(m[2]=g=>s.value=g),fields:r.value,title:"Імпорт фільтрів","id-prefix":"import-filter",onConfirm:w},null,8,["visible","selection","fields"])]))}}),Ja={class:"vs-form"},Qa={class:"vs-form__body auto-rows-max container"},ei={class:"flex flex-wrap"},ti={class:"h-fit w-full flex flex-wrap"},ni={class:"w-full"},oi=e.defineComponent({__name:"card-tab",props:e.mergeModels({fields:{}},{data:{default:{}},dataModifiers:{},form:{},formModifiers:{}}),emits:["update:data","update:form"],setup(t){const n=e.useModel(t,"data"),o=e.useModel(t,"form"),l=t,r=e.computed(()=>Array.isArray(l.fields)?l.fields:[]),a=d=>Ye(d||{}),i=e.ref(!1),s=e.ref([]),u=()=>{const d=p.value.map(m=>a(m)).filter(m=>m.length>0);s.value=[...d],i.value=!0},p=e.computed({get:()=>n.value.card,set:d=>{n.value||(n.value={}),n.value.card=Array.isArray(d)?d:[]}});e.watch(i,d=>{var m;if(d){const g=((m=p.value)==null?void 0:m.map(h=>h.name))||[];s.value=[...g]}});const w=()=>{const d=new Set(s.value.map(h=>at(h)).filter(h=>h.length>0)),m=Array.isArray(p.value)?[...p.value]:[],g=r.value.filter(h=>d.has(a(h))).map(h=>{const f=a(h),k=h.title??h.label??f;return{...h,name:f,label:k,format:h.format||h.type||"text",meta:h.meta||"title"}});p.value=it(m,g,{selectedKeys:s.value,resolveKey:a}),i.value=!1,s.value=[]},c=[{key:"name",label:"Name",type:"text"},{key:"label",label:"Назва",type:"text"},{key:"format",label:"Формат",type:"text"}],y={name:{type:"text",label:"Назва колонки",validators:["required"],disabled:!0},ua:{type:"text",label:"Назва",validators:["required"]},format:{type:"radio",label:"Формат",position:"horizontal",options:[{text:"Text",id:"text"},{text:"Number",id:"number"},{text:"Date",id:"date"},{text:"File",id:"file"},{text:"Select",id:"select"},{text:"Badge",id:"badge"},{text:"Tags",id:"tags"}],validators:["required"]},data:{type:"text",label:"Класифікатор",conditions:["format","in",["select","badge","tags"]]}};return e.onBeforeUnmount(()=>{o.value=null}),(d,m)=>(e.openBlock(),e.createElementBlock("div",Ja,[e.createElementVNode("div",Qa,[e.createElementVNode("div",ei,[m[4]||(m[4]=e.createElementVNode("div",{class:"h-fit w-full flex flex-wrap mb-6 px-2"},[e.createElementVNode("p",{class:"text-sm text-gray-600"}," Налаштуйте відображення картки. Оберіть потрібні поля та відредагуйте їхні властивості. ")],-1)),e.createElementVNode("div",ti,[e.createElementVNode("div",{class:"flex justify-end mb-3 gap-2 w-full"},[e.createElementVNode("button",{onClick:u,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary hover:bg-primary/90 h-10 px-4 py-2 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-700 hover:to-blue-600 text-white"},[...m[3]||(m[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",class:"mr-1"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1),e.createTextVNode(" Імпорт ",-1)])])]),e.createElementVNode("div",ni,[e.createVNode(We,{modelValue:p.value,"onUpdate:modelValue":m[0]||(m[0]=g=>p.value=g),"columns-scheme":c,"form-scheme":y,"main-col-width":"250px","add-button":!1},null,8,["modelValue"])])])])]),e.createVNode(lt,{visible:i.value,"onUpdate:visible":m[1]||(m[1]=g=>i.value=g),selection:s.value,"onUpdate:selection":m[2]||(m[2]=g=>s.value=g),fields:r.value,title:"Імпорт полів картки","id-prefix":"import-card",onConfirm:w},null,8,["visible","selection","fields"])]))}}),ri=["","січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"];function ht(t){if(!t)return"";const[n,o]=t.split(" ");if(!n)return t;const[l,r,a]=n.split("-");if(!l||!r||!a)return t;const i=parseInt(r,10),s=ri[i]||r;let u=`${parseInt(a,10)} ${s} ${l}`;if(o){const p=o.split(".")[0],[w,c,y]=p.split(":");w&&c&&y?u+=`, ${w}:${c}:${y}`:w&&c?u+=`, ${w}:${c}`:w&&(u+=`, ${w}`)}return u}function xt(t,n={dateStyle:"short"}){if(t==null||t==="")return"";const o=new Date(t);return Number.isNaN(o.getTime())?"":new Intl.DateTimeFormat(void 0,n).format(o)}const li={class:"flex flex-col md:flex-row md:justify-between lg:flex-row lg:justify-between p-3 md:p-3.5 lg:p-4 pb-2 bg-slate-50 gap-3 md:gap-3.5 lg:gap-4"},ai={class:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between md:gap-3 lg:flex-row lg:items-center lg:justify-between lg:gap-0"},ii={class:"flex flex-col gap-2 md:flex-row md:items-center"},si={class:"text-base md:text-base lg:text-lg font-bold line-clamp-2"},ci={key:0,class:"flex flex-wrap items-center gap-1 md:gap-1.5 lg:gap-2 md:ml-2 lg:ml-2"},di={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground whitespace-nowrap","data-v0-t":"badge"},ui={key:0,class:"flex flex-wrap items-center gap-1 md:gap-1.5 lg:gap-2"},pi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground whitespace-nowrap"},mi={class:"p-3 md:p-3.5 lg:p-4 pt-2"},fi={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-2 md:gap-2.5 lg:gap-3 text-sm"},gi={class:"text-gray-500 shrink-0 md:max-w-[50%]"},yi={class:"font-medium flex flex-wrap gap-1"},hi={class:"items-center p-3 bg-slate-50 flex flex-col md:flex-row justify-end gap-2"},xi=["href"],bi=["href"],Un=e.defineComponent({__name:"template-1",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[e.createElementVNode("div",li,[e.createElementVNode("div",ai,[e.createElementVNode("div",ii,[e.createElementVNode("h2",si,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(),e.createElementBlock("div",ci,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",di,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)])]),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",ui,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("span",pi,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",mi,[e.createElementVNode("div",fi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-col md:flex-row md:items-center lg:flex-row lg:items-center gap-1 md:gap-1.5 lg:gap-1.5"},[e.createElementVNode("span",gi,e.toDisplayString((f==null?void 0:f.ua)||f.label||f.name)+": ",1),e.createElementVNode("span",yi,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-100 px-2 py-0 border-[0.01rem] border-gray-300 rounded-lg whitespace-nowrap"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",hi,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[0]||(y[0]=[e.createTextVNode(" На карті ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-map-pin-check-inside ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,xi)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[1]||(y[1]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M5 12h14"}),e.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)])],8,bi))])])}),128))}}),ki={class:"p-0"},wi={class:"border-l-4 border-l-slate-400"},_i={class:"p-4"},Ei={class:"flex flex-wrap items-center gap-2 mb-3"},Ni={class:"text-lg font-bold"},Bi={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-green-100 text-green-800 hover:bg-green-100","data-v0-t":"badge"},Vi={key:1,class:"flex"},Ci={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},$i={class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3 text-sm border-t pt-3"},vi={class:"text-xs text-gray-500 mb-1"},Si={class:"font-medium"},Li={class:"flex justify-end gap-2 mt-3 border-t pt-3"},Ai=["href"],Ti=["href"],qn=e.defineComponent({__name:"template-2",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm overflow-hidden","data-v0-t":"card"},[e.createElementVNode("div",ki,[e.createElementVNode("div",wi,[e.createElementVNode("div",_i,[e.createElementVNode("div",Ei,[e.createElementVNode("h2",Ni,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",Bi,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",Vi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-wrap gap-1 ml-2"},[d[f.name]?(e.openBlock(),e.createElementBlock("span",Ci,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",$i,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name},[e.createElementVNode("p",vi,e.toDisplayString(f.ua),1),e.createElementVNode("p",Si,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))]),e.createElementVNode("div",Li,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[0]||(y[0]=[e.createTextVNode(" На карті ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-map-pin-check-inside ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,Ai)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},[...y[1]||(y[1]=[e.createTextVNode(" Детальніше ",-1),e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link ml-1 h-3.5 w-3.5"},[e.createElementVNode("path",{d:"M15 3h6v6"}),e.createElementVNode("path",{d:"M10 14 21 3"}),e.createElementVNode("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})],-1)])],8,Ti))])])])])])}),128))}}),Mi={class:"space-y-4"},Fi={class:"flex flex-col lg:flex-row lg:items-center py-2 px-2 lg:px-3"},Di={class:"flex-1"},Ii={class:"grid grid-cols-1 lg:grid-cols-12 gap-2 w-full text-xs"},ji={class:"col-span-1 lg:col-span-4"},zi={class:"flex items-start"},Oi={class:"flex flex-col"},Ri={class:"font-bold text-xs lg:text-sm"},Pi={key:0,class:"flex flex-wrap gap-1 mt-1"},Ui={key:0,class:"inline-flex items-center rounded-full bg-secondary text-secondary-foreground text-[9px] lg:text-[10px] px-1.5 py-0"},qi={key:1,class:"flex flex-wrap gap-1 mt-1"},Hi={key:0,class:"inline-flex items-center rounded-full bg-gray-100 text-gray-800 text-[10px] lg:text-xs px-2 py-0.5 font-semibold"},Wi={class:"col-span-1 lg:col-span-7 mt-2 lg:mt-0"},Yi={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2 lg:gap-3"},Zi={class:"text-[9px] lg:text-[10px] text-gray-500 mb-1"},Gi={class:"truncate font-medium text-xs lg:text-sm"},Ki={class:"flex items-center justify-center gap-2 mt-3 lg:mt-0"},Xi=["href"],Ji=["href"],Hn=e.defineComponent({__name:"template-3",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=y=>(y==null?void 0:y.service_id)&&(y==null?void 0:y.is_map)&&y[n.id_key]&&(y==null?void 0:y.geom),r=e.computed(()=>n.columns.find(y=>y.meta==="title")),a=e.computed(()=>n.columns.filter(y=>y.meta==="category")),i=e.computed(()=>n.columns.filter(y=>y.meta==="tags")),s=e.computed(()=>n.columns.filter(y=>y.meta!=="title")),u=e.computed(()=>"bg-blue-500"),p=(y,d)=>{if(d)return y[d]},w=y=>{const d=p(y,n.id_key);return`${n.path}?id=${d}`},c=(y,d)=>{const m=p(y,n.id_key);return`/map?layers=${d}&info=${d},${m}`};return(y,d)=>(e.openBlock(),e.createElementBlock("div",Mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,m=>{var g,h,f;return e.openBlock(),e.createElementBlock("div",{key:m.id,class:"border-b border-slate-200 hover:bg-slate-50 transition-colors"},[e.createElementVNode("div",Fi,[e.createElementVNode("div",Di,[e.createElementVNode("div",Ii,[e.createElementVNode("div",ji,[e.createElementVNode("div",zi,[e.createElementVNode("div",{class:e.normalizeClass(["w-1 h-6 lg:h-8 rounded-full mr-2 lg:mr-3 mt-1",u.value])},null,2),e.createElementVNode("div",Oi,[e.createElementVNode("p",Ri,e.toDisplayString(m[`${(g=r.value)==null?void 0:g.name}_text`]||m[(h=r.value)==null?void 0:h.name]||m[(f=r.value)==null?void 0:f.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(),e.createElementBlock("div",Pi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,k=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.name},[m[k.name]?(e.openBlock(),e.createElementBlock("span",Ui,e.toDisplayString(m[`${k.name}_text`]||m[k.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,k=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.name},[m[k.name]?(e.openBlock(),e.createElementBlock("span",Hi,e.toDisplayString(m[`${k.name}_text`]||m[k.name]),1)):e.createCommentVNode("",!0)],64))),128))])):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",Wi,[e.createElementVNode("div",Yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,k=>{var E;return e.openBlock(),e.createElementBlock("div",{key:k.name},[e.createElementVNode("p",Zi,e.toDisplayString(k.ua),1),e.createElementVNode("p",Gi,[Array.isArray(m[k.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m[k.name],(T,j)=>(e.openBlock(),e.createElementBlock("span",{key:j,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1 text-[10px] lg:text-xs"},e.toDisplayString(T),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[k.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(m[k.name])||"Немає даних"),1)],64)):k.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(m[k.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((E=m[k.name+"_data"])==null?void 0:E.text)||m[k.name+"_text"]||m[k.name]||"Немає даних"),1)],64))],64))])])}),128))])])])]),e.createElementVNode("div",Ki,[!t.hideDetailsButton&&l(m)?(e.openBlock(),e.createElementBlock("a",{key:0,href:c(m,m.service_id),class:"inline-flex items-center justify-center gap-2 text-xs lg:text-sm font-medium hover:bg-accent hover:text-accent-foreground h-8 lg:h-9 rounded-md px-2 lg:px-3"},[...d[0]||(d[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"h-3 w-3 lg:h-3.5 lg:w-3.5"},[e.createElementVNode("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),e.createElementVNode("path",{d:"m9 10 2 2 4-4"})],-1)])],8,Xi)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:w(m),class:"flex items-center justify-center hover:bg-accent hover:text-accent-foreground rounded-md h-8 w-8 lg:h-7 lg:w-7"},[...d[1]||(d[1]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"h-3.5 w-3.5 lg:h-4 lg:w-4"},[e.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)])],8,Ji))])])])}),128))]))}}),Qi={class:"flex flex-col space-y-1.5 p-6 pb-2"},es={class:"flex items-center gap-2 flex-wrap"},ts={class:"tracking-tight text-lg font-medium"},ns={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-blue-100 text-blue-800 ml-2","data-v0-t":"badge"},os={key:1,class:"flex"},rs={key:0,class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold border-transparent bg-gray-100 text-gray-800"},ls={class:"p-6 pt-0 pb-4"},as={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},is={class:"text-sm text-gray-500"},ss={class:"font-medium"},cs={class:"flex items-center p-6 pt-0 gap-2"},ds=["href"],us=["href"],Wn=e.defineComponent({__name:"template-4",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=c=>(c==null?void 0:c.service_id)&&(c==null?void 0:c.is_map)&&c[n.id_key]&&(c==null?void 0:c.geom),r=e.computed(()=>n.columns.find(c=>c.meta==="title")),a=e.computed(()=>n.columns.filter(c=>c.meta==="category")),i=e.computed(()=>n.columns.filter(c=>c.meta==="tags")),s=e.computed(()=>n.columns.filter(c=>c.meta!=="title")),u=(c,y)=>{if(y)return c[y]},p=c=>{const y=u(c,n.id_key);return`${n.path}?id=${y}`},w=(c,y)=>{const d=u(c,n.id_key);return`/map?layers=${y}&info=${y},${d}`};return(c,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>{var m,g,h;return e.openBlock(),e.createElementBlock("div",{key:d.id,class:"rounded-lg border bg-card text-card-foreground shadow-sm border-l-4 border-l-blue-600","data-v0-t":"card"},[e.createElementVNode("div",Qi,[e.createElementVNode("div",es,[e.createElementVNode("h3",ts,e.toDisplayString(d[`${(m=r.value)==null?void 0:m.name}_text`]||d[(g=r.value)==null?void 0:g.name]||d[(h=r.value)==null?void 0:h.label]||"Не вказано"),1),Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[d[f.name]?(e.openBlock(),e.createElementBlock("div",ns,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",os,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.name,class:"flex flex-wrap gap-1 ml-2"},[d[f.name]?(e.openBlock(),e.createElementBlock("span",rs,e.toDisplayString(d[`${f.name}_text`]||d[f.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ls,[e.createElementVNode("div",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>{var k;return e.openBlock(),e.createElementBlock("div",{key:f.name},[e.createElementVNode("p",is,e.toDisplayString(f.ua),1),e.createElementVNode("p",ss,[Array.isArray(d[f==null?void 0:f.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d[f==null?void 0:f.name],(E,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1"},e.toDisplayString(E),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[f.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):f.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(d[f==null?void 0:f.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((k=d[(f==null?void 0:f.name)+"_data"])==null?void 0:k.text)||d[(f==null?void 0:f.name)+"_text"]||d[f==null?void 0:f.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",cs,[!t.hideDetailsButton&&l(d)?(e.openBlock(),e.createElementBlock("a",{key:0,href:w(d,d==null?void 0:d.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," На карті ",8,ds)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:p(d),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 border bg-background h-10 px-4 py-2 rounded-md text-black border-black hover:bg-gray-100 hover:text-black"}," Детальніше ",8,us))])])}),128))}}),ps={class:"grid grid-cols-1 lg:grid-cols-12 lg:divide-x divide-y lg:divide-y-0 divide-gray-100"},ms={key:0,class:"w-full lg:w-auto lg:col-span-1"},fs=["src"],gs={key:1,class:"hidden lg:flex lg:col-span-1 items-center justify-center py-4 lg:py-0"},ys={class:"col-span-1 lg:col-span-7 p-4 lg:p-4"},hs={class:"flex flex-col mb-3 lg:flex-row lg:items-center lg:mb-1"},xs={class:"text-base lg:text-base font-bold text-gray-900 mb-2 lg:mr-2 lg:mb-0"},bs={class:"flex flex-wrap gap-2 lg:gap-0"},ks={key:0,class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs lg:ml-2"},ws={class:"text-sm text-gray-600 line-clamp-2 lg:line-clamp-1 mb-3 lg:mb-2"},_s={class:"grid grid-cols-1 md:grid-cols-2 gap-y-3 md:gap-x-4 md:gap-y-1 text-sm"},Es={class:"flex items-center mb-1 md:mb-0 md:mr-1 max-w-[50%]"},Ns=["innerHTML"],Bs={class:"text-gray-500 font-medium md:font-normal"},Vs={class:"text-gray-600 break-words line-clamp-2"},Cs={class:"col-span-1 lg:col-span-2 p-4 lg:p-3 bg-gray-50 flex flex-col justify-center border-t lg:border-t-0 lg:border-l border-gray-100"},$s={class:"text-xs text-gray-500 mb-2 lg:mb-1.5"},vs={key:0,class:"flex flex-wrap gap-1.5 lg:gap-1"},Ss={key:0,class:"inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-2 py-0.5 lg:px-1.5 lg:py-0"},Ls={class:"col-span-1 lg:col-span-2 flex flex-col justify-center items-stretch lg:items-center bg-gray-50 border-t lg:border-t-0 lg:border-l border-gray-100 p-4 lg:p-2"},As={class:"w-full space-y-2"},Ts=["href"],Ms=["href"],Yn=e.defineComponent({__name:"template-5",props:{items:{},item:{},columns:{},path:{},id_key:{default:"id"},query_params:{default:()=>[]},hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=t,o=e.computed(()=>n.items&&n.items.length||n.items?n.items:n.item!=null?[n.item]:[]),l=d=>(d==null?void 0:d.service_id)&&(d==null?void 0:d.is_map)&&d[n.id_key]&&(d==null?void 0:d.geom),r=e.computed(()=>n.columns.find(d=>d.meta==="title")),a=e.computed(()=>n.columns.filter(d=>d.meta==="category")),i=e.computed(()=>n.columns.filter(d=>d.meta==="tags")),s=e.computed(()=>n.columns.filter(d=>d.meta!=="title")),u=e.computed(()=>n.columns.find(d=>d.meta==="image")),p=e.computed(()=>n.columns.find(d=>d.meta==="desc")||n.columns.find(d=>d.name==="description")),w=(d,m)=>{if(m)return d[m]},c=d=>{const m=w(d,n.id_key);return`${n.path}?id=${m}`},y=(d,m)=>{const g=w(d,n.id_key);return`/map?layers=${m}&info=${m},${g}`};return(d,m)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,g=>{var h,f,k,E,T,j,B,V,v;return e.openBlock(),e.createElementBlock("div",{key:g.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[e.createElementVNode("div",ps,[u.value?(e.openBlock(),e.createElementBlock("div",ms,[g[(h=u.value)==null?void 0:h.name]?(e.openBlock(),e.createElementBlock("img",{key:0,src:g[(f=u.value)==null?void 0:f.name],alt:"image",class:"object-cover w-full h-48 lg:h-full lg:w-auto"},null,8,fs)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",gs,[...m[0]||(m[0]=[e.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-blue-500",title:"Пріоритет: Високий","aria-hidden":"true"},null,-1)])])),e.createElementVNode("div",ys,[e.createElementVNode("div",hs,[e.createElementVNode("h3",xs,e.toDisplayString(g[`${(k=r.value)==null?void 0:k.name}_text`]||g[(E=r.value)==null?void 0:E.name]||g[(T=r.value)==null?void 0:T.label]||"Не вказано"),1),e.createElementVNode("div",bs,[Array.isArray(a.value)&&a.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.value,S=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S.name},[g[S.name]?(e.openBlock(),e.createElementBlock("div",ks,e.toDisplayString(g[`${S.name}_text`]||g[S.name]),1)):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0)])]),e.createElementVNode("p",ws,e.toDisplayString(((B=g[((j=p.value)==null?void 0:j.name)+"_data"])==null?void 0:B.text)||g[((V=p.value)==null?void 0:V.name)+"_text"]||g[(v=p.value)==null?void 0:v.name]),1),e.createElementVNode("div",_s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>{var M;return e.openBlock(),e.createElementBlock("div",{key:S.name,class:"flex flex-col md:flex-row md:items-center"},[e.createElementVNode("div",Es,[S.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"mr-1 flex-shrink-0",innerHTML:S.icon},null,8,Ns)):e.createCommentVNode("",!0),e.createElementVNode("span",Bs,e.toDisplayString((S==null?void 0:S.ua)||S.label||S.name)+":",1)]),e.createElementVNode("span",Vs,[Array.isArray(g[S==null?void 0:S.name])?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(g[S==null?void 0:S.name],(R,I)=>(e.openBlock(),e.createElementBlock("span",{key:I,class:"bg-gray-200 px-1 py-0.5 rounded-lg mr-1 inline-block"},e.toDisplayString(R),1))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[S.format==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(xt)(g[S==null?void 0:S.name])||"Немає даних"),1)],64)):S.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(ht)(g[S==null?void 0:S.name])||"Немає даних"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(((M=g[(S==null?void 0:S.name)+"_data"])==null?void 0:M.text)||g[(S==null?void 0:S.name)+"_text"]||g[S==null?void 0:S.name]||"Немає даних"),1)],64))],64))])])}),128))])]),e.createElementVNode("div",Cs,[e.createElementVNode("p",$s," Теги: "+e.toDisplayString(i.value.length&&g[i.value[0].name]?"":"відсутні"),1),Array.isArray(i.value)&&i.value.length?(e.openBlock(),e.createElementBlock("div",vs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,S=>(e.openBlock(),e.createElementBlock("div",{key:S.name,class:"flex flex-wrap gap-1"},[g[S.name]?(e.openBlock(),e.createElementBlock("span",Ss,e.toDisplayString(g[`${S.name}_text`]||g[S.name]),1)):e.createCommentVNode("",!0)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ls,[e.createElementVNode("div",As,[!t.hideDetailsButton&&l(g)?(e.openBlock(),e.createElementBlock("a",{key:0,href:y(g,g==null?void 0:g.service_id),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," На карті ",8,Ts)):e.createCommentVNode("",!0),t.hideDetailsButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",{key:1,href:c(g),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше ",8,Ms))])])])])}),128))}}),Zn={template1:Un,template2:qn,template3:Hn,template4:Wn,template5:Yn},Fs={class:"space-y-4"},Ds={class:"flex items-center gap-4"},Is={class:"text-lg font-semibold mb-4"},js={key:1,class:"text-gray-400 text-center py-12"},zs={key:2,class:"text-gray-400 text-center py-12"},Os=e.defineComponent({__name:"preview-tab",props:e.mergeModels({hideDetailsButton:{type:Boolean,default:!1}},{data:{default:{}},dataModifiers:{}}),emits:["update:data"],setup(t){const n=e.defineAsyncComponent(()=>import("@opengis/form")),o=e.useModel(t,"data"),l=[{text:"template1",id:"template1"},{text:"template2",id:"template2"},{text:"template3",id:"template3"},{text:"template4",id:"template4"},{text:"template5",id:"template5"}],r={view:{type:"radio",label:"Вигляд",position:"horizontal",required:!0,options:l,col:12}},a=e.computed(()=>{var w;return Array.isArray((w=o.value)==null?void 0:w.columns)?o.value.columns:[]}),i=e.computed(()=>{var w;return((w=o.value)==null?void 0:w.view)||"template1"}),s=e.computed(()=>Zn[i.value]||Zn.template1),u=e.computed(()=>{var y;const w=(y=o.value)==null?void 0:y.view;if(!w)return"template1";const c=l.find(d=>d.id===w);return(c==null?void 0:c.text)||w}),p=e.computed(()=>(Array.isArray(o.value.tableData)?o.value.tableData:[]).slice(0,5).map(c=>{var y,d;return{...c,service_id:(y=o.value)==null?void 0:y.service_id,is_map:(d=o.value)==null?void 0:d.is_map}}));return(w,c)=>(e.openBlock(),e.createElementBlock("div",Fs,[e.createElementVNode("div",Ds,[(e.openBlock(),e.createBlock(e.unref(n),{key:o.value.id,schema:r,modelValue:o.value,"onUpdate:modelValue":c[0]||(c[0]=y=>o.value=y)},null,8,["modelValue"]))]),e.createElementVNode("h2",Is," Превʼю таблиці ("+e.toDisplayString(u.value)+") ",1),s.value&&p.value.length&&a.value.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{items:p.value,columns:a.value,path:"#",id_key:"id","hide-details-button":t.hideDetailsButton,key:i.value},null,8,["items","columns","hide-details-button"])):p.value.length?(e.openBlock(),e.createElementBlock("div",zs," Додайте колонки та виберіть вигляд для перегляду ")):(e.openBlock(),e.createElementBlock("div",js," Немає даних для превʼю "))]))}}),Rs={class:"relative h-screen flex flex-col bg-white p-8"},Ps={class:"flex-1 flex flex-col min-h-0 overflow-hidden"},Us={class:"max-w-6xl mx-auto flex-1 flex flex-col min-h-0 w-full"},qs={class:"flex items-center justify-between mb-6 flex-shrink-0"},Hs={class:"flex items-center gap-2"},Ws={class:"w-full flex-shrink-0 mb-6"},Ys={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 bg-white border border-gray-200 rounded-md text-muted-foreground"},Zs=["onClick"],Gs={class:"flex-1 min-h-0 overflow-y-auto"},Ks=e.defineComponent({__name:"register",props:{hideDetailsButton:{type:Boolean,default:!1}},setup(t){const n=be.useRoute(),o=be.useRouter(),l=e.ref("list"),r=e.ref(""),a=[{name:"Список",id:"list"},{name:"Фільтри",id:"filters"},{name:"Картка",id:"card"},{name:"Перегляд",id:"preview"}],i={list:Ha,filters:Xa,card:oi,preview:Os},s=a.map(d=>d.id),u=e.ref({columns:[],filters:[],card:[],tableData:[]}),p=e.ref([]),w=async()=>{var m;if(!((m=u.value)==null?void 0:m.token)){ue.notify({type:"error",title:"Помилка",message:"Відсутній токен для збереження"});return}try{const g=await fetch(`/api/gis-registry/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(u.value)});if(!g.ok)throw new Error(`Failed to save content: ${g.status}`);ue.notify({type:"success",title:"Успіх",message:"Контент збережено"})}catch(g){ue.notify({type:"error",title:"Помилка",message:"Не вдалося зберегти контент"}),console.error(g)}},c=async d=>{try{const g=await(await fetch(`/api/gis-registry/${d}`)).json(),h=Array.isArray(g==null?void 0:g.rows)?g.rows:[];u.value.tableData=h.slice(0,3)}catch(m){console.error("Помилка завантаження превʼю:",m)}},y=async()=>{var d,m;try{const h=await(await fetch(`/api/data/gis.registers.table/${n.params.id}`)).json(),f=((d=h==null?void 0:h.rows)==null?void 0:d[0])||{};r.value=f.register_key||"",u.value={...f,columns:Array.isArray(f.columns)?f.columns:[],filters:Array.isArray(f.filters)?f.filters:[],card:Array.isArray(f.card)?f.card:[],tableData:Array.isArray(f.tableData)?f.tableData:[]},(m=h==null?void 0:h.tokens)!=null&&m.edit&&(u.value.token=h.tokens.edit),p.value=Array.isArray(h==null?void 0:h.fields)?h.fields:[]}catch(g){console.error("Помилка завантаження даних:",g)}};return e.onMounted(async()=>{const d=n.query.tab;typeof d=="string"&&s.includes(d)&&(l.value=d),await y(),r.value&&await c(r.value)}),e.watch(l,d=>{n.query.tab!==d&&o.replace({query:{...n.query,tab:d}})}),e.watch(()=>n.query.tab,d=>{typeof d=="string"&&s.includes(d)&&l.value!==d&&(l.value=d)}),(d,m)=>(e.openBlock(),e.createElementBlock("main",Rs,[e.createElementVNode("div",Ps,[e.createElementVNode("div",Us,[e.createElementVNode("div",qs,[m[2]||(m[2]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"mb-2 text-2xl font-semibold text-gray-900"},"Створити контент"),e.createElementVNode("p",{class:"text-gray-600"},"Створити контент для вашого сайту")],-1)),e.createElementVNode("div",Hs,[e.createElementVNode("button",{onClick:m[0]||(m[0]=g=>e.unref(o).back()),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground h-10 px-4 py-2 border-gray-300 text-gray-700 hover:bg-gray-50"}," Повернутися "),e.createElementVNode("button",{onClick:w,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-white rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-primary-foreground h-10 px-4 py-2 bg-blue-600 hover:bg-blue-700"}," Зберегти ")])]),e.createElementVNode("div",Ws,[e.createElementVNode("div",Ys,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,g=>e.createElementVNode("button",{key:g.id,onClick:h=>l.value=g.id,class:e.normalizeClass(["inline-flex flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm data-[state=active]:bg-blue-50 data-[state=active]:text-blue-700 data-[state=active]:border-blue-200",g.id===l.value?"bg-blue-50 text-blue-700 border-blue-200":""])},e.toDisplayString(g.name),11,Zs)),64))])]),e.createElementVNode("div",Gs,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i[l.value]),{data:u.value,"onUpdate:data":m[1]||(m[1]=g=>u.value=g),fields:p.value,"hide-details-button":t.hideDetailsButton,key:l.value},null,40,["data","fields","hide-details-button"]))])])])]))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function Gn(t){return typeof t>"u"||t===null}function Xs(t){return typeof t=="object"&&t!==null}function Js(t){return Array.isArray(t)?t:Gn(t)?[]:[t]}function Qs(t,n){var o,l,r,a;if(n)for(a=Object.keys(n),o=0,l=a.length;o<l;o+=1)r=a[o],t[r]=n[r];return t}function ec(t,n){var o="",l;for(l=0;l<n;l+=1)o+=t;return o}function tc(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var nc=Gn,oc=Xs,rc=Js,lc=ec,ac=tc,ic=Qs,Ce={isNothing:nc,isObject:oc,toArray:rc,repeat:lc,isNegativeZero:ac,extend:ic};function Kn(t,n){var o="",l=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(o+='in "'+t.mark.name+'" '),o+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!n&&t.mark.snippet&&(o+=`
|
|
129
129
|
|
|
130
130
|
`+t.mark.snippet),l+" "+o):l}function bt(t,n){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=n,this.message=Kn(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}bt.prototype=Object.create(Error.prototype),bt.prototype.constructor=bt,bt.prototype.toString=function(n){return this.name+": "+Kn(this,n)};var De=bt;function Zt(t,n,o,l,r){var a="",i="",s=Math.floor(r/2)-1;return l-n>s&&(a=" ... ",n=l-s+a.length),o-l>s&&(i=" ...",o=l+s-i.length),{str:a+t.slice(n,o).replace(/\t/g,"→")+i,pos:l-n+a.length}}function Gt(t,n){return Ce.repeat(" ",n-t.length)+t}function sc(t,n){if(n=Object.create(n||null),!t.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var o=/\r?\n|\r|\0/g,l=[0],r=[],a,i=-1;a=o.exec(t.buffer);)r.push(a.index),l.push(a.index+a[0].length),t.position<=a.index&&i<0&&(i=l.length-2);i<0&&(i=l.length-1);var s="",u,p,w=Math.min(t.line+n.linesAfter,r.length).toString().length,c=n.maxLength-(n.indent+w+3);for(u=1;u<=n.linesBefore&&!(i-u<0);u++)p=Zt(t.buffer,l[i-u],r[i-u],t.position-(l[i]-l[i-u]),c),s=Ce.repeat(" ",n.indent)+Gt((t.line-u+1).toString(),w)+" | "+p.str+`
|
|
131
131
|
`+s;for(p=Zt(t.buffer,l[i],r[i],t.position,c),s+=Ce.repeat(" ",n.indent)+Gt((t.line+1).toString(),w)+" | "+p.str+`
|
|
@@ -18,19 +18,42 @@
|
|
|
18
18
|
"export",
|
|
19
19
|
"add"
|
|
20
20
|
],
|
|
21
|
+
"sql": [
|
|
22
|
+
{
|
|
23
|
+
"sql": "select sum(count) as count from ( select count(*) from gis.cartocss where group_id=t.group_id union all select count(*) from gis.ogc_service where group_id=t.group_id union all select count(*) from gis.rasters where group_id=t.group_id union all select count(*) from gis.services where group_id=t.group_id )q",
|
|
24
|
+
"name": "count_sql"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
21
27
|
"form": "gis.group_list.form",
|
|
22
28
|
"columns": [
|
|
23
29
|
{
|
|
24
30
|
"ua": "Назва",
|
|
25
31
|
"name": "group_name",
|
|
26
|
-
"width": 200,
|
|
27
32
|
"format": "text"
|
|
28
33
|
},
|
|
29
34
|
{
|
|
30
|
-
"ua": "
|
|
35
|
+
"ua": "Кількість георесурсів",
|
|
36
|
+
"name": "count",
|
|
37
|
+
"format": "text"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"ua": "Вкл/Викл",
|
|
31
41
|
"name": "enabled",
|
|
32
42
|
"format": "boolean",
|
|
33
43
|
"edit": true
|
|
34
44
|
}
|
|
45
|
+
],
|
|
46
|
+
"filters": [
|
|
47
|
+
{
|
|
48
|
+
"name": "group_name",
|
|
49
|
+
"ua": "Назва",
|
|
50
|
+
"type": "Text"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "enabled",
|
|
54
|
+
"ua": "Вкл/Викл",
|
|
55
|
+
"data": "yes_no",
|
|
56
|
+
"type": "Check"
|
|
57
|
+
}
|
|
35
58
|
]
|
|
36
59
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/gis",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.80",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Softpro",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@opengis/core": "^0.0.23",
|
|
55
|
-
"@opengis/fastify-table": "^2.0.
|
|
55
|
+
"@opengis/fastify-table": "^2.0.135",
|
|
56
56
|
"@opengis/filter": "0.1.31",
|
|
57
57
|
"@opengis/form": "^0.0.103",
|
|
58
58
|
"@opengis/table": "^0.0.27",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"eslint-plugin-import": "^2.32.0",
|
|
64
64
|
"eslint-plugin-vue": "^9.33.0",
|
|
65
65
|
"@vue/eslint-config-typescript": "^12.0.0",
|
|
66
|
-
"vue-eslint-parser": "^10.
|
|
66
|
+
"vue-eslint-parser": "^10.4.0",
|
|
67
67
|
"lucide-vue-next": "^0.514.0",
|
|
68
68
|
"sass-embedded": "1.86.3",
|
|
69
69
|
"typescript": "^5.9.3",
|
|
@@ -17,49 +17,89 @@ const columnType = {
|
|
|
17
17
|
export default async function getMap({ params = {}, pg = pgClients.client }, reply) {
|
|
18
18
|
const { columns = [] } = await getMeta({ pg, table }) || {};
|
|
19
19
|
|
|
20
|
-
const fields = columns.map(({ name, dataTypeID, title }) => ({
|
|
20
|
+
const fields = columns.map(({ name, dataTypeID, title }) => ({
|
|
21
|
+
name,
|
|
22
|
+
type: columnType[pg.pgType?.[dataTypeID] || 'text'],
|
|
23
|
+
label: title || name
|
|
24
|
+
}));
|
|
25
|
+
|
|
21
26
|
const mapList = getTemplates('map').map(el => el[0]);
|
|
22
27
|
|
|
23
28
|
const rows = pg.pk?.['gis.maps'] ? await pg.query(
|
|
24
|
-
`SELECT map_id as id, *
|
|
29
|
+
`SELECT map_id as id, * FROM gis.maps where ${params.id ? '$1 in (map_id,map_key)' : '1=1'}`,
|
|
25
30
|
[params.id].filter(Boolean),
|
|
26
31
|
).then(el => el.rows || []) : [];
|
|
27
32
|
|
|
28
33
|
if (params.id && !mapList?.includes(params.id) && !rows[0]) {
|
|
29
|
-
return { status: 404, message: 'map not found' };
|
|
34
|
+
return reply.status(404).send({ status: 404, message: 'map not found' });
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
const totals = pg.queryCache ? await pg.queryCache('select json_object_agg(oid::regclass, reltuples) from pg_class')
|
|
33
38
|
.then(el => el.rows?.[0]?.json_object_agg || {}) : {};
|
|
39
|
+
|
|
34
40
|
const maps = pg.pk?.['gis.maps'] ? await pg.query(
|
|
35
|
-
'SELECT map_id as id, map_key as slug, name
|
|
41
|
+
'SELECT map_id as id, map_key as slug, name FROM gis.maps where is_active and is_public order by name',
|
|
36
42
|
).then(el => el.rows || []) : [];
|
|
37
43
|
|
|
38
44
|
if (params.id) {
|
|
39
45
|
const map = rows[0] || {};
|
|
40
46
|
const loadTemplate = await getTemplate('map', params.id) || await getTemplate('map', map.map_key);
|
|
41
|
-
|
|
42
47
|
const obj = loadTemplate || map;
|
|
43
48
|
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
const rawIds = [
|
|
50
|
+
...(Array.isArray(obj?.layers) ? obj.layers : []),
|
|
51
|
+
...(Array.isArray(obj?.ogc) ? obj.ogc : []),
|
|
52
|
+
...(Array.isArray(obj?.cartocss) ? obj.cartocss : []),
|
|
53
|
+
...(Array.isArray(obj?.rasters) ? obj.rasters : [])
|
|
54
|
+
];
|
|
55
|
+
const layerIds = [...new Set(rawIds.map(id => id?.toString().trim()).filter(Boolean))];
|
|
56
|
+
|
|
57
|
+
let layers = [];
|
|
58
|
+
|
|
59
|
+
if (layerIds.length > 0) {
|
|
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]),
|
|
62
|
+
pg.query(`SELECT ogc_service_id::text as id, url as service_url, * FROM gis.ogc_service WHERE enabled = true AND isadmin = false 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 ispublic = 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])
|
|
65
|
+
]);
|
|
66
|
+
|
|
67
|
+
const allFetchedLayers = [
|
|
68
|
+
...resServices.rows.map(row => ({ ...row, type: row.service_type || 'layer' })),
|
|
69
|
+
...resOgc.rows.map(row => ({ ...row, type: 'ogc', source_path: row.table_name })),
|
|
70
|
+
...resRasters.rows.map(row => ({ ...row, type: 'raster' })),
|
|
71
|
+
...resCarto.rows.map(row => ({ ...row, type: 'cartocss' }))
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
const dbLayersMap = new Map(allFetchedLayers.map(l => [String(l.id), l]));
|
|
75
|
+
|
|
76
|
+
const layersResults = await Promise.all(layerIds.map(async (id) => {
|
|
77
|
+
const idStr = String(id);
|
|
78
|
+
|
|
79
|
+
if (!dbLayersMap.has(idStr)) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const dbData = dbLayersMap.get(idStr);
|
|
84
|
+
const templateData = await getTemplate('layer', idStr);
|
|
85
|
+
|
|
86
|
+
const layerData = { ...dbData, ...(templateData || {}) };
|
|
87
|
+
|
|
88
|
+
layerData.count = totals[layerData.source_path || ''] || 0;
|
|
89
|
+
layerData.visible = true;
|
|
90
|
+
|
|
91
|
+
if (layerData.style && typeof layerData.style === 'string') {
|
|
92
|
+
if (layerData.type === 'cartocss') {
|
|
93
|
+
layerData.style = layerData.style.replace(/\s+/g, ' ').trim();
|
|
94
|
+
} else if (layerData.type !== 'ogc') {
|
|
95
|
+
layerData.style = yml2json(layerData.style);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return layerData;
|
|
52
100
|
}));
|
|
53
|
-
}
|
|
54
101
|
|
|
55
|
-
|
|
56
|
-
await Promise.all(obj.layers.map(async (layer) => {
|
|
57
|
-
const layerData = await getTemplate('layer', layer);
|
|
58
|
-
const serviceData = layerData || await pg.query('select service_id as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center from gis.services where service_id=$1', [layer]).then(el => el.rows?.[0]);
|
|
59
|
-
Object.assign(serviceData || {}, { count: totals[serviceData?.source_path || ''] || 0 });
|
|
60
|
-
if (serviceData) { serviceData.style = typeof serviceData.style === 'object' ? serviceData.style : yml2json(serviceData.style); }
|
|
61
|
-
layers.push({ ...(serviceData || {}), id: layer, visible: !!serviceData });
|
|
62
|
-
}));
|
|
102
|
+
layers = layersResults.filter(Boolean);
|
|
63
103
|
}
|
|
64
104
|
|
|
65
105
|
return reply.status(200).send({ maps, ...obj, layers });
|
|
@@ -69,12 +109,5 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
|
|
|
69
109
|
return reply.status(404).send('map not found');
|
|
70
110
|
}
|
|
71
111
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return reply.status(200).send({
|
|
77
|
-
rows,
|
|
78
|
-
fields,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
112
|
+
return reply.status(200).send(params.id ? { ...rows[0], fields } : { rows, fields });
|
|
113
|
+
}
|