@opengis/bi 1.2.34 → 1.2.35

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/style.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-weight:400}h1{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-weight:700}em{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-style:italic}.custom-scrollbar{overflow-y:auto;overflow-x:clip}.custom-scrollbar::-webkit-scrollbar{width:6px;margin-right:0}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#e0e0e0;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background-color:#f1f1f1}.vs-modal-content[data-v-5722a50f]{scrollbar-width:thin}.vs-modal-enter-active[data-v-5722a50f],.vs-modal-leave-active[data-v-5722a50f]{transition:opacity .2s ease,transform .2s ease}.vs-modal-enter-from[data-v-5722a50f],.vs-modal-leave-to[data-v-5722a50f]{opacity:0;transform:scale(.95)}.custom-scrollbar[data-v-330ef797]{overflow-y:auto;overflow-x:clip}.custom-scrollbar[data-v-330ef797]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-330ef797]::-webkit-scrollbar-thumb{background-color:#e0e0e0;border-radius:10px}.custom-scrollbar[data-v-330ef797]::-webkit-scrollbar-track{background-color:#f1f1f1}@keyframes fade-in-6f582e09{0%{opacity:0}to{opacity:1}}.animate-fade-in[data-v-6f582e09]{animation:fade-in-6f582e09 .3s ease-out}.custom-x-scrollbar{overflow-x:auto;overflow-y:clip}.custom-x-scrollbar::-webkit-scrollbar{height:6px}.custom-x-scrollbar::-webkit-scrollbar-thumb{background-color:#e0e0e0}.custom-x-scrollbar::-webkit-scrollbar-track{background-color:#f1f1f1}.vs-chart{width:100%;height:100%}.vs-chart-tooltip{border-radius:7px;max-height:100px;max-width:340px;min-width:140px;background-color:#fff;box-shadow:0 0 8px #0000002e}.vs-chart-tooltip__head{padding:5px;border-bottom:1px solid #eee;margin-bottom:5px}.vs-chart-tooltip__head-title{font-size:14px;font-weight:700;display:flex;align-items:center}.vs-chart-tooltip__head-value{margin-right:5px}.vs-chart-tooltip__head-series{font-size:14px;display:flex;align-items:center}.vs-chart-tooltip__color{width:12px;height:12px;display:block;border-radius:50%;margin-right:5px}.vs-chart-tooltip__body{padding:5px;font-size:14px;display:flex;align-items:start;flex-direction:column}.vs-chart-tooltip__body .vs-chart-tooltip__color{border-radius:3px}.vs-chart-tooltip__item{width:100%;display:flex;align-items:center;justify-content:space-between}.vs-chart-tooltip__text{margin-right:auto}.vs-chart-tooltip__body svg{margin-right:8px}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-widget h1{font-size:18px}.text-widget h2{font-size:14px}.map__settings{display:flex;padding:3px 1px;background:#fff;position:absolute;right:0;bottom:15px;height:30px;align-items:center;font-weight:100;text-align:center}.map__settings-item{display:flex;white-space:nowrap;padding:0 2px;font-size:10px;font-weight:400}.map__settings-attribution{padding:0}.map__settings-menu{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:15px!important;position:absolute;background-color:#fff;bottom:60px;right:90px;width:260px}.map__settings-menu-item{display:flex;align-items:center;color:#2c2c2c;margin-bottom:5px;font-size:12px;justify-content:space-between;height:28px}.map__settings-menu-item-text{height:28px;line-height:28px;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:12px;height:40px;line-height:40px;outline:0;padding:0 10px}.map__settings-menu-item--checktext{color:#000!important;font-size:12px;display:inline-block;padding-left:10px;line-height:19px;cursor:pointer}.checked{color:#409eff!important}.vs-map-slot-layers{position:absolute;display:none;bottom:10px;left:15px}.vs-map-slot-layers__layer{width:50px;height:50px;background-color:#fff;box-shadow:0 0 7px #434c5626;padding:5px;border-radius:5px;margin-top:10px;margin-right:10px;cursor:pointer;transition:all .3s}.vs-map-slot-layers__layer:hover{background-color:#eee}.vs-map-slot-layers__image{width:100%;border-radius:5px;object-fit:contain}.focused{background-color:#1989fa!important}.maplibregl-popup-content{padding:0}
1
+ @font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-weight:400}h1{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-weight:700}em{font-family:Inter,Segoe UI,Helvetica Neue,Roboto,sans-serif;font-style:italic}.custom-scrollbar{overflow-y:auto;overflow-x:clip}.custom-scrollbar::-webkit-scrollbar{width:6px;margin-right:0}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#e0e0e0;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background-color:#f1f1f1}.vs-modal-content[data-v-1c7d97fa]{scrollbar-width:thin}.vs-modal-enter-active[data-v-1c7d97fa],.vs-modal-leave-active[data-v-1c7d97fa]{transition:opacity .2s ease,transform .2s ease}.vs-modal-enter-from[data-v-1c7d97fa],.vs-modal-leave-to[data-v-1c7d97fa]{opacity:0;transform:scale(.95)}.custom-scrollbar[data-v-9395dbec]{overflow-y:auto;overflow-x:clip}.custom-scrollbar[data-v-9395dbec]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-9395dbec]::-webkit-scrollbar-thumb{background-color:#e0e0e0;border-radius:10px}.custom-scrollbar[data-v-9395dbec]::-webkit-scrollbar-track{background-color:#f1f1f1}@keyframes fade-in-6f582e09{0%{opacity:0}to{opacity:1}}.animate-fade-in[data-v-6f582e09]{animation:fade-in-6f582e09 .3s ease-out}.custom-x-scrollbar{overflow-x:auto;overflow-y:clip}.custom-x-scrollbar::-webkit-scrollbar{height:6px}.custom-x-scrollbar::-webkit-scrollbar-thumb{background-color:#e0e0e0}.custom-x-scrollbar::-webkit-scrollbar-track{background-color:#f1f1f1}.vs-chart{width:100%;height:100%}.vs-chart-tooltip{border-radius:7px;max-height:100px;max-width:340px;min-width:140px;background-color:#fff;box-shadow:0 0 8px #0000002e}.vs-chart-tooltip__head{padding:5px;border-bottom:1px solid #eee;margin-bottom:5px}.vs-chart-tooltip__head-title{font-size:14px;font-weight:700;display:flex;align-items:center}.vs-chart-tooltip__head-value{margin-right:5px}.vs-chart-tooltip__head-series{font-size:14px;display:flex;align-items:center}.vs-chart-tooltip__color{width:12px;height:12px;display:block;border-radius:50%;margin-right:5px}.vs-chart-tooltip__body{padding:5px;font-size:14px;display:flex;align-items:start;flex-direction:column}.vs-chart-tooltip__body .vs-chart-tooltip__color{border-radius:3px}.vs-chart-tooltip__item{width:100%;display:flex;align-items:center;justify-content:space-between}.vs-chart-tooltip__text{margin-right:auto}.vs-chart-tooltip__body svg{margin-right:8px}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-widget h1{font-size:18px}.text-widget h2{font-size:14px}.map__settings{display:flex;padding:3px 1px;background:#fff;position:absolute;right:0;bottom:15px;height:30px;align-items:center;font-weight:100;text-align:center}.map__settings-item{display:flex;white-space:nowrap;padding:0 2px;font-size:10px;font-weight:400}.map__settings-attribution{padding:0}.map__settings-menu{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:15px!important;position:absolute;background-color:#fff;bottom:60px;right:90px;width:260px}.map__settings-menu-item{display:flex;align-items:center;color:#2c2c2c;margin-bottom:5px;font-size:12px;justify-content:space-between;height:28px}.map__settings-menu-item-text{height:28px;line-height:28px;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:12px;height:40px;line-height:40px;outline:0;padding:0 10px}.map__settings-menu-item--checktext{color:#000!important;font-size:12px;display:inline-block;padding-left:10px;line-height:19px;cursor:pointer}.checked{color:#409eff!important}.vs-map-slot-layers{position:absolute;display:none;bottom:10px;left:15px}.vs-map-slot-layers__layer{width:50px;height:50px;background-color:#fff;box-shadow:0 0 7px #434c5626;padding:5px;border-radius:5px;margin-top:10px;margin-right:10px;cursor:pointer;transition:all .3s}.vs-map-slot-layers__layer:hover{background-color:#eee}.vs-map-slot-layers__image{width:100%;border-radius:5px;object-fit:contain}.focused{background-color:#1989fa!important}.maplibregl-popup-content{padding:0}
@@ -1,4 +1,4 @@
1
- import { _ as l, c as h, a as c, b as d, d as p } from "./import-file-BwxPX622.js";
1
+ import { _ as l, c as h, a as c, b as d, d as p } from "./import-file-Ds-E7FRA.js";
2
2
  import { createElementBlock as u, openBlock as m } from "vue";
3
3
  const o = typeof window < "u" ? window.echarts : null, f = {
4
4
  name: "VsFunnelBar",
@@ -1,5 +1,5 @@
1
1
  import { createBlock as b, openBlock as l, unref as L, mergeProps as v, createElementBlock as d, createElementVNode as c, withDirectives as F, toDisplayString as S, vShow as R, Fragment as P, renderList as V, normalizeClass as D, resolveComponent as A, createVNode as H } from "vue";
2
- import { e as x, X as J, _ as w } from "./import-file-BwxPX622.js";
2
+ import { e as x, X as J, _ as w } from "./import-file-Ds-E7FRA.js";
3
3
  /**
4
4
  * @license lucide-vue-next v0.577.0 - ISC
5
5
  *
@@ -346,7 +346,13 @@ const Ee = /* @__PURE__ */ w(oe, [["render", le]]);
346
346
  function B(e, t, r) {
347
347
  if (e !== null)
348
348
  for (var i, o, n, s, _, a, m, k = 0, p = 0, $, M = e.type, E = M === "FeatureCollection", G = M === "Feature", j = E ? e.features.length : 1, h = 0; h < j; h++) {
349
- m = E ? e.features[h].geometry : G ? e.geometry : e, $ = m ? m.type === "GeometryCollection" : !1, _ = $ ? m.geometries.length : 1;
349
+ m = E ? (
350
+ // @ts-expect-error: Known type conflict
351
+ e.features[h].geometry
352
+ ) : G ? (
353
+ // @ts-expect-error: Known type conflict
354
+ e.geometry
355
+ ) : e, $ = m ? m.type === "GeometryCollection" : !1, _ = $ ? m.geometries.length : 1;
350
356
  for (var z = 0; z < _; z++) {
351
357
  var u = 0, f = 0;
352
358
  if (s = $ ? m.geometries[z] : m, s !== null) {
@@ -356,26 +362,32 @@ function B(e, t, r) {
356
362
  case null:
357
363
  break;
358
364
  case "Point":
359
- if (t(
360
- a,
361
- p,
362
- h,
363
- u,
364
- f
365
- ) === !1)
365
+ if (
366
+ // @ts-expect-error: Known type conflict
367
+ t(
368
+ a,
369
+ p,
370
+ h,
371
+ u,
372
+ f
373
+ ) === !1
374
+ )
366
375
  return !1;
367
376
  p++, u++;
368
377
  break;
369
378
  case "LineString":
370
379
  case "MultiPoint":
371
380
  for (i = 0; i < a.length; i++) {
372
- if (t(
373
- a[i],
374
- p,
375
- h,
376
- u,
377
- f
378
- ) === !1)
381
+ if (
382
+ // @ts-expect-error: Known type conflict
383
+ t(
384
+ a[i],
385
+ p,
386
+ h,
387
+ u,
388
+ f
389
+ ) === !1
390
+ )
379
391
  return !1;
380
392
  p++, y === "MultiPoint" && u++;
381
393
  }
@@ -385,13 +397,16 @@ function B(e, t, r) {
385
397
  case "MultiLineString":
386
398
  for (i = 0; i < a.length; i++) {
387
399
  for (o = 0; o < a[i].length - k; o++) {
388
- if (t(
389
- a[i][o],
390
- p,
391
- h,
392
- u,
393
- f
394
- ) === !1)
400
+ if (
401
+ // @ts-expect-error: Known type conflict
402
+ t(
403
+ a[i][o],
404
+ p,
405
+ h,
406
+ u,
407
+ f
408
+ ) === !1
409
+ )
395
410
  return !1;
396
411
  p++;
397
412
  }
@@ -403,13 +418,16 @@ function B(e, t, r) {
403
418
  for (i = 0; i < a.length; i++) {
404
419
  for (f = 0, o = 0; o < a[i].length; o++) {
405
420
  for (n = 0; n < a[i][o].length - k; n++) {
406
- if (t(
407
- a[i][o][n],
408
- p,
409
- h,
410
- u,
411
- f
412
- ) === !1)
421
+ if (
422
+ // @ts-expect-error: Known type conflict
423
+ t(
424
+ a[i][o][n],
425
+ p,
426
+ h,
427
+ u,
428
+ f
429
+ ) === !1
430
+ )
413
431
  return !1;
414
432
  p++;
415
433
  }
@@ -420,7 +438,10 @@ function B(e, t, r) {
420
438
  break;
421
439
  case "GeometryCollection":
422
440
  for (i = 0; i < s.geometries.length; i++)
423
- if (B(s.geometries[i], t) === !1)
441
+ if (
442
+ // @ts-expect-error: Known type conflict
443
+ B(s.geometries[i], t) === !1
444
+ )
424
445
  return !1;
425
446
  break;
426
447
  default:
@@ -1,5 +1,5 @@
1
- import { _ as C, a as E, p as L, V as T, b as B, c as H, d as O, l as F, e as D } from "./vs-list-WrrWQ5KF.js";
2
- import { _ as $, c as P } from "./import-file-BwxPX622.js";
1
+ import { _ as C, a as E, p as L, V as T, b as B, c as H, d as O, l as F, e as D } from "./vs-list-hyfVhVWJ.js";
2
+ import { _ as $, c as P } from "./import-file-Ds-E7FRA.js";
3
3
  import { resolveComponent as x, createElementBlock as m, openBlock as c, Fragment as w, createElementVNode as r, createBlock as V, createCommentVNode as f, createVNode as b, Teleport as N, toDisplayString as y, renderList as S, normalizeStyle as k, normalizeClass as I } from "vue";
4
4
  const W = {
5
5
  components: { legendIcon: E, closeIcon: C },
@@ -1,5 +1,5 @@
1
- import { _ as O, a as A, p as T, c as F, V as P, b as G, d as W, e as Z, l as q } from "./vs-list-WrrWQ5KF.js";
2
- import { e as K, _ as H, V as J, c as Q, g as U, h as X, i as Y } from "./import-file-BwxPX622.js";
1
+ import { _ as O, a as A, p as T, c as F, V as P, b as G, d as W, e as Z, l as q } from "./vs-list-hyfVhVWJ.js";
2
+ import { e as K, _ as H, V as J, c as Q, g as U, h as X, i as Y } from "./import-file-Ds-E7FRA.js";
3
3
  import { createElementBlock as x, createCommentVNode as S, openBlock as p, createElementVNode as l, normalizeClass as C, Fragment as D, renderList as R, toDisplayString as N, normalizeStyle as $, createBlock as z, unref as j, mergeProps as ee, resolveComponent as v, withDirectives as M, resolveDynamicComponent as te, createVNode as w, vShow as I } from "vue";
4
4
  /**
5
5
  * @license lucide-vue-next v0.577.0 - ISC
@@ -1,4 +1,4 @@
1
- import { _ as c, c as o, f as n } from "./import-file-BwxPX622.js";
1
+ import { _ as c, c as o, f as n } from "./import-file-Ds-E7FRA.js";
2
2
  import { createElementBlock as i, openBlock as m, toDisplayString as s } from "vue";
3
3
  const u = {
4
4
  name: "VsNumber",
@@ -1,4 +1,4 @@
1
- import { _ as m, c as f, b as _, d as b } from "./import-file-BwxPX622.js";
1
+ import { _ as m, c as f, b as _, d as b } from "./import-file-Ds-E7FRA.js";
2
2
  import { createElementBlock as a, openBlock as r, createElementVNode as s, Fragment as n, renderList as c, toDisplayString as d } from "vue";
3
3
  const x = {
4
4
  name: "VsTable",
@@ -1,4 +1,4 @@
1
- import { _ as s, c as a, m as d } from "./import-file-BwxPX622.js";
1
+ import { _ as s, c as a, m as d } from "./import-file-Ds-E7FRA.js";
2
2
  import { createElementBlock as n, openBlock as o, createCommentVNode as c } from "vue";
3
3
  const u = {
4
4
  name: "VsText",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/bi",
3
- "version": "1.2.34",
3
+ "version": "1.2.35",
4
4
  "description": "BI data visualization module",
5
5
  "main": "dist/bi.js",
6
6
  "browser": "dist/bi.umd.cjs",
@@ -43,35 +43,35 @@
43
43
  "author": "Softpro",
44
44
  "license": "ISC",
45
45
  "dependencies": {
46
- "@mapbox/sphericalmercator": "^1.2.0",
47
- "@opengis/table": "^0.0.30",
48
- "lucide-vue-next": "^0.577.0"
46
+ "@mapbox/sphericalmercator": "1.2.0",
47
+ "@opengis/table": "0.0.30",
48
+ "lucide-vue-next": "0.577.0"
49
49
  },
50
50
  "peerDependencies": {
51
- "@opengis/fastify-table": "^2.1.3"
51
+ "@opengis/fastify-table": "2.1.3"
52
52
  },
53
53
  "devDependencies": {
54
- "@opengis/core": "^0.0.33",
54
+ "@opengis/core": "0.0.33",
55
55
  "@opengis/form": "0.0.137",
56
- "@turf/turf": "^7.3.4",
57
- "@types/node": "^22.19.17",
58
- "@typescript-eslint/eslint-plugin": "^6.21.0",
59
- "@typescript-eslint/parser": "^6.21.0",
60
- "@vitejs/plugin-vue": "^5.2.4",
61
- "cross-env": "^10.1.0",
62
- "eslint": "^8.57.1",
63
- "eslint-config-airbnb-base": "^15.0.0",
64
- "eslint-config-prettier": "^9.1.2",
65
- "eslint-plugin-vue": "^9.33.0",
66
- "globals": "^15.15.0",
67
- "marked": "^14.1.4",
68
- "prettier": "^3.8.1",
69
- "rollup-plugin-visualizer": "^7.0.1",
56
+ "@turf/turf": "7.3.4",
57
+ "@types/node": "22.19.17",
58
+ "@typescript-eslint/eslint-plugin": "6.21.0",
59
+ "@typescript-eslint/parser": "6.21.0",
60
+ "@vitejs/plugin-vue": "5.2.4",
61
+ "cross-env": "10.1.0",
62
+ "eslint": "8.57.1",
63
+ "eslint-config-airbnb-base": "15.0.0",
64
+ "eslint-config-prettier": "9.1.2",
65
+ "eslint-plugin-vue": "9.33.0",
66
+ "globals": "15.15.0",
67
+ "marked": "14.1.4",
68
+ "prettier": "3.8.1",
69
+ "rollup-plugin-visualizer": "7.0.1",
70
70
  "sass-embedded": "1.89.2",
71
- "typescript": "^5.9.3",
72
- "vite": "^5.4.21",
73
- "vue": "^3.5.32",
74
- "vue-router": "^4.6.4",
75
- "vue-tsc": "^2.2.12"
71
+ "typescript": "5.9.3",
72
+ "vite": "5.4.21",
73
+ "vue": "3.5.32",
74
+ "vue-router": "4.6.4",
75
+ "vue-tsc": "2.2.12"
76
76
  }
77
77
  }
package/plugin.js CHANGED
@@ -6,7 +6,7 @@ import { /*config, addTemplateDir,*/ pgClients, execMigrations } from '@opengis/
6
6
 
7
7
  const dirName = path.dirname(fileURLToPath(import.meta.url));
8
8
 
9
- async function plugin(fastify, opt) {
9
+ async function biPlugin(fastify, opt) {
10
10
  fastify.register(import('./server/routes/dashboard/index.mjs'), opt);
11
11
  fastify.register(import('./server/routes/dataset/index.mjs'), opt);
12
12
 
@@ -18,4 +18,4 @@ async function plugin(fastify, opt) {
18
18
  const dir = path.join(dirName, 'server/migrations');
19
19
  execMigrations(dir, pgClients.client).catch(err => console.log(err));
20
20
  }
21
- export default fp(plugin);
21
+ export default fp(biPlugin);
@@ -1,81 +1,81 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import config from '../../config.js';
5
-
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
- const rootDir = path.resolve(__dirname, '../..');
8
- const distIndexPath = path.join(rootDir, 'dist', 'index.html');
9
- const distAssetsDir = path.join(rootDir, 'dist', 'assets');
10
-
11
- const { disableAuth } = config;
12
- const isProduction = process.env.NODE_ENV === 'production';
13
-
14
- async function plugin(fastify) {
15
- // vite server
16
- if (!isProduction) {
17
- const vite = await import('vite');
18
-
19
- const viteServer = await vite.createServer({
20
- server: {
21
- middlewareMode: true,
22
- },
23
- });
24
- // hot reload
25
- viteServer.watcher.on('all', (d, t) => {
26
- if (!t.includes('module') && !t.includes('templates')) return;
27
- // console.log(d, t);
28
- viteServer.ws.send({ type: 'full-reload' });
29
- });
30
-
31
- // this is middleware for vite's dev servert
32
- fastify.addHook('onRequest', async (req, reply) => {
33
- // const { user } = req.session?.passport || {};
34
- const next = () => new Promise((resolve) => {
35
- viteServer.middlewares(req.raw, reply.raw, () => resolve());
36
- });
37
- await next();
38
- });
39
- fastify.get('*', async () => {});
40
- return;
41
- }
42
-
43
- // From Build
44
- fastify.get('*', async (req, reply) => {
45
- // console.log(disableAuth)
46
- if (!req.user && !disableAuth) return reply.redirect('/login');
47
- if (!fs.existsSync(distIndexPath)) {
48
- return reply
49
- .code(503)
50
- .type('text/plain')
51
- .send('index.html not found in dist. Run: npm run build-app');
52
- }
53
- const stream = fs.createReadStream(distIndexPath);
54
- return reply
55
- .headers({ 'Cache-Control': 'public, no-cache' })
56
- .type('text/html')
57
- .send(stream);
58
- });
59
- fastify.get('/assets/:file', async (req, reply) => {
60
- const stream = fs.createReadStream(path.join(distAssetsDir, req.params.file));
61
- const ext = path.extname(req.params.file);
62
- const mime = {
63
- '.js': 'text/javascript',
64
- '.css': 'text/css',
65
- '.woff2': 'application/font-woff',
66
- '.png': 'image/png',
67
- }[ext];
68
- // reply.cacheControl('max-age', '1d');
69
- return mime
70
- ? reply
71
- .headers({
72
- 'Cache-Control': 'public, max-age=3600',
73
- 'Content-Encoding': 'identity',
74
- })
75
- .type(mime)
76
- .send(stream)
77
- : stream;
78
- });
79
- }
80
-
81
- export default plugin;
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import config from '../../config.js';
5
+
6
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
+ const rootDir = path.resolve(__dirname, '../..');
8
+ const distIndexPath = path.join(rootDir, 'dist', 'index.html');
9
+ const distAssetsDir = path.join(rootDir, 'dist', 'assets');
10
+
11
+ const { disableAuth } = config;
12
+ const isProduction = process.env.NODE_ENV === 'production';
13
+
14
+ async function plugin(fastify) {
15
+ // vite server
16
+ if (!isProduction) {
17
+ const vite = await import('vite');
18
+
19
+ const viteServer = await vite.createServer({
20
+ server: {
21
+ middlewareMode: true,
22
+ },
23
+ });
24
+ // hot reload
25
+ viteServer.watcher.on('all', (d, t) => {
26
+ if (!t.includes('module') && !t.includes('templates')) return;
27
+ // console.log(d, t);
28
+ viteServer.ws.send({ type: 'full-reload' });
29
+ });
30
+
31
+ // this is middleware for vite's dev servert
32
+ fastify.addHook('onRequest', async (req, reply) => {
33
+ // const { user } = req.session?.passport || {};
34
+ const next = () => new Promise((resolve) => {
35
+ viteServer.middlewares(req.raw, reply.raw, () => resolve());
36
+ });
37
+ await next();
38
+ });
39
+ fastify.get('*', async () => {});
40
+ return;
41
+ }
42
+
43
+ // From Build
44
+ fastify.get('*', async (req, reply) => {
45
+ // console.log(disableAuth)
46
+ if (!req.user && !disableAuth) return reply.redirect('/login');
47
+ if (!fs.existsSync(distIndexPath)) {
48
+ return reply
49
+ .code(503)
50
+ .type('text/plain')
51
+ .send('index.html not found in dist. Run: npm run build-app');
52
+ }
53
+ const stream = fs.createReadStream(distIndexPath);
54
+ return reply
55
+ .headers({ 'Cache-Control': 'public, no-cache' })
56
+ .type('text/html')
57
+ .send(stream);
58
+ });
59
+ fastify.get('/assets/:file', async (req, reply) => {
60
+ const stream = fs.createReadStream(path.join(distAssetsDir, req.params.file));
61
+ const ext = path.extname(req.params.file);
62
+ const mime = {
63
+ '.js': 'text/javascript',
64
+ '.css': 'text/css',
65
+ '.woff2': 'application/font-woff',
66
+ '.png': 'image/png',
67
+ }[ext];
68
+ // reply.cacheControl('max-age', '1d');
69
+ return mime
70
+ ? reply
71
+ .headers({
72
+ 'Cache-Control': 'public, max-age=3600',
73
+ 'Content-Encoding': 'identity',
74
+ })
75
+ .type(mime)
76
+ .send(stream)
77
+ : stream;
78
+ });
79
+ }
80
+
81
+ export default plugin;