@bimdata/viewer 2.11.0 → 2.11.1-beta.1
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @copyright 2014-2015 J\xE9r\xE9my Heleine
|
|
4
4
|
* @copyright 2015-2025 Damien "Mistic" Sorel
|
|
5
5
|
* @licence MIT (https://opensource.org/licenses/MIT)
|
|
6
|
-
*/.psv-container{--psv-core-loaded: true;container-name:psv-container;container-type:size;width:100%;height:100%;margin:0;padding:0;position:relative;background:radial-gradient(#fff,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf);overflow:hidden}.psv-container *{box-sizing:content-box}.psv-canvas-container{position:absolute;top:0;left:0;z-index:0;transition:opacity linear .1s}.psv-fullscreen-emulation{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important}.psv-loader-container{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80}.psv-loader{--psv-loader-border: 3px;--psv-loader-tickness: 10px;position:relative;display:flex;justify-content:center;align-items:center;color:#ffffffb3;width:150px;height:150px}.psv-loader-canvas{position:absolute;top:0;left:0;width:100%;height:100%;color:#3d3d3d80;z-index:-1}.psv-loader-text{font:600 16px sans-serif;text-align:center}.psv-loader--undefined .psv-loader-canvas{animation:psv-loader 2s cubic-bezier(.75,.25,.25,.75) infinite}@keyframes psv-loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.psv-navbar{display:flex;position:absolute;z-index:90;bottom:-40px;left:0;width:100%;height:40px;background:#3d3d3d80;transition:bottom ease-in-out .1s;font:16px sans-serif;cursor:default}.psv-navbar--open{bottom:0}.psv-navbar,.psv-navbar *{box-sizing:content-box}.psv-button{flex:0 0 auto;padding:10px;position:relative;cursor:pointer;height:20px;width:20px;background:transparent;color:#ffffffb3}.psv-button--active{background:#fff3}.psv-button--disabled{pointer-events:none;opacity:.5}.psv-button-svg{width:100%;transform:scale(1);transition:transform .2s ease;vertical-align:initial}.psv-button:not(.psv-button--disabled):focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-container:not(.psv--is-touch) .psv-button--hover-scale:not(.psv-button--disabled):hover .psv-button-svg{transform:scale(1.2)}.psv-move-button+.psv-move-button{margin-left:-10px}.psv-download-button{color:#ffffffb3!important;text-decoration:none!important}.psv-download-button:before,.psv-download-button:after{display:none!important}.psv-custom-button{width:auto;min-width:20px}.psv-custom-button--no-padding{padding:0;height:100%}.psv-caption{flex:1 1 100%;color:#ffffffb3;overflow:hidden;text-align:center;cursor:unset;padding:unset;height:unset;width:unset}.psv-caption-content{display:inline-block;padding:10px;white-space:nowrap}.psv-zoom-range.psv-button{width:80px;height:1px;margin:10px 0;padding:9.5px 0;max-width:600px}.psv-zoom-range-line{position:relative;width:80px;height:1px;background:#ffffffb3;transition:all .3s ease}.psv-zoom-range-handle{position:absolute;border-radius:50%;top:-3px;width:7px;height:7px;background:#ffffffb3;transform:scale(1);transition:transform .3s ease}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-line{box-shadow:0 0 2px #ffffffb3}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-handle{transform:scale(1.3)}.psv-notification{position:absolute;z-index:100;bottom:-40px;display:flex;justify-content:center;box-sizing:border-box;width:100%;padding:0 2em;opacity:0;transition-property:opacity,bottom;transition-timing-function:ease-in-out;transition-duration:.2s}.psv-notification-content{max-width:50em;background:#3d3d3dcc;border-radius:4px;padding:.5em 1em;font:14px sans-serif;color:#fff}.psv-notification--visible{opacity:100;bottom:80px}.psv-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;z-index:110;top:0;right:0;bottom:0;left:0;background:radial-gradient(#fff,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf);opacity:.8;cursor:default}.psv-overlay-image{width:100%;text-align:center;color:#303030}.psv-overlay-image svg{width:50%}@container psv-container (orientation: landscape){.psv-overlay-image svg{width:33%}}.psv-overlay-title{color:#000;margin-top:1em;font:30px sans-serif;text-align:center}.psv-overlay-text{color:#000c;font:20px sans-serif;opacity:.8;text-align:center}.psv-panel{position:absolute;z-index:90;right:0;height:100%;width:400px;max-width:calc(100% - 9px);background:#0a0a0ab3;transform:translate3d(100%,0,0);opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default;margin-left:9px}.psv--has-navbar .psv-panel{height:calc(100% - 40px)}.psv-panel-close-button{display:none;position:absolute;top:-1px;right:0;width:19.2px;height:19.2px;padding:6.4px;background:transparent;color:#fff;transition:background .3s ease-in-out;cursor:pointer}.psv-panel-close-button svg{transition:transform .3s ease-in-out}.psv-panel-close-button:hover{background:#000000e6}.psv-panel-close-button:hover svg{transform:scale(-1)}.psv-panel-resizer{display:none;position:absolute;top:0;left:-9px;width:9px;height:100%;background-color:#000000e6;cursor:col-resize}.psv-panel-resizer:before{content:"";position:absolute;top:50%;left:5.5px;margin-top:-14.5px;width:1px;height:1px;box-shadow:1px 0 #fff,3px 0 #fff,5px 0 #fff,1px 2px #fff,3px 2px #fff,5px 2px #fff,1px 4px #fff,3px 4px #fff,5px 4px #fff,1px 6px #fff,3px 6px #fff,5px 6px #fff,1px 8px #fff,3px 8px #fff,5px 8px #fff,1px 10px #fff,3px 10px #fff,5px 10px #fff,1px 12px #fff,3px 12px #fff,5px 12px #fff,1px 14px #fff,3px 14px #fff,5px 14px #fff,1px 16px #fff,3px 16px #fff,5px 16px #fff,1px 18px #fff,3px 18px #fff,5px 18px #fff,1px 20px #fff,3px 20px #fff,5px 20px #fff,1px 22px #fff,3px 22px #fff,5px 22px #fff,1px 24px #fff,3px 24px #fff,5px 24px #fff,1px 26px #fff,3px 26px #fff,5px 26px #fff,1px 28px #fff,3px 28px #fff,5px 28px #fff;background:transparent}.psv-panel-content{width:100%;height:100%;box-sizing:border-box;color:#dcdcdc;font:16px sans-serif;overflow:auto}.psv-panel-content:not(.psv-panel-content--no-margin){padding:1em}.psv-panel-content--no-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.psv-panel--open{transform:translateZ(0);opacity:1;transition-duration:.2s}.psv-panel--open .psv-panel-close-button,.psv-panel--open .psv-panel-resizer{display:block}@container psv-container (max-width: 400px){.psv-panel{width:100%!important;max-width:none}.psv-panel-resizer{display:none!important}}.psv-panel-menu{height:100%;display:flex;flex-direction:column}.psv-panel-menu-title{flex:none;display:flex;align-items:center;font:24px sans-serif;margin:24px 12px}.psv-panel-menu-title svg{width:24px;height:24px;margin-right:12px}.psv-panel-menu-list{flex:1;list-style:none;margin:0;padding:0;overflow-x:hidden}.psv-panel-menu-item{min-height:1.5em;padding:.5em 1em;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;transition:background .1s ease-in-out}.psv-panel-menu-item--active{outline:1px solid currentcolor;outline-offset:-1px}.psv-panel-menu-item-icon{flex:none;height:1.5em;width:1.5em;margin-right:.5em}.psv-panel-menu-item-icon img{max-width:100%;max-height:100%}.psv-panel-menu-item-icon svg{width:100%;height:100%}.psv-panel-menu-item:focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-panel-menu--stripped .psv-panel-menu-item:hover{background:#fff3}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd):before{background:#ffffff1a}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n):before{background:transparent}.psv-container:not(.psv--is-touch) .psv-panel-menu-item:hover{background:#fff3}.psv-tooltip{position:absolute;z-index:50;box-sizing:border-box;max-width:200px;background:#3d3d3dcc;border-radius:4px;opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default}.psv-tooltip-content{color:#fff;font:14px sans-serif;text-shadow:0 1px #000;padding:.5em 1em}.psv-tooltip-arrow{position:absolute;height:0;width:0;border:7px solid transparent}.psv-tooltip--top-left,.psv-tooltip--top-center,.psv-tooltip--top-right{transform:translate3d(0,5px,0)}.psv-tooltip--top-left .psv-tooltip-arrow,.psv-tooltip--top-center .psv-tooltip-arrow,.psv-tooltip--top-right .psv-tooltip-arrow{border-top-color:#3d3d3dcc}.psv-tooltip--bottom-left,.psv-tooltip--bottom-center,.psv-tooltip--bottom-right{transform:translate3d(0,-5px,0)}.psv-tooltip--bottom-left .psv-tooltip-arrow,.psv-tooltip--bottom-center .psv-tooltip-arrow,.psv-tooltip--bottom-right .psv-tooltip-arrow{border-bottom-color:#3d3d3dcc}.psv-tooltip--left-top,.psv-tooltip--center-left,.psv-tooltip--left-bottom{transform:translate3d(5px,0,0)}.psv-tooltip--left-top .psv-tooltip-arrow,.psv-tooltip--center-left .psv-tooltip-arrow,.psv-tooltip--left-bottom .psv-tooltip-arrow{border-left-color:#3d3d3dcc}.psv-tooltip--right-top,.psv-tooltip--center-right,.psv-tooltip--right-bottom{transform:translate3d(-5px,0,0)}.psv-tooltip--right-top .psv-tooltip-arrow,.psv-tooltip--center-right .psv-tooltip-arrow,.psv-tooltip--right-bottom .psv-tooltip-arrow{border-right-color:#3d3d3dcc}.psv-tooltip--left-top,.psv-tooltip--top-left{box-shadow:-3px -3px #5a5a5ab3}.psv-tooltip--top-center{box-shadow:0 -3px #5a5a5ab3}.psv-tooltip--right-top,.psv-tooltip--top-right{box-shadow:3px -3px #5a5a5ab3}.psv-tooltip--left-bottom,.psv-tooltip--bottom-left{box-shadow:-3px 3px #5a5a5ab3}.psv-tooltip--bottom-center{box-shadow:0 3px #5a5a5ab3}.psv-tooltip--right-bottom,.psv-tooltip--bottom-right{box-shadow:3px 3px #5a5a5ab3}.psv-tooltip--center-left{box-shadow:-3px 0 #5a5a5ab3}.psv-tooltip--center-right{box-shadow:3px 0 #5a5a5ab3}.psv-tooltip--visible{transform:translateZ(0);opacity:1}.bimdata-viewer-photosphere[data-v-6d247701]{width:100%;height:100%;position:relative;overflow:hidden}.bimdata-viewer-photosphere__viewer__canvas[data-v-6d247701]{position:absolute;width:100%;height:100%}.psv-loader-container,.psv-overlay{z-index:1}.success-modal[data-v-79d3a107]{margin:var(--spacing-unit);align-items:center;display:flex;flex-direction:column;justify-content:space-between;min-width:500px;position:relative}.success-modal__close[data-v-79d3a107]{position:absolute;right:0;top:0}.success-modal__close .bimdata-pie-spinner[data-v-79d3a107]{height:23px;width:23px}.success-modal__title[data-v-79d3a107]{margin:calc(var(--spacing-unit) * 3) 0 calc(var(--spacing-unit) * 2);display:inline-flex;align-items:center}.success-modal__title h2[data-v-79d3a107]{margin:0;font-size:20px}.success-modal__title--icon[data-v-79d3a107]{margin-left:calc(var(--spacing-unit) / 2)}.success-modal__text[data-v-79d3a107]{margin:0;width:300px;text-align:center;line-height:1.5;color:var(--color-granite-light);font-size:12px}.success-modal__button[data-v-79d3a107]{margin:calc(var(--spacing-unit) * 2) 0}.bimdata-modal-manager[data-v-2c579fcd]{z-index:3;position:absolute;left:0;right:0}.bimdata-modal-manager.full[data-v-2c579fcd]{height:100%;display:flex;align-items:center;justify-content:center}.bimdata-modal-manager.full .bimdata-modal-manager__content[data-v-2c579fcd]{max-height:100%;margin:1rem 0;display:block;position:absolute;background-color:var(--color-white);overflow:auto}.bimdata-modal-manager.full[data-v-2c579fcd]:before{content:"";position:absolute;width:100%;height:100%;left:0;top:0;background-color:var(--color-primary);opacity:.8}.bimdata-modal-manager.banner[data-v-2c579fcd]{position:absolute;bottom:0;display:flex;justify-content:center}.bimdata-modal-manager.banner .bimdata-modal-manager__content[data-v-2c579fcd]{width:550px;margin-bottom:50px}.side-panel[data-v-ced3f116]{width:var(--side-panel-width);height:100%;flex-shrink:0;background-color:var(--color-white)}.plugins-as-button .tools-menu__info[data-v-72f2ce01]{position:absolute;top:3px;left:3px;font-size:11px;font-weight:700}.plugins-as-button .tools-menu__info~svg[data-v-72f2ce01]{margin-top:6px}.plugins-as-button .open .bimdata-btn[data-v-72f2ce01]{background-color:var(--color-secondary)}.plugins-as-button__submenu[data-v-72f2ce01]{position:absolute;top:0;box-shadow:var(--box-shadow);background-color:var(--color-white)}.plugins-as-button__submenu--right[data-v-72f2ce01]{left:calc(100% + (var(--spacing-unit)) / 2);right:auto}.plugins-as-button__submenu--right__simple[data-v-72f2ce01]{padding:var(--spacing-unit);width:229px;display:flex;flex-direction:column;justify-content:center;left:calc(100% + var(--spacing-unit));top:0}.plugins-as-button__submenu--right__panel[data-v-72f2ce01]{width:400px;height:calc(var(--bimdata-local-context-height) - 24px);left:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--right__free[data-v-72f2ce01]{left:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--left[data-v-72f2ce01]{right:calc(100% + (var(--spacing-unit)) / 2);left:auto}.plugins-as-button__submenu--left__simple[data-v-72f2ce01]{padding:var(--spacing-unit);width:187px;display:flex;flex-direction:column;justify-content:center;right:calc(100% + var(--spacing-unit));top:0}.plugins-as-button__submenu--left__panel[data-v-72f2ce01]{width:400px;height:calc(var(--bimdata-local-context-height) - 24px);right:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--left__free[data-v-72f2ce01]{right:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__panel__header[data-v-72f2ce01]{padding:0 var(--spacing-unit);height:42px;background-color:var(--color-silver-light);display:flex;justify-content:space-between;align-items:center}.plugins-as-button__panel__content[data-v-72f2ce01],.plugins-as-button .panel__content[data-v-72f2ce01]{height:calc(100% - 42px)}.plugins-as-button .panel__content .plugin-component-instance-container[data-v-72f2ce01]{height:100%}.side-column[data-v-f11ec0c8]{position:absolute;top:var(--spacing-unit);display:flex;flex-direction:column}.side-column--left[data-v-f11ec0c8],.side-column--right[data-v-f11ec0c8]{z-index:1}.side-column--left[data-v-f11ec0c8]{left:var(--spacing-unit)}.side-column--right[data-v-f11ec0c8]{right:var(--spacing-unit)}.layout-settings[data-v-d37dfd4d]{transition:background-color 1s;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.layout-settings[data-v-d37dfd4d]:before{content:"";position:absolute;width:100%;height:100%;left:0;top:0;background-color:var(--color-primary);opacity:.8;z-index:-1}.layout-settings__header[data-v-d37dfd4d]{color:var(--color-white);font-size:small;margin-bottom:12px}.layout-settings__split[data-v-d37dfd4d]{display:flex;justify-content:space-between}.layout-settings__split .bimdata-btn[data-v-d37dfd4d]{margin:15px;padding:20px 40px}.layout-settings__split__text[data-v-d37dfd4d]{margin-left:8px}.layout-settings__buttons[data-v-d37dfd4d]{position:absolute;top:0;right:0;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:15px;padding:0}.layout-settings__buttons[data-v-d37dfd4d]>*{margin-bottom:15px}.layout-settings__buttons .bimdata-btn__fill[data-v-d37dfd4d]:disabled{color:var(--color-primary)}.layout-settings--swap[data-v-d37dfd4d]{cursor:grab;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.layout-settings--swap[data-v-d37dfd4d]:before{background-color:var(--color-primary);opacity:.3;z-index:-1}.layout-settings--dragging[data-v-d37dfd4d]{cursor:grabbing}.layout-settings--dragover[data-v-d37dfd4d]:before{background-color:var(--color-primary-light)}.window-container[data-v-8a549a80]{height:100%;position:relative;overflow:hidden;background-color:var(--bimdata-viewer-background-color, #f5f5f5);container-type:inline-size}.window-container__content[data-v-8a549a80]{display:flex;height:100%}.window-container__content__center[data-v-8a549a80]{position:relative;flex-grow:1;overflow:hidden}.window-container__content__center__viewer[data-v-8a549a80]{position:absolute;width:100%;height:100%}.window-container__layout-settings[data-v-8a549a80]{position:absolute;top:0;left:0;width:100%;height:100%}.context-menu[data-v-5b87d4a3]{padding:9px 0;position:absolute;background-color:var(--color-white);box-shadow:var(--box-shadow);border-radius:3px;list-style:none;z-index:3}.context-menu__element[data-v-5b87d4a3]{height:calc(var(--spacing-unit) * 3);padding:0 var(--spacing-unit);cursor:pointer;display:flex;align-items:center;justify-content:space-between;position:relative}.context-menu__element[data-v-5b87d4a3]:hover{background-color:var(--color-silver-light)}.context-menu__element .separator[data-v-5b87d4a3]{position:absolute;top:0;left:0;background-color:var(--color-silver);height:1px;width:100%}.context-menu__element .menu-text[data-v-5b87d4a3]{color:var(--color-primary);font-size:12px}.context-menu__element .menu-picto[data-v-5b87d4a3]{font-size:10px}.context-menu__spinner[data-v-5b87d4a3]{display:flex;justify-content:center;align-items:center;height:calc(var(--spacing-unit) * 3);padding:0 var(--spacing-unit)}.viewer-header[data-v-5c9ea6b6]{padding:0 10px;height:var(--bimdata-viewer-header-height, 40px);border-bottom:solid 2px var(--color-silver);background-color:var(--color-silver-light);display:flex;align-items:center;justify-content:space-between}.viewer-header__content[data-v-5c9ea6b6]{flex-grow:1;display:flex;align-items:center;justify-content:space-between}.viewer-header__content__left[data-v-5c9ea6b6]{display:flex;align-items:center;gap:calc(var(--spacing-unit) / 2)}.viewer-header__content__right[data-v-5c9ea6b6]{display:flex;align-items:center;justify-content:space-between}.viewer-header__version[data-v-5c9ea6b6]{font-size:small}.bimdata-separator[data-v-79a3b3af]{position:relative;cursor:ew-resize;flex-shrink:0}.bimdata-separator__line[data-v-79a3b3af]{background-color:#d8d8d8;height:100%;width:2px}.bimdata-separator__resizer[data-v-79a3b3af]{position:absolute;top:0;bottom:0;right:-9px;width:20px;z-index:2}.bimdata-global-side-panel[data-v-82d0d4cb]{display:flex;justify-content:space-around;height:100%;z-index:1;box-shadow:var(--box-shadow)}.bimdata-global-side-panel__component[data-v-82d0d4cb]{flex-grow:1;overflow:hidden;height:100%}.bimdata-viewer[data-v-0c1c941a]{height:100%;font-size:14px;position:relative;background-color:var(--bimdata-viewer-background-color, #f5f5f5);overflow:hidden}.bimdata-viewer__content[data-v-0c1c941a]{display:flex;justify-content:space-between;position:relative;overflow:hidden}.bimdata-viewer textarea[data-v-0c1c941a]{font-family:roboto,Helvetica,Arial,sans-serif}.bimdata-viewer .viewer__logo[data-v-0c1c941a]{position:absolute;bottom:var(--spacing-unit);left:0;display:flex;flex-direction:column;align-items:center}.bimdata-viewer .viewer__logo svg[data-v-0c1c941a]{width:72px;height:40px}.bimdata-viewer .viewer__logo .version[data-v-0c1c941a]{font-size:70%;min-width:72px;text-align:center}.bimdata-viewer .area[data-v-0c1c941a]{overflow:hidden}.bimdata-viewer{font-family:roboto,Helvetica,Arial,sans-serif;color:var(--color-primary)}.bimdata-viewer *,.bimdata-viewer *:before,.bimdata-viewer *:after{box-sizing:border-box}.bimdata-viewer .bimdata-context-loading-overlay{background-color:#ffffff80;position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.bimdata-info-length[data-v-34c2cf79]{padding:0 calc(var(--spacing-unit) / 2);height:18px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--color-white);border-radius:3px;line-height:1.5;font-size:11px}.bimdata-models[data-v-34c2cf79]{position:relative}.bimdata-models--window-positioning[data-v-34c2cf79]{position:absolute;z-index:1;top:var(--spacing-unit);left:calc(var(--bimdata-local-context-center-width) / 2);transform:translate(-50%)}.bimdata-models__list[data-v-34c2cf79]{width:var(--bimdata-models-width)}.bimdata-models__list[data-v-34c2cf79] li{height:30px;position:relative}.bimdata-models__header[data-v-34c2cf79]{display:flex;align-items:center;width:calc(100% - 33px)}.bimdata-models__header__loader[data-v-34c2cf79]{width:100%;display:flex;justify-content:center;align-items:center}.bimdata-models__header__picto[data-v-34c2cf79]{display:flex}.bimdata-models__header__number[data-v-34c2cf79]{margin-left:var(--spacing-unit)}.bimdata-models__header__number--empty[data-v-34c2cf79]{background-color:var(--color-granite)}.bimdata-models__header__name[data-v-34c2cf79]{margin-left:var(--spacing-unit);width:calc(100% - 61px)}.bimdata-models__header__name span[data-v-34c2cf79]{font-size:12px}.bimdata-models__header__name--empty[data-v-34c2cf79]{color:var(--color-granite)}.bimdata-models__preview[data-v-34c2cf79]{pointer-events:none;z-index:3;position:absolute;height:200px;width:200px;border:7px solid white;overflow:hidden;background-color:var(--color-silver-light)}.bimdata-models__preview img[data-v-34c2cf79]{height:100%}.bimdata-models__model[data-v-34c2cf79]{width:100%;height:100%;display:flex;align-items:center;padding:0 var(--spacing-unit)}.bimdata-models__model__name--disabled[data-v-34c2cf79]{color:var(--color-silver-dark)}.bimdata-models__model__spinner[data-v-34c2cf79]{position:absolute;top:0;right:0;margin:0 var(--spacing-unit);display:flex;align-items:center;height:100%}.bimdata-models[data-v-34c2cf79] .submenu{max-height:350px}.bimdata-models[data-v-34c2cf79] .submenu .bimdata-paginated-list__elements{height:auto;max-height:300px;overflow:auto}.bimdata-models[data-v-34c2cf79] .submenu .submenu--down li{padding:0}.bimdata-info-length[data-v-44e6af66]{padding:0 calc(var(--spacing-unit) / 2);height:18px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--color-white);border-radius:3px;line-height:1.5;font-size:11px}.bimdata-multi-model-loader[data-v-44e6af66]{position:relative;display:flex;align-items:center}.bimdata-multi-model-loader--window-positioning[data-v-44e6af66]{position:absolute;z-index:1;top:var(--spacing-unit);left:calc(var(--bimdata-local-context-center-width) / 2);transform:translate(-50%)}.bimdata-multi-model-loader__header-container[data-v-44e6af66]{display:flex;align-items:center;justify-content:center}.bimdata-multi-model-loader__header[data-v-44e6af66]{display:flex;align-items:center;justify-content:center;width:350px;height:34px;padding:0 var(--spacing-unit);background-color:#fff;box-shadow:var(--box-shadow);border-radius:2px;cursor:pointer}.bimdata-multi-model-loader__header__loader[data-v-44e6af66]{width:100%;display:flex;justify-content:center;align-items:center}.bimdata-multi-model-loader__header__picto[data-v-44e6af66]{display:flex}.bimdata-multi-model-loader__header__number[data-v-44e6af66]{margin-left:var(--spacing-unit)}.bimdata-multi-model-loader__header__number--empty[data-v-44e6af66]{background-color:var(--color-granite)}.bimdata-multi-model-loader__header__name[data-v-44e6af66]{margin-left:var(--spacing-unit);width:calc(100% - 61px);font-size:12px}.bimdata-multi-model-loader__header__name--empty[data-v-44e6af66]{color:var(--color-granite)}.bimdata-multi-model-loader__main[data-v-44e6af66]{width:480px;background-color:#fff;box-shadow:var(--box-shadow);padding:calc(var(--spacing-unit) * 2) 0;display:flex;flex-direction:column}.bimdata-multi-model-loader__main__model[data-v-44e6af66]{width:100%;height:30px;display:flex;align-items:center;gap:8px;padding:0 calc(var(--spacing-unit) * 2);cursor:pointer}.bimdata-multi-model-loader__main__model[data-v-44e6af66]:hover{background-color:var(--color-silver-light)}.bimdata-multi-model-loader__main__model--disabled[data-v-44e6af66]{cursor:default}.bimdata-multi-model-loader__main__model__name--disabled[data-v-44e6af66]{color:var(--color-silver-dark)}.bimdata-multi-model-loader__main__model__spinner[data-v-44e6af66]{width:16px;margin:auto;display:flex;align-items:center;height:100%}.bimdata-multi-model-loader__main__validate[data-v-44e6af66]{margin-top:var(--spacing-unit);margin-right:calc(var(--spacing-unit) * 2);align-self:end}.bimdata-multi-model-loader__preview[data-v-44e6af66]{pointer-events:none;z-index:3;position:absolute;height:200px;width:200px;border:7px solid white;overflow:hidden;background-color:var(--color-silver-light)}.bimdata-multi-model-loader__preview img[data-v-44e6af66]{height:100%}.bimdata__no-model[data-v-5ffd9bc0]{position:absolute;top:0;left:0;right:0;bottom:0;opacity:var(--no-model--opacity);transition:opacity 1s ease-in;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--color-silver-dark);font-size:medium}.bimdata__no-model svg[data-v-5ffd9bc0]{height:200px;width:200px}`)),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();function Tfe(t,e){for(var i=0;i<e.length;i++){const r=e[i];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in t)){const n=Object.getOwnPropertyDescriptor(r,o);n&&Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const _4=t=>`Context Menu --- Cannot "${t}" because the context menu is disabled. Consider enabling it in the makeBIMDataViewer configuration object if you want to use it.`,Lfe={preventDefault(){console.warn(_4("preventDefault"))},registerContextCommand(){console.warn(_4("registerContextCommand"))},registerCommand(){console.warn(_4("registerCommand"))},open(){console.warn(_4("open"))}},Ko=t=>e=>e[t],Mi=t=>e=>e[t],xu=t=>e=>!e[t],Os=(t,e)=>i=>t(i)&&e(i),Yh=Ko("id");function Dfe({state:t,getObjects:e=()=>[]}){return[{name:"selectAll",key:"C",execute:()=>t.selectObjects(e().filter(Os(Mi("visible"),xu("selected"))).map(Yh))},{name:"deselectAll",key:"V",execute:()=>t.deselectObjects(e().filter(Mi("selected")).map(Yh))},{name:"selectSimilar",key:"Y",execute:()=>{const i=e(),r=i.filter(Os(Mi("visible"),Mi("selected")));if(r.length===1&&r[0].type!==void 0){const o=r[0],n=i.filter(a=>a.visible&&a.type===o.type&&a.id!==o.id).map(Yh);t.selectObjects(n)}}},{name:"hide",key:"H",execute:()=>{const i=e().filter(Os(Mi("selected"),Mi("visible"))),r=i.filter(Mi("selected"));r.length>0&&t.deselectObjects(r.map(Yh)),t.hideObjects(i.map(Yh))}},{name:"showAll",key:"R",execute:()=>{const i=e().filter(xu("visible")).map(Yh);i.length>0&&t.showObjects(i)}}]}const Rfe=t=>{const e=[];let i=!1,r=null;function o(u){if(i&&u.target.tagName!=="INPUT"&&u.target.tagName!=="TEXTAREA"){const h=n(u);h&&(u.preventDefault(),u.stopPropagation(),h.execute())}}function n(u){const h=e.filter(f=>C_(f,u));return h.length?h.find(f=>f.context===r)||h.find(f=>f.context==null):null}document.addEventListener("keydown",o);function a(){document.removeEventListener("keydown",o)}function s(u={},h){const{name:f,key:A,execute:p,ctrlKey:g=!1,shiftKey:m=!1,altKey:b=!1}=u;if(!f)return console.error("Cannot register shortcut without a name."),!1;if(!p||typeof p!="function")return console.error("Cannot register shortcut without an execute function."),!1;if(A==null)return console.error("Cannot register shortcut without a key."),!1;const y=e.find(x=>C_(x,u)&&x.context==h);if(y)return console.error(`A shortcut on the key "${u.key}" is already registered on this context with the name "${y.name}".`),!1;const v=e.find(x=>x.name===u.name&&x.context===h);return v?(console.error(`A shortcut with the name "${u.name}" is already registered on this context on the key "${v.key}".`),!1):(e.push({name:f,key:A,context:h,execute:p,ctrlKey:g,shiftKey:m,altKey:b}),!0)}function l(u,h){const f=e.find(A=>A.name===u&&A.context===h);return f?(e.splice(e.indexOf(f),1),!0):!1}function c(u,h){return e.find(f=>f.name===u&&f.context==h)}function d(u){return e.filter(h=>h.context==u)}return{shortcuts:e,getShortcut:c,getShortcuts:d,registerShortcut:s,unregisterShortcut:l,destroy:a,getDefaultShortcuts(u,h=t){return Dfe({state:h,getObjects:u})},get active(){return i},set active(u){i=u},get activeLocalContext(){return r},set activeLocalContext(u){r=u}}};function C_(t,e){const{key:i,ctrlKey:r=!1,shiftKey:o=!1,metaKey:n=!1,altKey:a=!1}=e;return t.key.toUpperCase()===i.toUpperCase()&&t.ctrlKey===(r||n)&&t.shiftKey===o&&t.altKey===a}/*!
|
|
6
|
+
*/.psv-container{--psv-core-loaded: true;container-name:psv-container;container-type:size;width:100%;height:100%;margin:0;padding:0;position:relative;background:radial-gradient(#fff,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf);overflow:hidden}.psv-container *{box-sizing:content-box}.psv-canvas-container{position:absolute;top:0;left:0;z-index:0;transition:opacity linear .1s}.psv-fullscreen-emulation{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important}.psv-loader-container{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80}.psv-loader{--psv-loader-border: 3px;--psv-loader-tickness: 10px;position:relative;display:flex;justify-content:center;align-items:center;color:#ffffffb3;width:150px;height:150px}.psv-loader-canvas{position:absolute;top:0;left:0;width:100%;height:100%;color:#3d3d3d80;z-index:-1}.psv-loader-text{font:600 16px sans-serif;text-align:center}.psv-loader--undefined .psv-loader-canvas{animation:psv-loader 2s cubic-bezier(.75,.25,.25,.75) infinite}@keyframes psv-loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.psv-navbar{display:flex;position:absolute;z-index:90;bottom:-40px;left:0;width:100%;height:40px;background:#3d3d3d80;transition:bottom ease-in-out .1s;font:16px sans-serif;cursor:default}.psv-navbar--open{bottom:0}.psv-navbar,.psv-navbar *{box-sizing:content-box}.psv-button{flex:0 0 auto;padding:10px;position:relative;cursor:pointer;height:20px;width:20px;background:transparent;color:#ffffffb3}.psv-button--active{background:#fff3}.psv-button--disabled{pointer-events:none;opacity:.5}.psv-button-svg{width:100%;transform:scale(1);transition:transform .2s ease;vertical-align:initial}.psv-button:not(.psv-button--disabled):focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-container:not(.psv--is-touch) .psv-button--hover-scale:not(.psv-button--disabled):hover .psv-button-svg{transform:scale(1.2)}.psv-move-button+.psv-move-button{margin-left:-10px}.psv-download-button{color:#ffffffb3!important;text-decoration:none!important}.psv-download-button:before,.psv-download-button:after{display:none!important}.psv-custom-button{width:auto;min-width:20px}.psv-custom-button--no-padding{padding:0;height:100%}.psv-caption{flex:1 1 100%;color:#ffffffb3;overflow:hidden;text-align:center;cursor:unset;padding:unset;height:unset;width:unset}.psv-caption-content{display:inline-block;padding:10px;white-space:nowrap}.psv-zoom-range.psv-button{width:80px;height:1px;margin:10px 0;padding:9.5px 0;max-width:600px}.psv-zoom-range-line{position:relative;width:80px;height:1px;background:#ffffffb3;transition:all .3s ease}.psv-zoom-range-handle{position:absolute;border-radius:50%;top:-3px;width:7px;height:7px;background:#ffffffb3;transform:scale(1);transition:transform .3s ease}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-line{box-shadow:0 0 2px #ffffffb3}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-handle{transform:scale(1.3)}.psv-notification{position:absolute;z-index:100;bottom:-40px;display:flex;justify-content:center;box-sizing:border-box;width:100%;padding:0 2em;opacity:0;transition-property:opacity,bottom;transition-timing-function:ease-in-out;transition-duration:.2s}.psv-notification-content{max-width:50em;background:#3d3d3dcc;border-radius:4px;padding:.5em 1em;font:14px sans-serif;color:#fff}.psv-notification--visible{opacity:100;bottom:80px}.psv-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;z-index:110;top:0;right:0;bottom:0;left:0;background:radial-gradient(#fff,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf);opacity:.8;cursor:default}.psv-overlay-image{width:100%;text-align:center;color:#303030}.psv-overlay-image svg{width:50%}@container psv-container (orientation: landscape){.psv-overlay-image svg{width:33%}}.psv-overlay-title{color:#000;margin-top:1em;font:30px sans-serif;text-align:center}.psv-overlay-text{color:#000c;font:20px sans-serif;opacity:.8;text-align:center}.psv-panel{position:absolute;z-index:90;right:0;height:100%;width:400px;max-width:calc(100% - 9px);background:#0a0a0ab3;transform:translate3d(100%,0,0);opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default;margin-left:9px}.psv--has-navbar .psv-panel{height:calc(100% - 40px)}.psv-panel-close-button{display:none;position:absolute;top:-1px;right:0;width:19.2px;height:19.2px;padding:6.4px;background:transparent;color:#fff;transition:background .3s ease-in-out;cursor:pointer}.psv-panel-close-button svg{transition:transform .3s ease-in-out}.psv-panel-close-button:hover{background:#000000e6}.psv-panel-close-button:hover svg{transform:scale(-1)}.psv-panel-resizer{display:none;position:absolute;top:0;left:-9px;width:9px;height:100%;background-color:#000000e6;cursor:col-resize}.psv-panel-resizer:before{content:"";position:absolute;top:50%;left:5.5px;margin-top:-14.5px;width:1px;height:1px;box-shadow:1px 0 #fff,3px 0 #fff,5px 0 #fff,1px 2px #fff,3px 2px #fff,5px 2px #fff,1px 4px #fff,3px 4px #fff,5px 4px #fff,1px 6px #fff,3px 6px #fff,5px 6px #fff,1px 8px #fff,3px 8px #fff,5px 8px #fff,1px 10px #fff,3px 10px #fff,5px 10px #fff,1px 12px #fff,3px 12px #fff,5px 12px #fff,1px 14px #fff,3px 14px #fff,5px 14px #fff,1px 16px #fff,3px 16px #fff,5px 16px #fff,1px 18px #fff,3px 18px #fff,5px 18px #fff,1px 20px #fff,3px 20px #fff,5px 20px #fff,1px 22px #fff,3px 22px #fff,5px 22px #fff,1px 24px #fff,3px 24px #fff,5px 24px #fff,1px 26px #fff,3px 26px #fff,5px 26px #fff,1px 28px #fff,3px 28px #fff,5px 28px #fff;background:transparent}.psv-panel-content{width:100%;height:100%;box-sizing:border-box;color:#dcdcdc;font:16px sans-serif;overflow:auto}.psv-panel-content:not(.psv-panel-content--no-margin){padding:1em}.psv-panel-content--no-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.psv-panel--open{transform:translateZ(0);opacity:1;transition-duration:.2s}.psv-panel--open .psv-panel-close-button,.psv-panel--open .psv-panel-resizer{display:block}@container psv-container (max-width: 400px){.psv-panel{width:100%!important;max-width:none}.psv-panel-resizer{display:none!important}}.psv-panel-menu{height:100%;display:flex;flex-direction:column}.psv-panel-menu-title{flex:none;display:flex;align-items:center;font:24px sans-serif;margin:24px 12px}.psv-panel-menu-title svg{width:24px;height:24px;margin-right:12px}.psv-panel-menu-list{flex:1;list-style:none;margin:0;padding:0;overflow-x:hidden}.psv-panel-menu-item{min-height:1.5em;padding:.5em 1em;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;transition:background .1s ease-in-out}.psv-panel-menu-item--active{outline:1px solid currentcolor;outline-offset:-1px}.psv-panel-menu-item-icon{flex:none;height:1.5em;width:1.5em;margin-right:.5em}.psv-panel-menu-item-icon img{max-width:100%;max-height:100%}.psv-panel-menu-item-icon svg{width:100%;height:100%}.psv-panel-menu-item:focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-panel-menu--stripped .psv-panel-menu-item:hover{background:#fff3}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd):before{background:#ffffff1a}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n):before{background:transparent}.psv-container:not(.psv--is-touch) .psv-panel-menu-item:hover{background:#fff3}.psv-tooltip{position:absolute;z-index:50;box-sizing:border-box;max-width:200px;background:#3d3d3dcc;border-radius:4px;opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default}.psv-tooltip-content{color:#fff;font:14px sans-serif;text-shadow:0 1px #000;padding:.5em 1em}.psv-tooltip-arrow{position:absolute;height:0;width:0;border:7px solid transparent}.psv-tooltip--top-left,.psv-tooltip--top-center,.psv-tooltip--top-right{transform:translate3d(0,5px,0)}.psv-tooltip--top-left .psv-tooltip-arrow,.psv-tooltip--top-center .psv-tooltip-arrow,.psv-tooltip--top-right .psv-tooltip-arrow{border-top-color:#3d3d3dcc}.psv-tooltip--bottom-left,.psv-tooltip--bottom-center,.psv-tooltip--bottom-right{transform:translate3d(0,-5px,0)}.psv-tooltip--bottom-left .psv-tooltip-arrow,.psv-tooltip--bottom-center .psv-tooltip-arrow,.psv-tooltip--bottom-right .psv-tooltip-arrow{border-bottom-color:#3d3d3dcc}.psv-tooltip--left-top,.psv-tooltip--center-left,.psv-tooltip--left-bottom{transform:translate3d(5px,0,0)}.psv-tooltip--left-top .psv-tooltip-arrow,.psv-tooltip--center-left .psv-tooltip-arrow,.psv-tooltip--left-bottom .psv-tooltip-arrow{border-left-color:#3d3d3dcc}.psv-tooltip--right-top,.psv-tooltip--center-right,.psv-tooltip--right-bottom{transform:translate3d(-5px,0,0)}.psv-tooltip--right-top .psv-tooltip-arrow,.psv-tooltip--center-right .psv-tooltip-arrow,.psv-tooltip--right-bottom .psv-tooltip-arrow{border-right-color:#3d3d3dcc}.psv-tooltip--left-top,.psv-tooltip--top-left{box-shadow:-3px -3px #5a5a5ab3}.psv-tooltip--top-center{box-shadow:0 -3px #5a5a5ab3}.psv-tooltip--right-top,.psv-tooltip--top-right{box-shadow:3px -3px #5a5a5ab3}.psv-tooltip--left-bottom,.psv-tooltip--bottom-left{box-shadow:-3px 3px #5a5a5ab3}.psv-tooltip--bottom-center{box-shadow:0 3px #5a5a5ab3}.psv-tooltip--right-bottom,.psv-tooltip--bottom-right{box-shadow:3px 3px #5a5a5ab3}.psv-tooltip--center-left{box-shadow:-3px 0 #5a5a5ab3}.psv-tooltip--center-right{box-shadow:3px 0 #5a5a5ab3}.psv-tooltip--visible{transform:translateZ(0);opacity:1}.bimdata-viewer-photosphere[data-v-6d247701]{width:100%;height:100%;position:relative;overflow:hidden}.bimdata-viewer-photosphere__viewer__canvas[data-v-6d247701]{position:absolute;width:100%;height:100%}.psv-loader-container,.psv-overlay{z-index:1}.success-modal[data-v-79d3a107]{margin:var(--spacing-unit);align-items:center;display:flex;flex-direction:column;justify-content:space-between;min-width:500px;position:relative}.success-modal__close[data-v-79d3a107]{position:absolute;right:0;top:0}.success-modal__close .bimdata-pie-spinner[data-v-79d3a107]{height:23px;width:23px}.success-modal__title[data-v-79d3a107]{margin:calc(var(--spacing-unit) * 3) 0 calc(var(--spacing-unit) * 2);display:inline-flex;align-items:center}.success-modal__title h2[data-v-79d3a107]{margin:0;font-size:20px}.success-modal__title--icon[data-v-79d3a107]{margin-left:calc(var(--spacing-unit) / 2)}.success-modal__text[data-v-79d3a107]{margin:0;width:300px;text-align:center;line-height:1.5;color:var(--color-granite-light);font-size:12px}.success-modal__button[data-v-79d3a107]{margin:calc(var(--spacing-unit) * 2) 0}.bimdata-modal-manager[data-v-2c579fcd]{z-index:3;position:absolute;left:0;right:0}.bimdata-modal-manager.full[data-v-2c579fcd]{height:100%;display:flex;align-items:center;justify-content:center}.bimdata-modal-manager.full .bimdata-modal-manager__content[data-v-2c579fcd]{max-height:100%;margin:1rem 0;display:block;position:absolute;background-color:var(--color-white);overflow:auto}.bimdata-modal-manager.full[data-v-2c579fcd]:before{content:"";position:absolute;width:100%;height:100%;left:0;top:0;background-color:var(--color-primary);opacity:.8}.bimdata-modal-manager.banner[data-v-2c579fcd]{position:absolute;bottom:0;display:flex;justify-content:center}.bimdata-modal-manager.banner .bimdata-modal-manager__content[data-v-2c579fcd]{width:550px;margin-bottom:50px}.side-panel[data-v-ced3f116]{width:var(--side-panel-width);height:100%;flex-shrink:0;background-color:var(--color-white)}.plugins-as-button .tools-menu__info[data-v-72f2ce01]{position:absolute;top:3px;left:3px;font-size:11px;font-weight:700}.plugins-as-button .tools-menu__info~svg[data-v-72f2ce01]{margin-top:6px}.plugins-as-button .open .bimdata-btn[data-v-72f2ce01]{background-color:var(--color-secondary)}.plugins-as-button__submenu[data-v-72f2ce01]{position:absolute;top:0;box-shadow:var(--box-shadow);background-color:var(--color-white)}.plugins-as-button__submenu--right[data-v-72f2ce01]{left:calc(100% + (var(--spacing-unit)) / 2);right:auto}.plugins-as-button__submenu--right__simple[data-v-72f2ce01]{padding:var(--spacing-unit);width:229px;display:flex;flex-direction:column;justify-content:center;left:calc(100% + var(--spacing-unit));top:0}.plugins-as-button__submenu--right__panel[data-v-72f2ce01]{width:400px;height:calc(var(--bimdata-local-context-height) - 24px);left:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--right__free[data-v-72f2ce01]{left:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--left[data-v-72f2ce01]{right:calc(100% + (var(--spacing-unit)) / 2);left:auto}.plugins-as-button__submenu--left__simple[data-v-72f2ce01]{padding:var(--spacing-unit);width:187px;display:flex;flex-direction:column;justify-content:center;right:calc(100% + var(--spacing-unit));top:0}.plugins-as-button__submenu--left__panel[data-v-72f2ce01]{width:400px;height:calc(var(--bimdata-local-context-height) - 24px);right:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__submenu--left__free[data-v-72f2ce01]{right:calc(100% + var(--spacing-unit));z-index:1}.plugins-as-button__panel__header[data-v-72f2ce01]{padding:0 var(--spacing-unit);height:42px;background-color:var(--color-silver-light);display:flex;justify-content:space-between;align-items:center}.plugins-as-button__panel__content[data-v-72f2ce01],.plugins-as-button .panel__content[data-v-72f2ce01]{height:calc(100% - 42px)}.plugins-as-button .panel__content .plugin-component-instance-container[data-v-72f2ce01]{height:100%}.side-column[data-v-f11ec0c8]{position:absolute;top:var(--spacing-unit);display:flex;flex-direction:column}.side-column--left[data-v-f11ec0c8],.side-column--right[data-v-f11ec0c8]{z-index:1}.side-column--left[data-v-f11ec0c8]{left:var(--spacing-unit)}.side-column--right[data-v-f11ec0c8]{right:var(--spacing-unit)}.layout-settings[data-v-d37dfd4d]{transition:background-color 1s;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.layout-settings[data-v-d37dfd4d]:before{content:"";position:absolute;width:100%;height:100%;left:0;top:0;background-color:var(--color-primary);opacity:.8;z-index:-1}.layout-settings__header[data-v-d37dfd4d]{color:var(--color-white);font-size:small;margin-bottom:12px}.layout-settings__split[data-v-d37dfd4d]{display:flex;justify-content:space-between}.layout-settings__split .bimdata-btn[data-v-d37dfd4d]{margin:15px;padding:20px 40px}.layout-settings__split__text[data-v-d37dfd4d]{margin-left:8px}.layout-settings__buttons[data-v-d37dfd4d]{position:absolute;top:0;right:0;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:15px;padding:0}.layout-settings__buttons[data-v-d37dfd4d]>*{margin-bottom:15px}.layout-settings__buttons .bimdata-btn__fill[data-v-d37dfd4d]:disabled{color:var(--color-primary)}.layout-settings--swap[data-v-d37dfd4d]{cursor:grab;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.layout-settings--swap[data-v-d37dfd4d]:before{background-color:var(--color-primary);opacity:.3;z-index:-1}.layout-settings--dragging[data-v-d37dfd4d]{cursor:grabbing}.layout-settings--dragover[data-v-d37dfd4d]:before{background-color:var(--color-primary-light)}.window-container[data-v-4d6af796]{height:100%;position:relative;overflow:hidden;background-color:var(--bimdata-viewer-background-color, #f5f5f5);container-type:inline-size}.window-container__content[data-v-4d6af796]{display:flex;height:100%}.window-container__content__center[data-v-4d6af796]{position:relative;flex-grow:1;overflow:hidden}.window-container__content__center__viewer[data-v-4d6af796]{position:absolute;width:100%;height:100%}.window-container__layout-settings[data-v-4d6af796]{position:absolute;top:0;left:0;width:100%;height:100%}.context-menu[data-v-5b87d4a3]{padding:9px 0;position:absolute;background-color:var(--color-white);box-shadow:var(--box-shadow);border-radius:3px;list-style:none;z-index:3}.context-menu__element[data-v-5b87d4a3]{height:calc(var(--spacing-unit) * 3);padding:0 var(--spacing-unit);cursor:pointer;display:flex;align-items:center;justify-content:space-between;position:relative}.context-menu__element[data-v-5b87d4a3]:hover{background-color:var(--color-silver-light)}.context-menu__element .separator[data-v-5b87d4a3]{position:absolute;top:0;left:0;background-color:var(--color-silver);height:1px;width:100%}.context-menu__element .menu-text[data-v-5b87d4a3]{color:var(--color-primary);font-size:12px}.context-menu__element .menu-picto[data-v-5b87d4a3]{font-size:10px}.context-menu__spinner[data-v-5b87d4a3]{display:flex;justify-content:center;align-items:center;height:calc(var(--spacing-unit) * 3);padding:0 var(--spacing-unit)}.viewer-header[data-v-5c9ea6b6]{padding:0 10px;height:var(--bimdata-viewer-header-height, 40px);border-bottom:solid 2px var(--color-silver);background-color:var(--color-silver-light);display:flex;align-items:center;justify-content:space-between}.viewer-header__content[data-v-5c9ea6b6]{flex-grow:1;display:flex;align-items:center;justify-content:space-between}.viewer-header__content__left[data-v-5c9ea6b6]{display:flex;align-items:center;gap:calc(var(--spacing-unit) / 2)}.viewer-header__content__right[data-v-5c9ea6b6]{display:flex;align-items:center;justify-content:space-between}.viewer-header__version[data-v-5c9ea6b6]{font-size:small}.bimdata-separator[data-v-79a3b3af]{position:relative;cursor:ew-resize;flex-shrink:0}.bimdata-separator__line[data-v-79a3b3af]{background-color:#d8d8d8;height:100%;width:2px}.bimdata-separator__resizer[data-v-79a3b3af]{position:absolute;top:0;bottom:0;right:-9px;width:20px;z-index:2}.bimdata-global-side-panel[data-v-82d0d4cb]{display:flex;justify-content:space-around;height:100%;z-index:1;box-shadow:var(--box-shadow)}.bimdata-global-side-panel__component[data-v-82d0d4cb]{flex-grow:1;overflow:hidden;height:100%}.bimdata-viewer[data-v-0c1c941a]{height:100%;font-size:14px;position:relative;background-color:var(--bimdata-viewer-background-color, #f5f5f5);overflow:hidden}.bimdata-viewer__content[data-v-0c1c941a]{display:flex;justify-content:space-between;position:relative;overflow:hidden}.bimdata-viewer textarea[data-v-0c1c941a]{font-family:roboto,Helvetica,Arial,sans-serif}.bimdata-viewer .viewer__logo[data-v-0c1c941a]{position:absolute;bottom:var(--spacing-unit);left:0;display:flex;flex-direction:column;align-items:center}.bimdata-viewer .viewer__logo svg[data-v-0c1c941a]{width:72px;height:40px}.bimdata-viewer .viewer__logo .version[data-v-0c1c941a]{font-size:70%;min-width:72px;text-align:center}.bimdata-viewer .area[data-v-0c1c941a]{overflow:hidden}.bimdata-viewer{font-family:roboto,Helvetica,Arial,sans-serif;color:var(--color-primary)}.bimdata-viewer *,.bimdata-viewer *:before,.bimdata-viewer *:after{box-sizing:border-box}.bimdata-viewer .bimdata-context-loading-overlay{background-color:#ffffff80;position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.bimdata-info-length[data-v-34c2cf79]{padding:0 calc(var(--spacing-unit) / 2);height:18px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--color-white);border-radius:3px;line-height:1.5;font-size:11px}.bimdata-models[data-v-34c2cf79]{position:relative}.bimdata-models--window-positioning[data-v-34c2cf79]{position:absolute;z-index:1;top:var(--spacing-unit);left:calc(var(--bimdata-local-context-center-width) / 2);transform:translate(-50%)}.bimdata-models__list[data-v-34c2cf79]{width:var(--bimdata-models-width)}.bimdata-models__list[data-v-34c2cf79] li{height:30px;position:relative}.bimdata-models__header[data-v-34c2cf79]{display:flex;align-items:center;width:calc(100% - 33px)}.bimdata-models__header__loader[data-v-34c2cf79]{width:100%;display:flex;justify-content:center;align-items:center}.bimdata-models__header__picto[data-v-34c2cf79]{display:flex}.bimdata-models__header__number[data-v-34c2cf79]{margin-left:var(--spacing-unit)}.bimdata-models__header__number--empty[data-v-34c2cf79]{background-color:var(--color-granite)}.bimdata-models__header__name[data-v-34c2cf79]{margin-left:var(--spacing-unit);width:calc(100% - 61px)}.bimdata-models__header__name span[data-v-34c2cf79]{font-size:12px}.bimdata-models__header__name--empty[data-v-34c2cf79]{color:var(--color-granite)}.bimdata-models__preview[data-v-34c2cf79]{pointer-events:none;z-index:3;position:absolute;height:200px;width:200px;border:7px solid white;overflow:hidden;background-color:var(--color-silver-light)}.bimdata-models__preview img[data-v-34c2cf79]{height:100%}.bimdata-models__model[data-v-34c2cf79]{width:100%;height:100%;display:flex;align-items:center;padding:0 var(--spacing-unit)}.bimdata-models__model__name--disabled[data-v-34c2cf79]{color:var(--color-silver-dark)}.bimdata-models__model__spinner[data-v-34c2cf79]{position:absolute;top:0;right:0;margin:0 var(--spacing-unit);display:flex;align-items:center;height:100%}.bimdata-models[data-v-34c2cf79] .submenu{max-height:350px}.bimdata-models[data-v-34c2cf79] .submenu .bimdata-paginated-list__elements{height:auto;max-height:300px;overflow:auto}.bimdata-models[data-v-34c2cf79] .submenu .submenu--down li{padding:0}.bimdata-info-length[data-v-44e6af66]{padding:0 calc(var(--spacing-unit) / 2);height:18px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--color-white);border-radius:3px;line-height:1.5;font-size:11px}.bimdata-multi-model-loader[data-v-44e6af66]{position:relative;display:flex;align-items:center}.bimdata-multi-model-loader--window-positioning[data-v-44e6af66]{position:absolute;z-index:1;top:var(--spacing-unit);left:calc(var(--bimdata-local-context-center-width) / 2);transform:translate(-50%)}.bimdata-multi-model-loader__header-container[data-v-44e6af66]{display:flex;align-items:center;justify-content:center}.bimdata-multi-model-loader__header[data-v-44e6af66]{display:flex;align-items:center;justify-content:center;width:350px;height:34px;padding:0 var(--spacing-unit);background-color:#fff;box-shadow:var(--box-shadow);border-radius:2px;cursor:pointer}.bimdata-multi-model-loader__header__loader[data-v-44e6af66]{width:100%;display:flex;justify-content:center;align-items:center}.bimdata-multi-model-loader__header__picto[data-v-44e6af66]{display:flex}.bimdata-multi-model-loader__header__number[data-v-44e6af66]{margin-left:var(--spacing-unit)}.bimdata-multi-model-loader__header__number--empty[data-v-44e6af66]{background-color:var(--color-granite)}.bimdata-multi-model-loader__header__name[data-v-44e6af66]{margin-left:var(--spacing-unit);width:calc(100% - 61px);font-size:12px}.bimdata-multi-model-loader__header__name--empty[data-v-44e6af66]{color:var(--color-granite)}.bimdata-multi-model-loader__main[data-v-44e6af66]{width:480px;background-color:#fff;box-shadow:var(--box-shadow);padding:calc(var(--spacing-unit) * 2) 0;display:flex;flex-direction:column}.bimdata-multi-model-loader__main__model[data-v-44e6af66]{width:100%;height:30px;display:flex;align-items:center;gap:8px;padding:0 calc(var(--spacing-unit) * 2);cursor:pointer}.bimdata-multi-model-loader__main__model[data-v-44e6af66]:hover{background-color:var(--color-silver-light)}.bimdata-multi-model-loader__main__model--disabled[data-v-44e6af66]{cursor:default}.bimdata-multi-model-loader__main__model__name--disabled[data-v-44e6af66]{color:var(--color-silver-dark)}.bimdata-multi-model-loader__main__model__spinner[data-v-44e6af66]{width:16px;margin:auto;display:flex;align-items:center;height:100%}.bimdata-multi-model-loader__main__validate[data-v-44e6af66]{margin-top:var(--spacing-unit);margin-right:calc(var(--spacing-unit) * 2);align-self:end}.bimdata-multi-model-loader__preview[data-v-44e6af66]{pointer-events:none;z-index:3;position:absolute;height:200px;width:200px;border:7px solid white;overflow:hidden;background-color:var(--color-silver-light)}.bimdata-multi-model-loader__preview img[data-v-44e6af66]{height:100%}.bimdata__no-model[data-v-5ffd9bc0]{position:absolute;top:0;left:0;right:0;bottom:0;opacity:var(--no-model--opacity);transition:opacity 1s ease-in;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--color-silver-dark);font-size:medium}.bimdata__no-model svg[data-v-5ffd9bc0]{height:200px;width:200px}`)),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();function Tfe(t,e){for(var i=0;i<e.length;i++){const r=e[i];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in t)){const n=Object.getOwnPropertyDescriptor(r,o);n&&Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const _4=t=>`Context Menu --- Cannot "${t}" because the context menu is disabled. Consider enabling it in the makeBIMDataViewer configuration object if you want to use it.`,Lfe={preventDefault(){console.warn(_4("preventDefault"))},registerContextCommand(){console.warn(_4("registerContextCommand"))},registerCommand(){console.warn(_4("registerCommand"))},open(){console.warn(_4("open"))}},Ko=t=>e=>e[t],Mi=t=>e=>e[t],xu=t=>e=>!e[t],Os=(t,e)=>i=>t(i)&&e(i),Yh=Ko("id");function Dfe({state:t,getObjects:e=()=>[]}){return[{name:"selectAll",key:"C",execute:()=>t.selectObjects(e().filter(Os(Mi("visible"),xu("selected"))).map(Yh))},{name:"deselectAll",key:"V",execute:()=>t.deselectObjects(e().filter(Mi("selected")).map(Yh))},{name:"selectSimilar",key:"Y",execute:()=>{const i=e(),r=i.filter(Os(Mi("visible"),Mi("selected")));if(r.length===1&&r[0].type!==void 0){const o=r[0],n=i.filter(a=>a.visible&&a.type===o.type&&a.id!==o.id).map(Yh);t.selectObjects(n)}}},{name:"hide",key:"H",execute:()=>{const i=e().filter(Os(Mi("selected"),Mi("visible"))),r=i.filter(Mi("selected"));r.length>0&&t.deselectObjects(r.map(Yh)),t.hideObjects(i.map(Yh))}},{name:"showAll",key:"R",execute:()=>{const i=e().filter(xu("visible")).map(Yh);i.length>0&&t.showObjects(i)}}]}const Rfe=t=>{const e=[];let i=!1,r=null;function o(u){if(i&&u.target.tagName!=="INPUT"&&u.target.tagName!=="TEXTAREA"){const h=n(u);h&&(u.preventDefault(),u.stopPropagation(),h.execute())}}function n(u){const h=e.filter(f=>C_(f,u));return h.length?h.find(f=>f.context===r)||h.find(f=>f.context==null):null}document.addEventListener("keydown",o);function a(){document.removeEventListener("keydown",o)}function s(u={},h){const{name:f,key:A,execute:p,ctrlKey:g=!1,shiftKey:m=!1,altKey:b=!1}=u;if(!f)return console.error("Cannot register shortcut without a name."),!1;if(!p||typeof p!="function")return console.error("Cannot register shortcut without an execute function."),!1;if(A==null)return console.error("Cannot register shortcut without a key."),!1;const y=e.find(x=>C_(x,u)&&x.context==h);if(y)return console.error(`A shortcut on the key "${u.key}" is already registered on this context with the name "${y.name}".`),!1;const v=e.find(x=>x.name===u.name&&x.context===h);return v?(console.error(`A shortcut with the name "${u.name}" is already registered on this context on the key "${v.key}".`),!1):(e.push({name:f,key:A,context:h,execute:p,ctrlKey:g,shiftKey:m,altKey:b}),!0)}function l(u,h){const f=e.find(A=>A.name===u&&A.context===h);return f?(e.splice(e.indexOf(f),1),!0):!1}function c(u,h){return e.find(f=>f.name===u&&f.context==h)}function d(u){return e.filter(h=>h.context==u)}return{shortcuts:e,getShortcut:c,getShortcuts:d,registerShortcut:s,unregisterShortcut:l,destroy:a,getDefaultShortcuts(u,h=t){return Dfe({state:h,getObjects:u})},get active(){return i},set active(u){i=u},get activeLocalContext(){return r},set activeLocalContext(u){r=u}}};function C_(t,e){const{key:i,ctrlKey:r=!1,shiftKey:o=!1,metaKey:n=!1,altKey:a=!1}=e;return t.key.toUpperCase()===i.toUpperCase()&&t.ctrlKey===(r||n)&&t.shiftKey===o&&t.altKey===a}/*!
|
|
7
7
|
* shared v11.1.3
|
|
8
8
|
* (c) 2025 kazuya kawaguchi
|
|
9
9
|
* Released under the MIT License.
|
|
@@ -5517,10 +5517,10 @@ void main() {
|
|
|
5517
5517
|
`,r=()=>e.useDataURI?"data:text/javascript,"+encodeURIComponent(i):URL.createObjectURL(new Blob([i],{type:"text/javascript"}));t({workerScripts:{inflate:[r],deflate:[r]}})}const e1i="Writer iterator completed too soon",t1i="Content-Type",i1i=64*1024,B1e="writable";class UR{constructor(){this.size=0}init(){this.initialized=!0}}class S1e extends UR{get readable(){const e=this,{chunkSize:i=i1i}=e,r=new ReadableStream({start(){this.chunkOffset=0},async pull(o){const{offset:n=0,size:a,diskNumberStart:s}=r,{chunkOffset:l}=this,c=a===Go?i:Math.min(i,a-l),d=await dn(e,n+l,c,s);o.enqueue(d),l+i>a||a===Go&&!d.length&&c?o.close():this.chunkOffset+=i}});return r}}class I1e extends S1e{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,i){const r=this,o=e+i;let n=await(e||o<r.size?r.blob.slice(e,o):r.blob).arrayBuffer();return n.byteLength>i&&(n=n.slice(e,o)),new Uint8Array(n)}}class T1e extends UR{constructor(e){super();const i=this,r=new TransformStream,o=[];e&&o.push([t1i,e]),Object.defineProperty(i,B1e,{get(){return r.writable}}),i.blob=new Response(r.readable,{headers:o}).blob()}getData(){return this.blob}}class r1i extends T1e{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:i}=this,r=await super.getData();if(r.text&&i)return r.text();{const o=new FileReader;return new Promise((n,a)=>{Object.assign(o,{onload:({target:s})=>n(s.result),onerror:()=>a(o.error)}),o.readAsText(r,e)})}}}class o1i extends S1e{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:i}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(i.map(async(r,o)=>{await r.init(),o!=i.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,i,r=0){const o=this,{readers:n}=this;let a,s=r;s==-1&&(s=n.length-1);let l=e;for(;l>=n[s].size;)l-=n[s].size,s++;const c=n[s],d=c.size;if(l+i<=d)a=await dn(c,l,i);else{const u=d-l;a=new Uint8Array(i),a.set(await dn(c,l,u)),a.set(await o.readUint8Array(e+u,i-u,r),u)}return o.lastDiskNumber=Math.max(s,o.lastDiskNumber),a}}class L1e extends UR{constructor(e,i=4294967295){super();const r=this;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:i,availableSize:i});let o,n,a;const s=new WritableStream({async write(d){const{availableSize:u}=r;if(a)d.length>=u?(await l(d.slice(0,u)),await c(),r.diskOffset+=o.size,r.diskNumber++,a=null,await this.write(d.slice(u))):await l(d);else{const{value:h,done:f}=await e.next();if(f&&!h)throw new Error(e1i);o=h,o.size=0,o.maxSize&&(r.maxSize=o.maxSize),r.availableSize=r.maxSize,await _b(o),n=h.writable,a=n.getWriter(),await this.write(d)}},async close(){await a.ready,await c()}});Object.defineProperty(r,B1e,{get(){return s}});async function l(d){const u=d.length;u&&(await a.ready,await a.write(d),o.size+=u,r.size+=u,r.availableSize-=u)}async function c(){n.size=o.size,await a.close()}}}async function _b(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}function n1i(t){return Array.isArray(t)&&(t=new o1i(t)),t instanceof ReadableStream&&(t={readable:t}),t}function a1i(t){t.writable===Go&&typeof t.next==n4&&(t=new L1e(t)),t instanceof WritableStream&&(t={writable:t});const{writable:e}=t;return e.size===Go&&(e.size=0),t instanceof L1e||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}function dn(t,e,i,r){return t.readUint8Array(e,i,r)}const D1e="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),s1i=D1e.length==256;function l1i(t){if(s1i){let e="";for(let i=0;i<t.length;i++)e+=D1e[t[i]];return e}else return new TextDecoder().decode(t)}function Fb(t,e){return e&&e.trim().toLowerCase()=="cp437"?l1i(t):new TextDecoder(e).decode(t)}const R1e="filename",_1e="rawFilename",F1e="comment",O1e="rawComment",U1e="uncompressedSize",N1e="compressedSize",j1e="offset",NR="diskNumberStart",jR="lastModDate",VR="rawLastModDate",V1e="lastAccessDate",c1i="rawLastAccessDate",H1e="creationDate",d1i="rawCreationDate",u1i="internalFileAttribute",h1i="internalFileAttributes",p1i="externalFileAttribute",f1i="externalFileAttributes",A1i="msDosCompatible",m1i="zip64",g1i="encrypted",v1i="version",y1i="versionMadeBy",b1i="zipCrypto",w1i="directory",C1i="executable",x1i=[R1e,_1e,N1e,U1e,jR,VR,F1e,O1e,V1e,H1e,j1e,NR,NR,u1i,h1i,p1i,f1i,A1i,m1i,g1i,v1i,y1i,b1i,w1i,C1i,"bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class z1e{constructor(e){x1i.forEach(i=>this[i]=e[i])}}const HR="File format is not recognized",k1i="End of central directory not found",M1i="End of Zip64 central directory locator not found",P1i="Central directory header not found",E1i="Local file header not found",B1i="Zip64 extra field not found",S1i="File contains encrypted entry",I1i="Encryption method not supported",q1e="Compression method not supported",G1e="Split zip file",Q1e="utf-8",K1e="cp437",T1i=[[U1e,Kh],[N1e,Kh],[j1e,Kh],[NR,hu]],L1i={[hu]:{getValue:eo,bytes:4},[Kh]:{getValue:Ob,bytes:8}};class D1i{constructor(e,i={}){Object.assign(this,{reader:n1i(e),options:i,config:hpi()})}async*getEntriesGenerator(e={}){const i=this;let{reader:r}=i;const{config:o}=i;if(await _b(r),(r.size===Go||!r.readUint8Array)&&(r=new I1e(await new Response(r.readable).blob()),await _b(r)),r.size<Bm)throw new Error(HR);r.chunkSize=ppi(o);const n=await N1i(r,$hi,r.size,Bm,hu*16);if(!n){const S=await dn(r,0,4),I=To(S);throw eo(I)==Yhi?new Error(G1e):new Error(k1i)}const a=To(n);let s=eo(a,12),l=eo(a,16);const c=n.offset,d=Io(a,20),u=c+Bm+d;let h=Io(a,4);const f=r.lastDiskNumber||0;let A=Io(a,6),p=Io(a,8),g=0,m=0;if(l==Kh||s==Kh||p==hu||A==hu){const S=await dn(r,n.offset-ER,ER),I=To(S);if(eo(I,0)==epi){l=Ob(I,8);let L=await dn(r,l,BR,-1),_=To(L);const U=n.offset-ER-BR;if(eo(_,0)!=Upe&&l!=U){const z=l;l=U,g=l-z,L=await dn(r,l,BR,-1),_=To(L)}if(eo(_,0)!=Upe)throw new Error(M1i);h==hu&&(h=eo(_,16)),A==hu&&(A=eo(_,20)),p==hu&&(p=Ob(_,32)),s==Kh&&(s=Ob(_,40)),l-=s}}if(l>=r.size&&(g=r.size-l-s-Bm,l=r.size-s-Bm),f!=h)throw new Error(G1e);if(l<0)throw new Error(HR);let b=0,y=await dn(r,l,s,A),v=To(y);if(s){const S=n.offset-s;if(eo(v,b)!=Ope&&l!=S){const I=l;l=S,g+=l-I,y=await dn(r,l,s,A),v=To(y)}}const x=n.offset-l-(r.lastDiskOffset||0);if(s!=x&&x>=0&&(s=x,y=await dn(r,l,s,A),v=To(y)),l<0||l>=r.size)throw new Error(HR);const k=Rn(i,e,"filenameEncoding"),B=Rn(i,e,"commentEncoding");for(let S=0;S<p;S++){const I=new R1i(r,o,i.options);if(eo(v,b)!=Ope)throw new Error(P1i);Z1e(I,v,b+6);const L=!!I.bitFlag.languageEncodingFlag,_=b+46,U=_+I.filenameLength,z=U+I.extraFieldLength,N=Io(v,b+4),W=N>>8==0,J=N>>8==3,te=y.subarray(_,U),le=Io(v,b+32),Ie=z+le,Ce=y.subarray(z,Ie),Ue=L,me=L,Te=eo(v,b+38),He=W&&(Tm(v,b+38)&Hpe)==Hpe||J&&(Te>>16&zpe)==zpe||te.length&&te[te.length-1]==Gpe.charCodeAt(0),ne=J&&(Te>>16&qpe)==qpe,Se=eo(v,b+42)+g;Object.assign(I,{versionMadeBy:N,msDosCompatible:W,compressedSize:0,uncompressedSize:0,commentLength:le,directory:He,offset:Se,diskNumberStart:Io(v,b+34),internalFileAttributes:Io(v,b+36),externalFileAttributes:Te,rawFilename:te,filenameUTF8:Ue,commentUTF8:me,rawExtraField:y.subarray(U,z),executable:ne}),I.internalFileAttribute=I.internalFileAttributes,I.externalFileAttribute=I.externalFileAttributes;const be=Rn(i,e,"decodeText")||Fb,Le=Ue?Q1e:k||K1e,Ye=me?Q1e:B||K1e;let $e=be(te,Le);$e===Go&&($e=Fb(te,Le));let ee=be(Ce,Ye);ee===Go&&(ee=Fb(Ce,Ye)),Object.assign(I,{rawComment:Ce,filename:$e,comment:ee,directory:He||$e.endsWith(Gpe)}),m=Math.max(Se,m),W1e(I,I,v,b+6),I.zipCrypto=I.encrypted&&!I.extraFieldAES;const K=new z1e(I);K.getData=(ke,ye)=>I.getData(ke,K,ye),b=Ie;const{onprogress:de}=e;if(de)try{await de(S+1,p,new z1e(I))}catch{}yield K}const M=Rn(i,e,"extractPrependedData"),P=Rn(i,e,"extractAppendedData");return M&&(i.prependedData=m>0?await dn(r,0,m):new Uint8Array),i.comment=d?await dn(r,c+Bm,d):new Uint8Array,P&&(i.appendedData=u<r.size?await dn(r,u,r.size-u):new Uint8Array),!0}async getEntries(e={}){const i=[];for await(const r of this.getEntriesGenerator(e))i.push(r);return i}async close(){}}class R1i{constructor(e,i,r){Object.assign(this,{reader:e,config:i,options:r})}async getData(e,i,r={}){const o=this,{reader:n,offset:a,diskNumberStart:s,extraFieldAES:l,compressionMethod:c,config:d,bitFlag:u,signature:h,rawLastModDate:f,uncompressedSize:A,compressedSize:p}=o,g=i.localDirectory={},m=await dn(n,a,30,s),b=To(m);let y=Rn(o,r,"password"),v=Rn(o,r,"rawPassword");const x=Rn(o,r,"passThrough");if(y=y&&y.length&&y,v=v&&v.length&&v,l&&l.originalCompressionMethod!=Jhi)throw new Error(q1e);if(c!=Whi&&c!=Zhi&&!x)throw new Error(q1e);if(eo(b,0)!=Xhi)throw new Error(E1i);Z1e(g,b,4),g.rawExtraField=g.extraFieldLength?await dn(n,a+30+g.filenameLength,g.extraFieldLength,s):new Uint8Array,W1e(o,g,b,4,!0),Object.assign(i,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const k=o.encrypted&&g.encrypted&&!x,B=k&&!l;if(x||(i.zipCrypto=B),k){if(!B&&l.strength===Go)throw new Error(I1i);if(!y&&!v)throw new Error(S1i)}const M=a+30+g.filenameLength+g.extraFieldLength,P=p,S=n.readable;Object.assign(S,{diskNumberStart:s,offset:M,size:P});const I=Rn(o,r,"signal"),L=Rn(o,r,"checkPasswordOnly");L&&(e=new WritableStream),e=a1i(e),await _b(e,x?p:A);const{writable:_}=e,{onstart:U,onprogress:z,onend:N}=r,W={options:{codecType:w1e,password:y,rawPassword:v,zipCrypto:B,encryptionStrength:l&&l.strength,signed:Rn(o,r,"checkSignature")&&!x,passwordVerification:B&&(u.dataDescriptor?f>>>8&255:h>>>24&255),signature:h,compressed:c!=0&&!x,encrypted:o.encrypted&&!x,useWebWorkers:Rn(o,r,"useWebWorkers"),useCompressionStream:Rn(o,r,"useCompressionStream"),transferStreams:Rn(o,r,"transferStreams"),checkPasswordOnly:L},config:d,streamOptions:{signal:I,size:P,onstart:U,onprogress:z,onend:N}};let J=0;try{({outputSize:J}=await Xpi({readable:S,writable:_},W))}catch(te){if(!L||te.message!=TR)throw te}finally{const te=Rn(o,r,"preventClose");_.size+=J,!te&&!_.locked&&await _.getWriter().close()}return L?Go:e.getData?e.getData():_}}function Z1e(t,e,i){const r=t.rawBitFlag=Io(e,i+2),o=(r&Npe)==Npe,n=eo(e,i+6);Object.assign(t,{encrypted:o,version:Io(e,i),bitFlag:{level:(r&cpi)>>1,dataDescriptor:(r&jpe)==jpe,languageEncodingFlag:(r&Vpe)==Vpe},rawLastModDate:n,lastModDate:j1i(n),filenameLength:Io(e,i+22),extraFieldLength:Io(e,i+24)})}function W1e(t,e,i,r,o){const{rawExtraField:n}=e,a=e.extraField=new Map,s=To(new Uint8Array(n));let l=0;try{for(;l<n.length;){const m=Io(s,l),b=Io(s,l+2);a.set(m,{type:m,data:n.slice(l+4,l+4+b)}),l+=4+b}}catch{}const c=Io(i,r+4);Object.assign(e,{signature:eo(i,r+10),uncompressedSize:eo(i,r+18),compressedSize:eo(i,r+14)});const d=a.get(tpi);d&&(_1i(d,e),e.extraFieldZip64=d);const u=a.get(api);u&&(J1e(u,R1e,_1e,e,t),e.extraFieldUnicodePath=u);const h=a.get(spi);h&&(J1e(h,F1e,O1e,e,t),e.extraFieldUnicodeComment=h);const f=a.get(ipi);f?(F1i(f,e,c),e.extraFieldAES=f):e.compressionMethod=c;const A=a.get(rpi);A&&(O1i(A,e),e.extraFieldNTFS=A);const p=a.get(npi);p&&(U1i(p,e,o),e.extraFieldExtendedTimestamp=p);const g=a.get(lpi);g&&(e.extraFieldUSDZ=g)}function _1i(t,e){e.zip64=!0;const i=To(t.data),r=T1i.filter(([o,n])=>e[o]==n);for(let o=0,n=0;o<r.length;o++){const[a,s]=r[o];if(e[a]==s){const l=L1i[s];e[a]=t[a]=l.getValue(i,n),n+=l.bytes}else if(t[a])throw new Error(B1i)}}function J1e(t,e,i,r,o){const n=To(t.data),a=new Tb;a.append(o[i]);const s=To(new Uint8Array(4));s.setUint32(0,a.get(),!0);const l=eo(n,1);Object.assign(t,{version:Tm(n,0),[e]:Fb(t.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==eo(s,0)}),t.valid&&(r[e]=t[e],r[e+"UTF8"]=!0)}function F1i(t,e,i){const r=To(t.data),o=Tm(r,4);Object.assign(t,{vendorVersion:Tm(r,0),vendorId:Tm(r,2),strength:o,originalCompressionMethod:i,compressionMethod:Io(r,5)}),e.compressionMethod=t.compressionMethod}function O1i(t,e){const i=To(t.data);let r=4,o;try{for(;r<t.data.length&&!o;){const n=Io(i,r),a=Io(i,r+2);n==opi&&(o=t.data.slice(r+4,r+4+a)),r+=4+a}}catch{}try{if(o&&o.length==24){const n=To(o),a=n.getBigUint64(0,!0),s=n.getBigUint64(8,!0),l=n.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:a,rawLastAccessDate:s,rawCreationDate:l});const c=zR(a),d=zR(s),u=zR(l),h={lastModDate:c,lastAccessDate:d,creationDate:u};Object.assign(t,h),Object.assign(e,h)}}catch{}}function U1i(t,e,i){const r=To(t.data),o=Tm(r,0),n=[],a=[];i?((o&1)==1&&(n.push(jR),a.push(VR)),(o&2)==2&&(n.push(V1e),a.push(c1i)),(o&4)==4&&(n.push(H1e),a.push(d1i))):t.data.length>=5&&(n.push(jR),a.push(VR));let s=1;n.forEach((l,c)=>{if(t.data.length>=s+4){const d=eo(r,s);e[l]=t[l]=new Date(d*1e3);const u=a[c];t[u]=d}s+=4})}async function N1i(t,e,i,r,o){const n=new Uint8Array(4),a=To(n);V1i(a,0,e);const s=r+o;return await l(r)||await l(Math.min(s,i));async function l(c){const d=i-c,u=await dn(t,d,c);for(let h=u.length-r;h>=0;h--)if(u[h]==n[0]&&u[h+1]==n[1]&&u[h+2]==n[2]&&u[h+3]==n[3])return{offset:d+h,buffer:u.slice(h,h+r).buffer}}}function Rn(t,e,i){return e[i]===Go?t.options[i]:e[i]}function j1i(t){const e=(t&4294901760)>>16,i=t&65535;try{return new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(i&63488)>>11,(i&2016)>>5,(i&31)*2,0)}catch{}}function zR(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function Tm(t,e){return t.getUint8(e)}function Io(t,e){return t.getUint16(e,!0)}function eo(t,e){return t.getUint32(e,!0)}function Ob(t,e){return Number(t.getBigUint64(e,!0))}function V1i(t,e,i){t.setUint32(e,i,!0)}function To(t){return new DataView(t.buffer)}let X1e;try{X1e=import.meta.url}catch{}SR({baseURL:X1e}),$pi(SR),SR({Deflate:Phi,Inflate:Khi});function H1i(t){return{getDetailedExtensions(e){return[]},getExtensions(e){return[]},getFullTopics(e,i,r,o,n,a,s){return[]},getTopics(e,i,r,o){return[]}}}function z1i(t){return{checkProjectAccess(e,i){return{has_read_permission:!0,has_write_permission:!1,has_admin_permission:!1,token_scopes:["bcf:read","document:read","model:read"],usable_scopes:["bcf:read","document:read","model:read"],user_role:50,user:null}},getProjectDMSTree(e,i){return{}},getDocumentHistories(e,i,r){return[]},getProjectUsers(e,i){return[]}}}function q1i(t={}){var e,i,r,o,n,a,s,l,c,d;const u=t,h=((e=u.units)==null?void 0:e.reduce((v,x)=>(x.conversion_baseunit=u.units[x.conversion_baseunit_index],delete x.conversion_baseunit_index,v[x.id]=x,v),{}))??{},f=((i=u.definitions)==null?void 0:i.reduce((v,x)=>(x.unit=u.units[x.unit_id],delete x.unit_id,v[x.id]=x,v),{}))??{},A=((r=u.property_sets)==null?void 0:r.reduce((v,x)=>(x.properties.forEach(k=>{k.definition=u.definitions[k.def_id],delete k.def_id}),v[x.id]=x,v),{}))??{},p=((o=u.classifications)==null?void 0:o.reduce((v,x)=>(x.name=x.type,x.title=x.description,v[x.id]=x,v),{}))??{},g=((n=u.layers)==null?void 0:n.reduce((v,x)=>(x.elements=[],v[x.id]=x,v),{}))??{},m=((a=u.systems)==null?void 0:a.reduce((v,x)=>(x.elements=[],v[x.uuid]=x,v),{}))??{},b={};b.materials_data=((s=u.materials)==null?void 0:s.materials_data.reduce((v,x)=>(x.property_sets=x.psets.map(k=>u.property_sets[k]),delete x.psets,delete x.step_id,v[x.id]=x,v),{}))??{},b.list_components=((l=u.materials)==null?void 0:l.list_components.reduce((v,x)=>(x.material=u.materials.materials_data[x.material],x.option=u.materials.options[x.material_option],v[x.id]=x,delete x.id,v),{}))??{},b.options=((c=u.materials)==null?void 0:c.options.reduce((v,x)=>(x.list_components=x.material_list.map(k=>u.materials.list_components[k]),v[x.id]=x,v),{}))??{};const y={};return(d=u.elements)==null||d.forEach(v=>{v.attributes=u.property_sets[v.attributes],v.property_sets=v.psets.map(x=>u.property_sets[x]),delete v.psets,v.classifications=v.classifications.map(x=>u.classifications[x]),v.systems=v.systems.map(x=>{const k=u.systems[x];return k.elements.push(v.uuid),k}),v.layers=v.layers.map(x=>{const k=u.layers[x];return k.elements.push(v.uuid),k}),v.material_list=v.material_list.map(x=>u.materials.list_components[x]),y[v.uuid]=v}),{units:h,definitions:f,property_sets:A,classifications:p,layers:g,systems:m,materials:b,elements:y}}function G1i(t){const e={};return Object.values(t).forEach(i=>{e[i.uuid]={},e[i.uuid].attributes={},i.attributes.properties.forEach(r=>{e[i.uuid].attributes[r.definition.name]=r.value}),i.property_sets.forEach(r=>{e[i.uuid][r.name]={},r.properties.forEach(o=>{e[i.uuid][r.name][o.definition.name]=o.value})})}),e}function Q1i(t){return Object.values(t).forEach(e=>{e.formattedRawElements=q1i(e.rawElements)}),{getModels(e,i,r,o,n){let a=Object.values(t).map(s=>s.model);return a=a.filter(s=>!(s.type==="PDF"&&s.parent_id)),r?.length>0&&(a=a.filter(s=>r.includes(s.source))),o?.length>0&&(a=a.filter(s=>o.includes(s.status))),n?.length>0&&(a=a.filter(s=>n.includes(s.type))),a},getModel(e,i,r){return t[i].model},getTileset(e,i,r,o){console.warn("[BIMData Viewer] Offline Warning: `getTileset` is not available in offline mode.")},getBuildings(e,i,r){return t[i].buildings},getBuildingPlanPositioning(e,i,r,o,n){const a=this.getBuilding(i,o,n,e).plans.find(s=>s.plan.id===r);return{translation_x:a.translation_x,translation_y:a.translation_y,rotate_z:a.rotate_z,scale:a.scale,opacity:a.opacity}},getBuilding(e,i,r,o){return t[i].buildings.find(n=>n.uuid===o)},getModelClassifications(e,i,r){return Object.values(t[i].formattedRawElements.classifications)},listClassificationElementRelations(e,i,r){return Object.values(t[i].formattedRawElements.elements).flatMap(o=>o.classifications.map(n=>({element_uuid:o.uuid,classification_id:n.id})))},getElementsFromClassification(e,i,r,o){return t[r].formattedRawElements.classifications[i].elements},getDrawings(e,i,r){return t[i].drawings},getDrawing(e,i,r,o){return this.getDrawings(e,r,o).find(n=>n.id===i)},getElements(e,i,r,o,n,a){return Object.values(t[i].formattedRawElements.elements).filter(s=>a?s.type===a:o?s.classifications.some(l=>l.name===o):n?s.classifications.some(l=>l.notation===n):!0)},getElementLinkedDocuments(e,i,r){return console.warn("[BIMData Viewer] Offline Warning: `getElementLinkedDocuments` is not available in offline mode."),[]},async getRawElements(e,i,r,o,n,a){return t[i].rawElements},getSimpleElements(e,i,r,o,n,a){const s=this.getElements(e,i,r,o,n,a);return G1i(s)},getClassificationsOfElement(e,i,r,o){return this.getElement(e,r,o,i).classifications},getDocumentsOfElement(e,i,r,o){return console.warn("[BIMData Viewer] Offline Warning: `getDocumentsOfElement` is not available in offline mode."),[]},getMaterials(e,i,r,o){return this.getElement(e,r,o,i).material_list.map(n=>n.material)},getMaterial(e,i,r,o,n){return this.getMaterials(e,i,o,n).find(a=>a.id===r)},getElementPropertySets(e,i,r,o){return this.getElement(e,r,o,i).property_sets},getElementPropertySet(e,i,r,o,n){return this.getElementPropertySets(e,i,o,n).find(a=>a.id===r)},getElementPropertySetProperties(e,i,r,o,n){return this.getElementPropertySet(e,i,n,r,o).properties},getElementPropertySetProperty(e,i,r,o,n,a){return this.getElementPropertySetProperties(e,i,o,n,a).find(s=>s.id===r)},getElementPropertySetPropertyDefinitions(e,i,r,o,n,a){return[this.getElementPropertySetProperty(e,i,n,r,o,a).definition]},getElementPropertySetPropertyDefinition(e,i,r,o,n,a,s){const l=this.getElementPropertySetProperty(e,i,a,o,n,s).definition;return l.id===r?l:void 0},getElementPropertySetPropertyDefinitionUnits(e,i,r,o,n,a,s){return[this.getElementPropertySetPropertyDefinition(e,i,a,r,o,n,s).unit]},getElementPropertySetPropertyDefinitionUnit(e,i,r,o,n,a,s,l){const c=this.getElementPropertySetPropertyDefinition(e,i,s,o,n,a,l).unit;return c.id===r?c:void 0},getElement(e,i,r,o){return t[i].formattedRawElements.elements[o]},getSimpleElement(e,i,r,o){return this.getSimpleElements(e,i,r)[o]},getLayers(e,i,r){return Object.values(t[i].formattedRawElements.layers)},getLayer(e,i,r,o){return this.getLayers(e,r,o).find(n=>n.id===i)},getModelMaterials(e,i,r){return Object.values(t[i].formattedRawElements.materials.materials_data)},getModelMaterial(e,i,r,o){return this.getModelMaterials(e,r,o).find(n=>n.id===i)},getProcessorHandlers(e,i,r){return console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandlers` is not available in offline mode."),[]},getProcessorHandler(e,i,r,o){console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandler` is not available in offline mode.")},getModelProperties(e,i,r){return t[i].properties},getModelProperty(e,i,r,o){return t[r].properties.find(n=>n.id===i)},getModelPropertyDefinitions(e,i,r){return Object.values(t[i].formattedRawElements.definitions)},getModelPropertyDefinition(e,i,r,o){return this.getModelPropertyDefinitions(e,r,o).find(n=>n.id===i)},getPropertySets(e,i,r){return Object.values(t[i].formattedRawElements.property_sets)},getPropertySet(e,i,r,o){return this.getPropertySets(e,r,o).find(n=>n.id===i)},getSpaces(e,i,r){return t[i].spaces},getSpace(e,i,r,o){return t[r].spaces.find(n=>n.id===i)},getStoreys(e,i,r){return t[i].storeys},getStoreyPlanPositioning(e,i,r,o,n){const a=this.getStorey(e,r,o,n).plans.find(s=>s.plan.id===i);return{translation_x:a.translation_x,translation_y:a.translation_y,rotate_z:a.rotate_z,scale:a.scale,opacity:a.opacity}},getStorey(e,i,r,o){return t[i].storeys.find(n=>n.uuid===o)},getSystems(e,i,r){return Object.values(t[i].formattedRawElements.systems)},getSystem(e,i,r,o){return this.getSystems(e,i,r).find(n=>n.uuid===o)},getModelUnits(e,i,r){return Object.values(t[i].formattedRawElements.units)},getModelUnit(e,i,r,o){return this.getModelUnits(e,r,o).find(n=>n.id===i)},getZones(e,i,r,o){return t[i].zones.filter(n=>o?n.color===o:!0)},getZone(e,i,r,o){return t[r].zones.find(n=>n.id===i)},getZoneSpaces(e,i,r,o){return this.getZone(e,o,i,r).spaces},getZoneSpace(e,i,r,o,n){return this.getZoneSpaces(e,r,o,n).find(a=>a.id===i)}}}async function K1i(t){const e=t.find(r=>r.filename==="data.json"),i=await e?.getData(new r1i);return i?JSON.parse(i):null}async function u4(t,e,i){const r=t.find(n=>n.filename===`${e.id}/${i}`),o=await r?.getData(new T1e);return o?URL.createObjectURL(o):null}async function Z1i(t,e){await Promise.all([u4(t,e,"document_file").then(i=>e.document&&(e.document.file=i)),u4(t,e,"structure_file").then(i=>e.structure_file=i),u4(t,e,"map_file").then(i=>e.map_file=i),u4(t,e,"binary_2d_file").then(i=>e.binary_2d_file=i),...e.xkt_files.map((i,r)=>u4(t,e,`xkt_file_v${i.version}`).then(o=>e.xkt_files[r]={version:i.version,file:o}))])}async function W1i(t){const e=await new D1i(new I1e(t)).getEntries(),i=await K1i(e);return await Promise.all(Object.values(i).flatMap(({model:r,buildings:o=[],storeys:n=[]})=>[r].concat(r.children).concat(o.flatMap(a=>a.plans).map(a=>a.plan)).concat(n.flatMap(a=>a.plans).map(a=>a.plan))).map(r=>Z1i(e,r))),i}function qR(t,e,i){return new Proxy(t[i],{get:function(r,o){if(e[o])return e[o];throw new Error(`[BIMData Viewer] Offline Error: method \`${i}.${o}\` is not mocked.`)}})}async function J1i(t,e,i){var r,o,n;typeof t=="string"&&(t=await fetch(t).then(d=>d.blob()));const a=await W1i(t),s=H1i(),l=z1i(),c=Q1i(a);return Object.assign(s,(r=i.methods)==null?void 0:r.bcfApi),Object.assign(l,(o=i.methods)==null?void 0:o.collaborationApi),Object.assign(c,(n=i.methods)==null?void 0:n.modelApi),Object.assign({},e,{bcfApi:qR(e,s,"bcfApi"),collaborationApi:qR(e,l,"collaborationApi"),modelApi:qR(e,c,"modelApi")})}class X1i{constructor(e={}){const{apiUrl:i,archiveUrl:r,pdfBackendUrl:o,cloudId:n,projectId:a,accessToken:s,offline:l}=e;this.apiUrl=i,this.archiveUrl=r,this.pdfBackendUrl=o,this.cloudId=n,this.projectId=a,this._accessToken=s,this.offline=l??{enabled:!1};const c=fI.makeBIMDataApiClient({apiUrl:i,accessToken:s});this.apiClient=c,this.ready=Promise.resolve(),this.getModelsPromise=null,Object.assign(c,{BcfApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.bcfApi` instead of `new apiClient.BcfApi()`."),c.bcfApi},CollaborationApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.collaborationApi` instead of `new apiClient.CollaborationApi()`."),c.collaborationApi},ModelApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.ModelApi()`."),c.modelApi},IfcApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.IfcApi()`."),new Proxy(c.modelApi,{get:function(d,u,h){const f=u.replace("Deprecated","").replace("Ifc","Model");return Reflect.get(d,f,h)}})}})}get accessToken(){return this._accessToken}set accessToken(e){this._accessToken=e,this.apiClient.accessToken=e}async getAvailableModels(e=null,i=!1){return i&&(this.getModelsPromise=null),this.getModelsPromise||(this.getModelsPromise=this.apiClient.modelApi.getModels(this.cloudId,this.projectId)),(await this.getModelsPromise).filter(r=>e?.includes(r.type)??!0)}getModel(e){const{cloudId:i,projectId:r,apiClient:o}=this;return o.modelApi.getModel(i,e,r)}getIfc(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the `getModel` method instead of `getIfc`."),this.getModel(e)}async getModelStructure(e){const i=(await(await fetch(e.structure_file)).json())[0];return Cd(i),i}getIfcStructure(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the getModelStructure method instead of getIfcStructure."),this.getModelStructure(e)}async getRawElements(e){const{cloudId:i,projectId:r,apiClient:o}=this,n=await o.modelApi.getRawElements(i,e,r);n.units.forEach(s=>{s.conversion_baseunit=n.units[s.conversion_baseunit_index],delete s.conversion_baseunit_index}),n.definitions.forEach(s=>{s.unit=n.units[s.unit_id],delete s.unit_id}),n.property_sets.forEach(s=>{s.properties.forEach(l=>{l.definition=n.definitions[l.def_id],delete l.def_id})});const a={};return n.elements.forEach(s=>{s.attributes=n.property_sets[s.attributes],s.property_sets=s.psets.map(l=>n.property_sets[l]),Object.assign(s,{get propertySets(){return console.warn("propertySets is deprecated, please use property_sets instead."),s.property_sets}}),delete s.psets,s.classifications=s.classifications.map(l=>n.classifications[l]),s.systems=s.systems.map(l=>n.systems[l]),s.layers=s.layers.map(l=>n.layers[l]),a[s.uuid]=s}),a}getStoreys(e){const{cloudId:i,projectId:r,apiClient:o}=this;return o.modelApi.getStoreys(i,e,r)}createModel(e){const{cloudId:i,projectId:r,apiClient:o}=this;return o.modelApi.createModel(i,r,{document_id:e})}async waitForModelProcess(e){const i=["C","E","X"];return i.includes(e.status)?e:new Promise((r,o)=>{const n=setInterval(async()=>{try{let a=await this.getModel(e.id);i.includes(a.status)&&(clearInterval(n),r(a))}catch(a){clearInterval(n),o(a)}},1e3)})}async createStoreyPlan(e,i,r){const{cloudId:o,projectId:n,apiClient:a}=this,s=await this.createModel(r);return await a.modelApi.createStoreyPlan(o,e,n,i,{id:s.id}),s}deleteStoreyPlan(e,i,r){const{cloudId:o,projectId:n,apiClient:a}=this;return a.modelApi.deleteStoreyPlan(o,r,e,n,i)}updatePlanPositioning(e,i,r,o){const{cloudId:n,projectId:a,apiClient:s}=this;return s.modelApi.updateStoreyPlanPositioning(n,r,e,a,i,o)}async enableOfflineMode(e,i={}){let r;this.ready=new Promise(o=>r=o),this.apiClient=await J1i(e,this.apiClient,i),this.offline.enabled=!0,r()}disableOfflineMode(){this.offline.enabled&&(this.apiClient=fI.makeBIMDataApiClient({apiUrl:this.apiUrl,accessToken:this.accessToken}),this.offline.enabled=!1)}}function Y1i(t){const e=[{methodName:"selectObjects",property:"selected",value:!0,eventName:"objects-selected",exlusiveIndex:1},{methodName:"deselectObjects",property:"selected",value:!1,eventName:"objects-deselected"},{methodName:"highlightObjects",property:"highlighted",value:!0,eventName:"objects-highlighted"},{methodName:"unhighlightObjects",property:"highlighted",value:!1,eventName:"objects-unhighlighted"},{methodName:"showObjects",property:"visible",value:!0,eventName:"objects-shown"},{methodName:"hideObjects",property:"visible",value:!1,eventName:"objects-hidden"},{methodName:"xrayObjects",property:"xrayed",value:!0,eventName:"objects-xrayed"},{methodName:"unxrayObjects",property:"xrayed",value:!1,eventName:"objects-unxrayed"},{methodName:"setObjectsPickable",property:"pickable",value:!0,eventName:"objects-pickable"},{methodName:"setObjectsUnpickable",property:"pickable",value:!1,eventName:"objects-unpickable"}],i=e.reduce((o,n)=>(o[n.methodName]=function(a,s){r(this,n,s);const{property:l,value:c}=n,d=[];for(const u of a){const h=t.get(u);try{h[l]=c,d.push(h)}catch{console.warn(`object with id ${u} does not exist`)}}this.hub.emit(n.eventName,{objects:d,options:{...s}})},o[`${n.methodName}ByUuids`]=function(a,s){r(this,n,s);const{property:l,value:c}=n,d=a.map(u=>this.uuidsMap.get(u)).filter(u=>u?.length>0).flatMap(u=>u.map(h=>(h[l]=c,h)));this.hub.emit(n.eventName,{objects:d,options:{...s}})},o),{}),r=(o,n,a)=>{if(n.exlusiveIndex!==void 0&&a!=null&&a.exclusive){const s=e[n.exlusiveIndex],{property:l,value:c}=n;o[s.methodName](o.objects.filter(d=>d[l]===c).map(d=>d.id),{options:{...a}})}};return{...i,colorizeObjects(o,n,a){const s=[];for(const l of o)try{const c=t.get(l);c.color=n,s.push(c)}catch{console.warn(`object with id ${l} does not exist`)}this.hub.emit("objects-colorized",{objects:s,color:n,options:{...a}})},colorizeObjectsByUuids(o,n,a){const s=o.flatMap(l=>this.uuidsMap.get(l));this.colorizeObjects(s.map(l=>l.id),n,a)},get objects(){return Array.from(t.values())},get objectsIds(){return this.objects.map(o=>o.id)},get objectsUuids(){return Array.from(new Set(this.objects.map(o=>o.uuid)))},get objectsMap(){return t}}}const $1i=Object.freeze({EXA:10**18,PETA:10**15,TERA:10**12,GIGA:10**9,MEGA:10**6,KILO:10**3,HECTO:10**2,DECA:10,DECI:10**-1,CENTI:10**-2,MILLI:10**-3,MICRO:10**-6,NANO:10**-9,PICO:10**-12,FEMTO:10**-15,ATTO:10**-18});async function e0i(t,e,i){async function r(d,u){try{const h=(await t.apiClient.modelApi.getElement(t.cloudId,i,t.projectId,d)).attributes.properties.find(f=>f.definition.name===u);if(h){const f=h.definition.unit;if(f){const{name:A,prefix:p}=f;A!=="METRE"&&console.warn(`[Viewer] Elevation unit other that "METRE" are not supported. Unit "${A}" fallback to "METRE".`);const g=$1i[p];return g===void 0&&console.warn(`[Viewer] Elevation unit prefix "${p}" is unknown and will be ignored.`),(h.value??0)*(g??1)}else return h.value??0}}catch(h){console.warn(`[Models] Cannot get elevation of object with uuid ${d}: ${h}`)}return 0}const o=new Map,n=new Map,a=new Map;function s(){const d=new Set(e.map(u=>{var h,f;return(f=(h=u.object)==null?void 0:h.site)==null?void 0:f.uuid}).filter(Boolean));return Mp(d,10,(u,h)=>{r(u,"RefElevation").then(f=>{o.set(u,f),h()},h)})}function l(){const d=new Set(e.map(u=>{var h,f;return(f=(h=u.object)==null?void 0:h.building)==null?void 0:f.uuid}).filter(Boolean));return Mp(d,10,(u,h)=>{r(u,"ElevationOfRefHeight").then(f=>{n.set(u,f),h()},h)})}function c(){return Mp(e,10,(d,u)=>{r(d.uuid,"Elevation").then(h=>{a.set(d.uuid,h),u()},u)})}await Promise.all([s(),l(),c()]),e.forEach((d,u)=>{var h,f,A,p;const g=a.get(d.uuid)??u;d.elevation=g;const m=n.get((f=(h=d.object)==null?void 0:h.building)==null?void 0:f.uuid);if(m==null){const b=o.get((p=(A=d.object)==null?void 0:A.site)==null?void 0:p.uuid)??0;d.absoluteElevation=g+b}else d.absoluteElevation=g+m}),e.forEach((d,u)=>{var h,f;d.topElevation=((h=e[u+1])==null?void 0:h.elevation)??1/0,d.absoluteTopElevation=((f=e[u+1])==null?void 0:f.absoluteElevation)??1/0})}async function t0i(t,e,i){e.every(r=>r.bimdata_elevation!==null&&r.bimdata_elevation!==void 0)?(e.forEach(r=>{r.elevation=r.bimdata_elevation,r.absoluteElevation=r.bimdata_elevation}),e.forEach((r,o)=>{var n,a;r.topElevation=((n=e[o+1])==null?void 0:n.elevation)??1/0,r.absoluteTopElevation=((a=e[o+1])==null?void 0:a.absoluteElevation)??1/0})):await e0i(t,e,i)}class e_{constructor(e){const{archived:i,binary_2d_file:r,children:o,created_at:n,creator:a,document:s,document_id:l,errors:c,gltf_file:d,id:u,layout_name:h,map_file:f,name:A,north_vector:p,page_number:g,parent_id:m,preview_file:b,project_id:y,recommanded_2d_angle:v,size_ratio:x,source:k,status:B,structure_file:M,systems_file:P,transform:S,type:I,updated_at:L,version:_,viewer_360_file:U,warnings:z,world_position:N,xkt_file:W,xkt_files:J}=e;this.id=u,this.name=A,this.type=I,this.archived=i,this.binary_2d_file=r,this.children=o?.map(te=>new e_(te))??[],this.created_at=n,this.creator=a,this.document=s,this.document_id=l,this.errors=c,this.gltf_file=d,this.map_file=f,this.north_vector=p,this.page_number=g,this.parent_id=m,this.preview_file=b,this.project_id=y,this.recommanded_2d_angle=v,this.size_ratio=x,this.source=k,this.status=B,this.structure_file=M,this.systems_file=P,this.transform=S,this.updated_at=L,this.version=_,this.viewer_360_file=U,this.warnings=z,this.world_position=N,this.xkt_file=W,this.xkt_files=J,this.layout_name=h}}class GR{constructor(e,i,r,o){this.model=i,this.storey=r,this.index=o,this.key=`${r.key}-${e.plan.id}-${o}`,this.translation_x=e.translation_x??0,this.translation_y=e.translation_y??0,this.rotate_z=e.rotate_z??0,this.scale=e.scale??1,this.opacity=e.opacity??1,this.plan=e.plan,this.plan.transform={translate:[this.translation_x,this.translation_y],rotate:this.rotate_z,scale:this.scale,opacity:this.opacity}}}class i0i{constructor(e,i){this.model=i;const{name:r,uuid:o,plans:n,plans_unreachable_count:a,bimdata_elevation:s}=e;this.name=r,this.uuid=o,this.bimdata_elevation=s,this.key=`${i.id}-${this.uuid}`,this.plans_unreachable_count=a,this.plans=n.map((l,c)=>new GR(l,i,this,c)),this.object=i.uuids.get(this.uuid),this.objects=null,this.elevation=null,this.absoluteElevation=null,this.topElevation=null,this.absoluteTopElevation=null}get uuids(){return new Map([...this.objects.values()].map(e=>[e.uuid,e]))}}class t_ extends aP{constructor(e,i){super(e,i,"zone");const{id:r,uuid:o,name:n,created_at:a,updated_at:s,parent_id:l,order:c,zones:d=[],spaces:u=[],color:h,storey_uuid:f}=e;this.id=r,this.uuid=o,this.name=n,this.created_at=a,this.updated_at=s,this.parent_id=l,this.order=c,this.zones=d.map(A=>new t_(A,i)),this.spaces=u,this.color=h,this.storey_uuid=f}getContainedSpaces(){const e=Array.from(this.spaces);for(const i of this.zones)e.push(...i.getContainedSpaces());return e}get area(){return this.getContainedSpaces().filter(e=>e.geometry).reduce((e,i)=>e+r0i(i.geometry),0)}get perimeter(){return this.getContainedSpaces().filter(e=>e.geometry).reduce((e,i)=>e+o0i(i.geometry),0)}}function r0i(t){let e=0;const i=t.length;for(let r=0;r<i;r++){const o=(r+1)%i;e+=t[r].x*t[o].y,e-=t[o].x*t[r].y}return Math.abs(e)/2}function o0i(t){let e=0;const i=t.length;for(let r=0;r<i;r++){const o=(r+1)%i;e+=Math.sqrt(Math.pow(t[o].x-t[r].x,2)+Math.pow(t[o].y-t[r].y,2))}return e}class n0i extends e_{constructor(e,i,{structure:r,zones:o,systems:n,storeys:a}={}){var s,l;if(super(i),this._stateObjectMap=e,this.uuids=new Map,r){const u=kG(r,this,e),h=n1t(u);this.structure=u,this.objects=h,h.forEach(f=>{f.uuid&&this.uuids.set(f.uuid,f)})}else this.structure=null,this.objects=[];this.zones=[],this.setZones(o??[]),n?.forEach(u=>{const h=new aP(u,this,"system");this.uuids.set(h.uuid,h),e.set(h.id,h),this.objects.unshift(h)}),this.storeys=a?.map(u=>new i0i(u,this)).sort($l("order",!1))??[];const c=new Map(this.storeys.map(u=>[u.uuid,new Set])),d=this.type==="DWG"?"layout":"storey";for(const u of this.objects)u.type!==d&&c.has((s=u[d])==null?void 0:s.uuid)&&c.get((l=u[d])==null?void 0:l.uuid).add(u);for(const u of this.storeys){const h=c.get(u.uuid);u.objects=h?[...h.values()]:[]}this.objects.forEach(u=>{var h,f;u.parent=this.uuids.get((h=u.parent)==null?void 0:h.uuid),u.children=(f=u.children)==null?void 0:f.map(A=>this.uuids.get(A.uuid)).filter(Boolean)})}setZones(e=[]){this.zones.forEach(i=>{this._stateObjectMap.delete(i.id),this.uuids.delete(i.uuid),this.objects.splice(this.objects.indexOf(i),1)}),this.zones=e.map(i=>{const r=new t_(i,this);return this._stateObjectMap.set(r.id,r),this.uuids.set(r.uuid,r),this.objects.unshift(r),r})}}const a0i=(t,e,i)=>{const{api:r}=i;async function o(n,a={}){if(typeof n=="string"&&(console.warn(`[State] 'loadModel' called with id ${n} as string and parsed as integer.`),n=parseInt(n)),t.get(n))return console.warn(`[State] 'loadModel' called with id ${n}}, model already loaded.`),t.get(n);const s=[r.apiClient.modelApi.getZones(r.cloudId,n,r.projectId)];let l;a.pdfPageModel?l=a.pdfPageModel:(l=await r.getModel(n),s.push(r.apiClient.modelApi.getSystems(r.cloudId,n,r.projectId)),s.push(r.getStoreys(n)),l.parent_id&&!t.get(l.parent_id)&&await o(l.parent_id),l.structure_file&&s.push(r.getModelStructure(l)));const[c,d=[],u=[],h]=await Promise.all(s),f=new n0i(e,l,{structure:h,zones:c,systems:d,storeys:u});return await t0i(r,f.storeys,f.id),t.set(n,f),f}return{get models(){return Array.from(t.values())},get ifcs(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the models instead of ifcs."),Array.from(t.values()).filter(n=>!n.type||n.type==="IFC")},get modelsMap(){return t},get ifcsMap(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the modelsMap instead of ifcsMap."),new Map([...t].filter(([,n])=>!n.type||n.type==="IFC"))},async loadModels(n,a){const s=await Promise.all(n.map(l=>o(l,a)));if(s.length>0){const l=s.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-loaded",{ifcs:l}),this.hub.emit("models-loaded",{models:s}),i.globalContext.hub.emit("models-loaded",{models:s}),this.hub.emit("objects-added",{objects:s.flatMap(c=>c.objects)})}return s},loadIfcs(n){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the loadModels method instead of loadIfcs."),this.loadModels(n)},unloadModels(n){const a=[],s=[];if(n.forEach(l=>{const c=t.get(l);c?(t.delete(l),c.objects.map(d=>(s.push(d),d.id)).forEach(d=>e.delete(d)),a.push(c)):console.warn(`[State] Cannot unload model with id ${l} because it is not loaded.`)}),s.length>0&&this.hub.emit("objects-removed",{objects:s}),a.length>0){const l=a.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-unloaded",{ifcs:l}),this.hub.emit("models-unloaded",{models:a})}return a},unloadIfcs(n){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the unloadModels method instead of unloadIfcs."),this.unloadModels(n)},getStoreyFromAbsoluteElevation(n,a){var s;if(!n.storeys)return null;for(let l=0;l<n.storeys.length;l++)if(a>=n.storeys[l].absoluteElevation&&a<(((s=n.storeys[l+1])==null?void 0:s.absoluteElevation)??1/0))return n.storeys[l];return n.storeys[0]}}};function s0i(t){return{async createPlan(e,i,r,o){const n=await t.api.createStoreyPlan(e.id,i.uuid,r.id);await t.api.updatePlanPositioning(e.id,i.uuid,n.id,o);const a=new GR({...o,plan:n},e,i,e.storeys.length);return i.plans.push(a),this.hub.emit("plan-created",{plan:a}),a},async updatePlan(e,i=null){const r=await t.api.updatePlanPositioning(e.model.id,e.storey.uuid,e.plan.id,e);return Object.assign(e,new GR({...r,plan:e.plan},e.model,e.storey,e.index)),this.hub.emit("plan-updated",{plan:e,prevPlan:i}),e},async deletePlan(e){await t.api.deleteStoreyPlan(e.model.id,e.storey.uuid,e.plan.id),e.storey.plans=e.storey.plans.filter(i=>i.key!==e.key),this.hub.emit("plan-deleted",{plan:e})}}}const l0i=(t,e)=>{const i={getObjectsByUuids(r){return r.flatMap(o=>this.uuidsMap.get(o))},getObject(r){return console.warn("[BIMData Viewer] DEPRECATED - State - `getObject` is deprecated, use `objectsMap.get` instead."),e.get(r)},getIfc(r){return console.warn("[BIMData Viewer] DEPRECATED - State - `getIfc` is deprecated, use `modelsMap.get` instead."),t.get(r)},get colorizedObjects(){return Array.from(e.values()).filter(r=>!!r.color)},get colorizedObjectsIds(){return this.colorizedObjects.map(r=>r.id)},get colorizedObjectsUuids(){return Array.from(new Set(this.colorizedObjects.map(r=>r.uuid)))},getObjectsOfType(r){return Array.from(e.values()).filter(o=>o.type===r)},getTypesOf(r){typeof r.map>"u"&&(r=[...r]);const o=new Set;return r.forEach(n=>{const a=e.get(n);a&&a.type&&o.add(a.type)}),Array.from(o).sort()},getObjectsWithTheSameTypeAs(r){const o=this.getTypesOf(r);return[...e.values()].filter(n=>o.includes(n.type))}};return c0i.forEach(r=>{Object.defineProperty(i,r.name,{get(){return Array.from(e.values()).filter(o=>o[r.property]===r.value).map(o=>Object.freeze(Object.defineProperties({},Object.getOwnPropertyDescriptors(o))))}}),Object.defineProperty(i,`${r.name}Ids`,{get(){return this[r.name].map(d0i)}}),Object.defineProperty(i,`${r.name}Uuids`,{get(){return Array.from(new Set(this[r.name].map(u0i)))}})}),i},c0i=[{name:"selectedObjects",property:"selected",value:!0},{name:"deselectedObjects",property:"selected",value:!1},{name:"highlightedObjects",property:"highlighted",value:!0},{name:"unhighlightedObjects",property:"highlighted",value:!1},{name:"visibleObjects",property:"visible",value:!0},{name:"unvisibleObjects",property:"visible",value:!1},{name:"xrayedObjects",property:"xrayed",value:!0},{name:"unxrayedObjects",property:"xrayed",value:!1},{name:"pickableObjects",property:"pickable",value:!0},{name:"unpickableObjects",property:"pickable",value:!1}];function d0i(t){return t.id}function u0i(t){return t.uuid}function QR(t,e,i){var r;return(r=t.mixins)!=null&&r.some(o=>o[i])||(t.mixins?t.mixins[t.mixins.length]=e:t.mixins=[e]),t}const Y1e=Symbol("annotation-mixin-id");function h0i(){let t=0;const e=new Map;return{get annotations(){return Array.from(e.values())},addAnnotation({x:i=0,y:r=0,z:o=0,draggable:n=!0,grabberSelector:a,component:s={render(){}},props:l={}}={},c){const d=this,u=t++,h={get id(){return u},get x(){return i},set x(f){i=f,d.hub.emit("annotation-updated",{annotation:h})},get y(){return r},set y(f){r=f,d.hub.emit("annotation-updated",{annotation:h})},get z(){return o},set z(f){o=f,d.hub.emit("annotation-updated",{annotation:h})},draggable:n,grabberSelector:a,component:s,props:l};return QR(h.component,{[Y1e]:!0,inject:["$viewer"]},Y1e),e.set(u,h),this.hub.emit("annotation-added",{annotation:h,options:c}),h},removeAnnotation(i,r){return e.has(i.id)?(e.delete(i.id),this.hub.emit("annotation-removed",{annotation:i,options:r}),!0):!1},clearAnnotations(){e.forEach(i=>this.removeAnnotation(i))}}}function p0i(t){const e=new Map,i=new Map,r={uuidsMap:{get(o){const n=[];return e.forEach(a=>{const s=a.uuids.get(o);s&&n.push(s)}),n}},hub:new dd};return[a0i(e,i,t),Y1i(i),s0i(t),h0i(),l0i(e,i)].forEach(o=>Object.defineProperties(r,Object.getOwnPropertyDescriptors(o))),r}function f0i(t){if(t?.type==="container")v0i(t);else if(t?.type==="zone")g0i(t);else throw new TypeError("AREAS CORE - Layout first child must be a zone or a container.");return A0i(t),t}function A0i(t){let e=new Set,i=new Set;for(let r of t)if(r.id!=null)if(r.type==="zone"){if(e.has(r.id))throw new Error("AREAS CORE - Cannot add the same zone id twice.");e.add(r.id)}else{if(i.has(r.id))throw new Error("AREAS CORE - Cannot add the same container id twice.");i.add(r.id)}}function m0i(t){$1e(t.layout,"zone",t.zoneIdManager),$1e(t.layout,"container",t.containerIdManager)}function $1e(t,e,i){let r=[...t].filter(o=>o.type===e);r.map(o=>o.id).filter(o=>o!=null).forEach(o=>i.add(o)),r.filter(o=>o.id===void 0||o.id===null).forEach(o=>{o.id=i.nextId()})}function g0i(t){if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid zone. Zone must be an object.");if(t?.type!=="zone")throw new TypeError('AREAS CORE - Invalid zone. A zone must be of type "zone".');return t}function v0i(t){var e,i;if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid container. A container must be an object.");if(t?.type!=="container")throw new TypeError('AREAS CORE - Invalid container. Container must be of type "container".');if(t!=null&&t.direction&&!["row","column"].includes(t.direction))throw new TypeError('AREAS CORE - Invalid container. Container direction must be of type "row" or "column".');if(((e=t?.children)==null?void 0:e.length)<2)throw new TypeError("AREAS CORE - Invalid container. Container children must have at least 2 children.");if(((i=t?.children)==null?void 0:i.reduce((r,o)=>r+o?.ratio,0))!==100)throw new TypeError("AREAS CORE - Invalid container. The sum of container children ratios must be equal to 100.");return t}function e0e(t){var e;return(e=t.children)!=null&&e.length&&t.children.forEach(i=>{Object.defineProperty(i,Symbol.iterator,{value:e0e(i),configurable:!0})}),function*(){var i;if(yield t,(i=t.children)==null?void 0:i.length)for(let r of t.children)yield*r}}function Lm(t){return Object.defineProperty(t,Symbol.iterator,{value:e0e(t),configurable:!0}),t}function t0e(){let t=1,e=new Set;return{nextId(){for(;!this.isIdAvailable(t);)t++;return e.add(t),t},isIdAvailable(i){return!e.has(i)},add(i){return this.isIdAvailable(i)?(e.add(i),i):!1}}}function i0e(t){var e;if(!t)return;let i=Object.assign({},t);return((e=t.children)==null?void 0:e.length)>0&&(i.children=t.children.map(i0e)),i}function y0i(t){return e=>{let i=t.getZone(e);if(!i)return!1;let r=t.getParent(i);if(!r)throw new Error("AREAS CORE - Cannot delete root Zone");let o=r.children.indexOf(i);if(r.children.length>2){let n=r.children[o-1],a=r.children[o+1];o===0?a.ratio+=i.ratio:o===r.children.length-1?n.ratio+=i.ratio:(n.ratio+=Math.floor(i.ratio/2),a.ratio+=Math.ceil(i.ratio/2)),r.children=r.children.filter(s=>s.type!=="zone"||s.id!==e)}else{let n=r.children[o===1?0:1];n.ratio=r.ratio;let a=t.getParent(r);if(a){let s=a.children.indexOf(r);a.children.splice(s,1,n)}else t.layout=n}return!0}}var b0i=y0i;function w0i(t){return()=>r0e(t.layout,[t.layout])}function r0e(t,e=[]){var i;return(i=t.children)==null||i.forEach(r=>{e.push(r),r.type==="container"&&r0e(r,e)}),e}var C0i=w0i;function x0i(t){return e=>{if(!e)throw new TypeError("AREAS CORE - fail to get parent: container child is null or undefined");return t.layout.type==="zone"?null:o0e(t.layout,e)}}function o0e(t,e){for(let i of t.children){if(i===e)return t;if(i.type==="container"){let r=o0e(i,e);if(r)return r}}return null}var k0i=x0i;function M0i(t){return e=>t.layout.type==="zone"?t.layout.id===e?t.layout:null:n0e(t.layout,e)}function n0e(t,e){for(let i of t.children)if(i.type==="zone"){if(i.id===e)return i}else{let r=n0e(i,e);if(r)return r}return null}var P0i=M0i;function E0i(t){return(e,i)=>{if(typeof i!="number")throw new TypeError("AREAS CORE - resize value must be a number.");let r=t.getParent(e),o=r.children.findIndex(a=>a===e);if(o===-1)return!1;let n=r.children[o+1];if(n){let a=e.ratio+n.ratio,s=e.ratio+i;return s=s<0?0:s,s=s>a?a:s,e.ratio=s,n.ratio=a-s,!0}else return!1}}var B0i=E0i;function S0i(t){return(e,i=50,r="row",o=!0,n=null)=>{let a=t.getZone(e);if(!a)throw new Error(`AREAS CORE - fail to split zone ${e}: zone does not exist.`);if(typeof i!="number"||i<0||i>100)throw new TypeError(`AREAS CORE - fail to split zone: invalid ratio ${i}, ratio should be a number between 0 and 100.`);if(r!=="row"&&r!=="column")throw new TypeError(`AREAS CORE - fail to split zone: invalid direction ${r}, direction should be 'row' or 'column'.`);let s=t.getParent(a),l=Lm({id:t.zoneIdManager.nextId(),type:"zone",...n});if(s){let c=s.children.findIndex(d=>d===a);if(s.direction===r)o?(l.ratio=Math.floor(a.ratio*(100-i)/100),a.ratio=Math.ceil(a.ratio*i/100),s.children.splice(c,1,a,l)):(l.ratio=Math.floor(a.ratio*i/100),a.ratio=Math.ceil(a.ratio*(100-i)/100),s.children.splice(c,1,l,a));else{let d=Lm({id:t.containerIdManager.nextId(),type:"container",direction:r,ratio:a.ratio});o?(l.ratio=Math.floor(100-i),a.ratio=Math.ceil(i),d.children=[a,l]):(l.ratio=Math.floor(i),a.ratio=Math.ceil(100-i),d.children=[l,a]),s.children.splice(c,1,d)}}else{let c=Lm({id:t.containerIdManager.nextId(),type:"container",direction:r});o?(l.ratio=Math.floor(100-i),a.ratio=Math.ceil(i),c.children=[a,l]):(l.ratio=Math.floor(i),a.ratio=Math.ceil(100-i),c.children=[l,a]),t._layout=c}return l}}var I0i=S0i;function T0i(t){return(e=50,i="row",r=!0,o=null)=>{let n=t.layout;if(typeof e!="number"||e<0||e>100)throw new TypeError(`AREAS CORE - fail to split layout: invalid ratio ${e}, ratio should be a number between 0 and 100.`);if(i!=="row"&&i!=="column")throw new TypeError(`AREAS CORE - fail to split layout: invalid direction ${i}, direction should be 'row' or 'column'.`);let a=Lm({id:t.zoneIdManager.nextId(),type:"zone",...o}),s=Lm({id:t.containerIdManager.nextId(),type:"container",direction:i});return r?(a.ratio=Math.floor(100-e),n.ratio=Math.ceil(e),s.children=[n,a]):(a.ratio=Math.floor(e),n.ratio=Math.ceil(100-e),s.children=[a,n]),t._layout=s,a}}var L0i=T0i;function D0i(t){return(e,i)=>{let r=t.getZone(e),o=t.getZone(i);if(!r)throw new Error(`AREAS CORE - fail to swap zone ${e}: zone does not exist.`);if(!o)throw new Error(`AREAS CORE - fail to swap to zone ${i}: zone does not exist.`);let n=t.getParent(r),a=t.getParent(o),s=n.children.indexOf(r),l=a.children.indexOf(o),c=r.ratio,d=o.ratio;r.ratio=d,o.ratio=c,n.children[s]=o,a.children[l]=r}}var R0i=D0i;function _0i(t){let e={_layout:null,get layout(){return this._layout},set layout(i){i||(i={type:"zone"}),Lm(i),f0i(i),this._layout=i,m0i(e)},zoneIdManager:t0e(),containerIdManager:t0e()};return e.layout=t,e.deleteZone=b0i(e),e.getNodes=C0i(e),e.getParent=k0i(e),e.getZone=P0i(e),e.resize=B0i(e),e.splitZone=I0i(e),e.splitLayout=L0i(e),e.swapZones=R0i(e),e}var F0i=_0i;function a0e(t=1,e=0,i=100){return Math.min(Math.max(e,t),i)}function s0e(t,e){let i=t.getParent(e);if(i){let{width:r,height:o}=s0e(t,i),n=i.children.length-1;return i.direction==="column"?{width:r,height:Math.max(0,(o-n*t.separatorSize)*(e.ratio/100))}:{width:Math.max(0,(r-n*t.separatorSize)*(e.ratio/100)),height:o}}else return{width:t.width,height:t.height}}function l0e(t,e,i){let{width:r,height:o}=s0e(t,e),n=e.children.length-1;if(e.direction==="column"){let a=1-n*t.separatorSize/o;return{height:`${a0e(i.ratio*a,0,100)}%`,width:"100%"}}else{let a=1-n*t.separatorSize/r;return{height:"100%",width:`${a0e(i.ratio*a,0,100)}%`}}}function O0i(t,e){let i={ref:t.contentManager.getRef(e.id),id:`zone-${e.id}`,class:"areas-zone",style:{flexGrow:0,overflow:"hidden"},key:e.id},r=t.getParent(e);if(r){let{width:o,height:n}=l0e(t,r,e);i.style={width:o,height:n}}else i.style={height:"100%"};return t.vue.h("div",i)}var KR=O0i;function U0i(t,e,i){let{separatorSize:r,separatorDetectionMargin:o,separatorDetectionZIndex:n}=t,a=e.direction==="column",s={ref:`separator-${e.id}-${i+1}`,class:"areas-separator",style:{[a?"height":"width"]:`${r}px`,backgroundColor:"var(--areas-separator-color, black)",flexShrink:0,position:"relative"}},l=a?"ns-resize":"ew-resize",c=t.vue.h("div",{style:{position:"absolute",[a?"height":"width"]:`${o*2}px`,[a?"width":"height"]:"100%",[a?"top":"left"]:`${-o+r/2}px`,zIndex:n,cursor:l},onPointerdown:d=>N0i(t,e,i,d)});return t.vue.h("div",s,t.resizable?[c]:null)}function N0i(t,e,i,r){r.preventDefault(),r.stopPropagation();let o=r.currentTarget;o.setPointerCapture(r.pointerId);let n=s=>j0i(t,e,i,s),a=()=>{o.removeEventListener("pointermove",n)};o.addEventListener("pointermove",n),o.addEventListener("pointerup",a,{once:!0})}function j0i(t,e,i,r){let o=e.children[i],n=e.direction==="column"?"height":"width",{separatorDetectionMargin:a}=t,s=(e.direction==="column"?r.offsetY:r.offsetX)-a,l=t.root.$refs[`container-${e.id}`].getBoundingClientRect()[n],c=s/l*100;t.resize(o,c)}var V0i=U0i;function ZR(t,e){let i={ref:`container-${e.id}`,id:`container-${e.id}`,class:"areas-container",style:{height:"100%",display:"flex",flexDirection:e.direction}},r=t.getParent(e);if(r){let{width:a,height:s}=l0e(t,r,e);i.style.width=a,i.style.height=s}let o=e.children.length-1,n=e.children.map((a,s)=>s<=o-1?[a.type==="zone"?KR(t,a):ZR(t,a),V0i(t,e,s)]:a.type==="zone"?KR(t,a):ZR(t,a));return t.vue.h("div",i,[n])}var H0i=ZR;function z0i(t){let e=new Map,i=new Map,r=new Map;e.set("default",{component:{render(){return t.vue.h("div","Default component")}}});function o(n){return n&&!e.has(n)&&(console.warn(`[AREAS] Content with name ${n} is not registered, fallback to 'default'.`),n="default"),e.get(n)}return{registerContent(n,a){e.set(n,{name:n,component:a})},renderContent(n){return[...n].filter(a=>a.type==="zone").forEach(a=>{i.set(a.id,Object.assign({},o(a.content??"default"),{ref:t.vue.ref(null),options:{zoneId:a.id,...a.options,key:a.id},name:a.content??"default"}))}),t.vue.h("div",{style:{display:"none"}},[...i.values()].map(a=>t.vue.h(a.component,{...a.options,ref:a.ref})))},link(){[...r.entries()].forEach(([n,a])=>{let s=i.get(n);if(!s)return;let l=s.ref.value.$el,c=a.value;for(;c.lastChild;)c.removeChild(c.lastChild);c.appendChild(l)})},getElementZoneId(n){var a;for(let[s,l]of[...r.entries()])if((a=l.value)!=null&&a.contains(n))return s;return null},getRef(n){let a=r.get(n);return a||(a=t.vue.ref(null),r.set(n,a)),a},deleteZoneContent(n){i.delete(n),r.delete(n)},clean(){i.clear(),r.clear()}}}var q0i=z0i;function G0i(t,e,i){let r=e.ref(0),o=e.ref(0),{separatorSize:n=2,separatorDetectionMargin:a=10,separatorDetectionZIndex:s=2,resizable:l=!0}=i??{},c=e.ref(!!l),d={vue:e,core:t,zones:e.ref([]),get resizable(){return c.value},set resizable(h){c.value=h},get width(){return r.value},get height(){return o.value},get separatorSize(){return n},get separatorDetectionMargin(){return a},get separatorDetectionZIndex(){return s},getParent(h){return this.core.getParent(h)},async coreLayoutSync(h=!1){!this.layout||(h?this.layout.value=this.core.layout:e.triggerRef(this.layout),await e.nextTick(),this.contentManager.link())},resize(h,f){this.core.resize(h,f),e.triggerRef(this.layout)},async split(h,f,A,p,g){let m=this.core.splitZone(h,f,A,p,g);return await this.coreLayoutSync(this.zones.value.length===1),m},async splitLayout(h,f,A,p){let g=this.core.splitLayout(h,f,A,p);return await this.coreLayoutSync(!0),g},async delete(h){let f=!1,A=this.core.getZone(h);if(A){let g=this.core.getParent(A);f=g?.children.length===2&&this.core.getParent(g)===null}this.contentManager.deleteZoneContent(h);let p=this.core.deleteZone(h);return await this.coreLayoutSync(f),p},async swap(h,f){let A=this.core.swapZones(h,f);return await this.coreLayoutSync(),A},destroy(){var h;(h=this.resizeObserver)==null||h.disconnect()},root:null,get component(){return this.layout=e.shallowRef(t.layout),e.watch(this.layout,h=>{this.zones.value=[...h].filter(f=>f.type==="zone")},{immediate:!0}),{created(){d.root=this},mounted(){let{width:h,height:f}=this.$el.getBoundingClientRect();r.value=h,o.value=f,d.resizeObserver=new ResizeObserver(A=>A.forEach(p=>{let{width:g,height:m}=p.target.getBoundingClientRect();r.value=g,o.value=m})),d.resizeObserver.observe(this.$el),d.contentManager.link()},render(){return e.h("div",{class:"areas-root"},[d.contentManager.renderContent(d.layout.value),u(d.layout.value)])}}}};d.contentManager=q0i(d);function u(h){return h.type==="zone"?KR(d,h):H0i(d,h)}return d}var Q0i=G0i;function K0i(t,e=null,i=null){let r=F0i(e),o=Q0i(r,t,i);return Object.freeze({core:r,renderer:o,destroy(){o.destroy()},swap(n,a){return this.renderer.swap(n,a)},split(n,a,s,l,c){return this.renderer.split(n,a,s,l,c)},splitLayout(n,a,s,l){return this.renderer.splitLayout(n,a,s,l)},delete(n){return this.renderer.delete(n)},registerContent(n,a){this.renderer.contentManager.registerContent(n,a)},getElementZoneId(n){return this.renderer.contentManager.getElementZoneId(n)},get layout(){return i0e(this.core.layout)},set layout(n){this.core.layout=n,this.renderer.contentManager.clean(),this.renderer.coreLayoutSync(!0)},get component(){return this.renderer.component},get resizable(){return this.renderer.resizable},set resizable(n){this.renderer.resizable=n}})}var Z0i=K0i;function W0i(t){return Array.isArray(t?.children)?d0e(t):c0e(t)}function c0e(t,e=100){return{type:"zone",ratio:e,options:typeof t=="string"?{windowName:t}:t}}function d0e(t,e=100){return{type:"container",ratio:e,direction:t.direction,children:t.children.map((i,r)=>Array.isArray(i?.children)?d0e(i,t.ratios[r]):c0e(i,t.ratios[r]))}}function J0i(t,e,i=!0){return t.type==="zone"?u0e(t,e,i):h0e(t,e,i)}function u0e(t,e,i=!0){var r,o;const n=e.get(t.id);if(!n)throw new Error(`[Layout parser] Local context with id ${t.id} not found`);return{windowName:((r=n.window)==null?void 0:r.name)??null,windowState:{modelIds:n.loadedModelIds,viewpoint:(i||void 0)&&n.viewer&&n.getViewpoint(),storey:(o=n.selectedStorey)==null?void 0:o.key}}}function h0e(t,e,i=!0){return{direction:t.direction,ratios:t.children.map(r=>r.ratio),children:t.children.map(r=>r.type==="zone"?u0e(r,e,i):h0e(r,e,i))}}const X0i={props:{text:{type:String,default:""}},emits:["close"]},Y0i={class:"success-modal"},$0i={class:"success-modal__close"},efi={class:"success-modal__title"},tfi={class:"success-modal__title--icon"},ifi={class:"success-modal__text"},rfi={class:"success-modal__button"};function ofi(t,e,i,r,o,n){const a=T("BIMDataIconClose"),s=T("BIMDataPieSpinner"),l=T("BIMDataIconSuccess"),c=T("BIMDataButton");return E(),F("div",Y0i,[C("div",$0i,[D(s,{delay:5,onStop:e[1]||(e[1]=d=>t.$emit("close"))},{default:V(()=>[D(a,{class:"icon-close",size:"xxxs",onClick:e[0]||(e[0]=d=>t.$emit("close"))})]),_:1})]),C("div",efi,[C("h2",null,Q(t.$t("modal.success")),1),C("span",tfi,[D(l,{class:"fill-primary"})])]),C("div",ifi,Q(i.text||t.$t("modal.success")),1),C("div",rfi,[D(c,{class:"bimdata-btn__fill bimdata-btn__fill--primary bimdata-btn__radius",onClick:e[2]||(e[2]=d=>t.$emit("close"))},{default:V(()=>[it(Q(t.$t("modal.button")),1)]),_:1})])])}const nfi=H(X0i,[["render",ofi],["__scopeId","data-v-79d3a107"]]),p0e=Symbol("modal-mixin-id"),afi={inject:["$viewer"],data(){return{modals:[]}},computed:{notBlocking(){var t;return((t=this.modal)==null?void 0:t.blocking)===!1},modal(){return this.modals.length?this.modals[0]:null},positionning(){var t;if(!((t=this.modal)!=null&&t.positions))return;const e=this.modal.positions;return{top:e.top?`${e.top}`:"0",right:e.right?`${e.right}`:"0",bottom:e.bottom?`${e.bottom} `:"0",left:e.left?`${e.left}`:"0"}}},created(){document.addEventListener("keydown",e=>{this.notBlocking&&e.key==="Escape"&&this.clearModal()});const t=this;this.mixin={[p0e]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=t.$plugin,this.$viewer=t.$viewer)}}},methods:{pushModal(t,e={},{display:i="full",positions:r,blocking:o=!0,exclusive:n=!1}={}){n&&(this.modals=[]),this.inject$viewerRecursively(t),this.modals.push({component:ca(t),props:e,display:i,positions:r,blocking:o})},clearModal(){this.modals.shift()},clearModals(){this.modals=[]},inject$viewerRecursively(t){QR(t,this.mixin,p0e),t.components&&Object.values(t.components).forEach(e=>this.inject$viewerRecursively(e))},getModal(t){const e={success:nfi};if(Object.keys(e).includes(t))return e[t];console.warn(`Modal name unknown : ${t}`)}}},sfi={class:"bimdata-modal-manager__content"};function lfi(t,e,i,r,o,n){const a=ui("click-away");return n.modal?(E(),F("div",{key:0,class:ae(["bimdata-modal-manager",{full:n.modal.display==="full",banner:n.modal.display==="banner"}]),style:se(n.positionning),onClick:e[0]||(e[0]=ft(s=>n.notBlocking?n.clearModal():null,["self"]))},[At((E(),F("div",sfi,[(E(),Z(br(n.modal.component),gn(n.modal.props,{onClose:n.clearModal}),null,16,["onClose"]))])),[[a,()=>n.notBlocking?n.clearModal():null,"mousedown"]])],6)):re("",!0)}const f0e=H(afi,[["render",lfi],["__scopeId","data-v-2c579fcd"]]),cfi={props:{plugin:{type:Object,required:!0}},setup(t){const e=mt("$viewer"),{plugin:i}=t;hr("$plugin",i),A0e(i.component,e.localContext,i)}},WR=Symbol("plugin-mixin-id");function A0e(t,e,i,r=!0){var o;if((o=t.mixins)!=null&&o.some(a=>a[WR]))return;const n={[WR]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=i,this.$viewer=e.$viewer),Object.defineProperties(this,{$isOpen:{get(){return i.isOpen}},$loading:{get(){return i.loading}},$shown:{get(){return i.shown}}}),r&&(i.componentInstance=this,i.isViewer&&(e.viewer=this))},methods:{$open(...a){i.open(...a)},$close(...a){i.close(...a)},$show(){i.show()},$hide(){i.hide()}}};r&&(n.props={plugin:{type:Object,required:!0}},n.provide={pluginInstance:i},n.created=function(){e.hub.emit("plugin-created",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-created",{name:i.name,plugin:this})},n.unmounted=function(){e.hub.emit("plugin-destroyed",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-destroyed",{name:i.name,plugin:this})}),QR(t,n,WR),t.components&&Object.values(t.components).forEach(a=>A0e(a,e,i,!1))}function dfi(t,e,i,r,o,n){return At((E(),Z(br(i.plugin.component),{class:"plugin-component-instance-container",plugin:i.plugin},null,8,["plugin"])),[[zt,i.plugin.shown]])}const h4=H(cfi,[["render",dfi]]),ufi={components:{PluginComponentInstanceContainer:h4},props:{plugin:{type:Object,required:!0,validator(t){return t.sidePanel.width?typeof t.sidePanel.width=="number":t.sidePanel}}}};function hfi(t,e,i,r,o,n){const a=T("PluginComponentInstanceContainer");return At((E(),F("div",{class:"side-panel",style:se(`
|
|
5518
5518
|
--side-panel-width: ${i.plugin.sidePanelWidth}px;
|
|
5519
5519
|
${i.plugin.sidePanel.position==="left"?"border-right":"border-left"}: 1px solid var(--color-silver);
|
|
5520
|
-
`)},[D(a,{plugin:i.plugin,style:{height:"100%"}},null,8,["plugin"])],4)),[[zt,i.plugin.shown]])}const pfi=H(ufi,[["render",hfi],["__scopeId","data-v-ced3f116"]]),ffi={props:{name:{type:String,default:"box"},content:{type:String,default:""},width:{type:[Number,String],default:20},height:{type:[Number,String],default:20},color:{type:String,default:"currentColor"},x:{type:[Number,String],default:20},y:{type:[Number,String],default:20}},computed:{viewBox(){return`0 0 ${this.x} ${this.y}`}}},Afi=["width","height","viewBox","aria-labelledby","fill"],mfi=["innerHTML"];function gfi(t,e,i,r,o,n){return E(),F("svg",{xmlns:"http://www.w3.org/2000/svg",width:i.width,height:i.height,viewBox:n.viewBox,"aria-labelledby":i.name,fill:i.color,role:"presentation"},[C("g",{innerHTML:i.content},null,8,mfi)],8,Afi)}const vfi=H(ffi,[["render",gfi]]),yfi=["src"],bfi={__name:"PluginIcon",props:{plugin:{type:Object,required:!0},isOpen:{type:Boolean,required:!0}},setup(t){const e=t,i=ir(null);return qs(()=>{e.isOpen&&e.plugin.button.iconOpen?i.value=e.plugin.button.iconOpen:e.plugin.button.icon?i.value=e.plugin.button.icon:i.value={component:"BIMDataIcon",options:{name:"default",size:"m"}}}),(r,o)=>i.value.imgUri?(E(),F("img",{key:0,src:i.value.imgUri,style:{"max-width":"40px","max-height":"40px"}},null,8,yfi)):i.value.svgPath?(E(),Z(vfi,gn({key:1},i.value.options,{content:i.value.svgPath}),null,16,["content"])):i.value.component?(E(),Z(br(i.value.component),Da(gn({key:2},i.value.options)),null,16)):re("",!0)}},wfi={key:0,class:"tools-menu__info"},Cfi={class:"window"},xfi={class:"plugins-as-button__content"},kfi={class:"plugins-as-button__panel__header"},Mfi={class:"panel__content"},Pfi={__name:"PluginAsButton",props:{plugin:{type:Object,required:!0},active:{type:Boolean,required:!0},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},emits:["focus"],setup(t,{emit:e}){const i=e,r=mt("$viewer"),{localContext:o}=r,n=t,{active:a}=s5(n),s=n.plugin,l=Xe(()=>s.isOpen),c=Xe(()=>s.buttonText),d=Xe(()=>n.active?2:1);function u(){l.value&&i("focus")}function h(){l.value?s.close():s.open()}function f(){mr(()=>{l.value&&!s.button.keepOpen&&!s.loading&&s.close()})}return(A,p)=>{const g=T("BIMDataSpinner"),m=T("BIMDataButton"),b=T("BIMDataTooltip"),y=ui("click-away");return At((E(),F("div",{class:"plugins-as-button",style:se({zIndex:d.value,position:wt(s).button.content==="simple"?"relative":null})},[C("div",{class:"tools-menu m-b-12",onMouseenter:u},[D(b,{ref:"tooltip",class:ae({open:l.value}),text:wt(s).button.tooltip?A.$t(wt(s).button.tooltip):wt(s).name,position:t.position==="left"?"right":"left",disabled:l.value},{default:V(()=>[D(m,{width:"45px",height:"45px",fill:"",icon:"",color:"default",class:ae({focus:wt(a)}),"data-test":`plugin-${wt(s).name}`,onClick:p[0]||(p[0]=v=>h())},{default:V(()=>[c.value?(E(),F("span",wfi,Q(wt(Flt)(c.value,wt(s).button.truncateSize||4)),1)):re("",!0),wt(s).loading?(E(),Z(g,{key:1})):(E(),Z(bfi,{key:2,plugin:wt(s),"is-open":l.value},null,8,["plugin","is-open"]))]),_:1},8,["class","data-test"])]),_:1},8,["class","text","position","disabled"])],32),C("div",Cfi,[D(Ai,{name:`slide-fade-${t.position}`},{default:V(()=>[At(C("span",xfi,[wt(s).button.content==="panel"?(E(),F("div",{key:0,class:ae(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__panel`])},[C("div",kfi,Q(wt(s).button.tooltip?A.$t(wt(s).button.tooltip):wt(s).name),1),C("div",Mfi,[D(h4,{plugin:wt(s)},null,8,["plugin"])])],2)):(E(),Z(h4,{key:1,class:ae(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__${wt(s).button.content||"free"}`]),plugin:wt(s)},null,8,["class","plugin"]))],512),[[zt,l.value]])]),_:1},8,["name"])])],4)),[[y,f]])}}},Efi=H(Pfi,[["__scopeId","data-v-72f2ce01"]]),Bfi={__name:"SideColumn",props:{plugins:{type:Array,default:()=>[]},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},setup(t){const e=t,i=ir(null);return(r,o)=>(E(),F("div",{class:ae(["side-column",`side-column--${e.position}`])},[(E(!0),F(ct,null,Et(e.plugins,n=>(E(),F(ct,{key:n.name},[n.button.content==="none"?(E(),Z(h4,{key:0,plugin:n,onMouseenter:a=>i.value=n},null,8,["plugin","onMouseenter"])):At((E(),Z(Efi,{key:1,plugin:n,position:e.position,active:i.value===n,onFocus:a=>i.value=n},null,8,["plugin","position","active","onFocus"])),[[zt,n.shown]])],64))),128))],2))}},Sfi=H(Bfi,[["__scopeId","data-v-f11ec0c8"]]),Ifi={},Tfi={width:"23",height:"22",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Lfi(t,e){return E(),F("svg",Tfi,e[0]||(e[0]=[C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M-1.39472e-07 10.1037L3.19075 13.2944L6.3815 10.1037L4.25434 10.1037L4.25434 5.31755C4.25434 5.17754 4.30509 4.94384 4.42614 4.77572C4.47895 4.70237 4.54133 4.64599 4.62063 4.60508C4.69908 4.56461 4.83161 4.51987 5.05202 4.51987L11.1676 4.51987L11.1676 2.3927L5.05202 2.3927C3.96087 2.3927 3.17625 2.87117 2.69987 3.5328C2.26254 4.14021 2.12717 4.83714 2.12717 5.31755L2.12717 10.1037L-1.39472e-07 10.1037Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M23 11.9657L19.8092 8.7749L16.6185 11.9657L18.7457 11.9657L18.7457 16.7518C18.7457 16.8918 18.6949 17.1255 18.5739 17.2936C18.521 17.367 18.4587 17.4233 18.3794 17.4643C18.3009 17.5047 18.1684 17.5495 17.948 17.5495L11.8324 17.5495L11.8324 19.6766L17.948 19.6766C19.0391 19.6766 19.8238 19.1982 20.3001 18.5365C20.7375 17.9291 20.8728 17.2322 20.8728 16.7518L20.8728 11.9657L23 11.9657Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 15.6879C0 14.9536 0.595228 14.3584 1.32948 14.3584H8.24277C8.97703 14.3584 9.57225 14.9536 9.57225 15.6879V19.9422C9.57225 20.6765 8.97703 21.2717 8.24277 21.2717H1.32948C0.595228 21.2717 0 20.6765 0 19.9422V15.6879ZM1.59538 15.9538V19.6763H7.97688V15.9538H1.59538Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.2948 1.32948C13.2948 0.595229 13.89 0 14.6243 0H21.5376C22.2718 0 22.8671 0.595228 22.8671 1.32948V5.58382C22.8671 6.31807 22.2718 6.91329 21.5376 6.91329H14.6243C13.89 6.91329 13.2948 6.31807 13.2948 5.58382V1.32948ZM14.8902 1.59538V5.31792H21.2717V1.59538H14.8902Z",fill:"currentColor"},null,-1)]))}const Dfi=H(Ifi,[["render",Lfi]]),Rfi={props:{color:{type:String,default:"currentColor"},size:{type:Number,default:1}}},_fi=["width","height"],Ffi=["fill"];function Ofi(t,e,i,r,o,n){return E(),F("svg",{width:23*i.size,height:28*i.size,viewBox:"0 0 23 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.81498 1.39408C7.83109 1.39042 7.84845 1.38833 7.86714 1.38833H8.34975C8.73313 1.38833 9.04391 1.07754 9.04391 0.694167C9.04391 0.310789 8.73313 0 8.34975 0H7.86714C7.74418 0 7.62361 0.0138267 7.5072 0.0402917C7.18421 0.113723 6.96548 0.401367 6.96677 0.719361C6.64878 0.718068 6.36114 0.936792 6.28771 1.25978C6.26124 1.37619 6.24741 1.49677 6.24741 1.61972V2.10233C6.24741 2.48571 6.5582 2.7965 6.94158 2.7965C7.32496 2.7965 7.63575 2.48571 7.63575 2.10233V1.61972C7.63575 1.60103 7.63783 1.58368 7.64149 1.56756C7.65339 1.51525 7.65903 1.46297 7.65892 1.4115C7.71038 1.41162 7.76266 1.40597 7.81498 1.39408ZM10.7628 0C10.3794 0 10.0686 0.310789 10.0686 0.694167C10.0686 1.07754 10.3794 1.38833 10.7628 1.38833H11.728C12.1114 1.38833 12.4222 1.07754 12.4222 0.694167C12.4222 0.310789 12.1114 0 11.728 0H10.7628ZM14.1411 0C13.7577 0 13.4469 0.310789 13.4469 0.694167C13.4469 1.07754 13.7577 1.38833 14.1411 1.38833H15.1063C15.4897 1.38833 15.8005 1.07754 15.8005 0.694167C15.8005 0.310789 15.4897 0 15.1063 0H14.1411ZM17.5194 0C17.136 0 16.8252 0.310789 16.8252 0.694167C16.8252 1.07754 17.136 1.38833 17.5194 1.38833H18.4846C18.868 1.38833 19.1788 1.07754 19.1788 0.694167C19.1788 0.310789 18.868 0 18.4846 0H17.5194ZM20.8976 0C20.5143 0 20.2035 0.310789 20.2035 0.694167C20.2035 1.07754 20.5143 1.38833 20.8976 1.38833H21.3803C21.3989 1.38833 21.4163 1.39042 21.4324 1.39408C21.4847 1.40597 21.537 1.41162 21.5885 1.4115C21.5884 1.46297 21.594 1.51525 21.6059 1.56756C21.6096 1.58368 21.6116 1.60103 21.6116 1.61972V2.10233C21.6116 2.48571 21.9224 2.7965 22.3058 2.7965C22.6892 2.7965 23 2.48571 23 2.10233V1.61972C23 1.49677 22.9861 1.37619 22.9597 1.25978C22.8863 0.936791 22.5986 0.718068 22.2806 0.719361C22.2819 0.401367 22.0632 0.113723 21.7402 0.0402916C21.6238 0.0138267 21.5032 0 21.3803 0H20.8976ZM23 4.51539C23 4.13201 22.6892 3.82122 22.3058 3.82122C21.9224 3.82122 21.6116 4.13201 21.6116 4.51539V5.48061C21.6116 5.86399 21.9224 6.17478 22.3058 6.17478C22.6892 6.17478 23 5.86399 23 5.48061V4.51539ZM23 7.89367C23 7.51029 22.6892 7.1995 22.3058 7.1995C21.9224 7.1995 21.6116 7.51029 21.6116 7.89367V8.85889C21.6116 9.24227 21.9224 9.55306 22.3058 9.55306C22.6892 9.55306 23 9.24227 23 8.85889V7.89367ZM23 11.2719C23 10.8886 22.6892 10.5778 22.3058 10.5778C21.9224 10.5778 21.6116 10.8886 21.6116 11.2719V12.2372C21.6116 12.6205 21.9224 12.9313 22.3058 12.9313C22.6892 12.9313 23 12.6205 23 12.2372V11.2719ZM23 14.6502C23 14.2669 22.6892 13.9561 22.3058 13.9561C21.9224 13.9561 21.6116 14.2669 21.6116 14.6502V15.1328C21.6116 15.1515 21.6096 15.1689 21.6059 15.185C21.594 15.2373 21.5884 15.2896 21.5885 15.3411C21.537 15.3409 21.4847 15.3466 21.4324 15.3585C21.4163 15.3621 21.3989 15.3642 21.3803 15.3642H20.8976C20.5143 15.3642 20.2035 15.675 20.2035 16.0584C20.2035 16.4418 20.5143 16.7526 20.8976 16.7526H21.3803C21.5032 16.7526 21.6238 16.7387 21.7402 16.7123C22.0632 16.6388 22.2819 16.3512 22.2806 16.0332C22.5986 16.0345 22.8863 15.8158 22.9597 15.4928C22.9861 15.3764 23 15.2558 23 15.1328V14.6502ZM14.6474 13.9116C14.2294 13.4884 13.7764 13.3132 13.2767 13.5451C13.1394 13.6088 13.0164 13.7642 12.965 13.9976C12.9404 14.1092 12.9387 14.2154 12.952 14.2991C12.9615 14.3593 12.9761 14.3926 12.9832 14.4062L13.3718 14.7996C13.6232 15.0542 13.6207 15.4644 13.3661 15.7158C13.1116 15.9673 12.7014 15.9648 12.4499 15.7102L11.1619 14.4063C11.0696 14.3373 10.7782 14.256 10.4038 14.5402C10.265 14.6456 10.1892 14.8021 10.164 15.0159C10.146 15.1695 10.1586 15.3254 10.1806 15.4503L11.5483 16.8349C11.7998 17.0894 11.7973 17.4997 11.5427 17.7511C11.2881 18.0026 10.8779 18.0001 10.6265 17.7455L8.84977 15.9469C8.73834 15.8341 8.59086 15.7372 8.44955 15.7103C8.34989 15.6913 8.17941 15.6888 7.92486 15.922C7.40908 16.3944 7.60249 16.7531 7.61982 16.7853C7.62079 16.7871 7.62121 16.7879 7.62092 16.7876L8.36876 17.5446L8.36898 17.5449L9.63136 18.8228C9.88282 19.0774 9.8803 19.4876 9.62574 19.7391C9.37117 19.9905 8.96096 19.988 8.7095 19.7335L7.50459 18.5137C7.39104 18.4504 7.3071 18.431 7.25026 18.426C7.18448 18.4203 7.12354 18.4313 7.05978 18.4573C6.91636 18.5159 6.79333 18.6313 6.65652 18.7691C6.4611 19.004 6.42638 19.1929 6.43343 19.3189C6.44127 19.4591 6.50463 19.5852 6.59048 19.673L9.52673 22.586C9.77984 22.8371 9.78249 23.2456 9.53265 23.4999C9.2828 23.7543 8.87438 23.759 8.61876 23.5104L8.22865 23.1311V23.623C8.24763 24.1981 8.60657 24.7179 9.15357 25.1243C9.71443 25.541 10.3301 25.7301 10.6198 25.7301H14.6969C15.587 25.6238 16.1129 25.3237 16.2057 25.252C17.6012 24.1569 18.629 22.8236 18.9789 22.282C19.965 20.0757 18.9393 18.2565 18.341 17.6508L14.6474 13.9116ZM6.93288 21.8379V23.6327L6.93312 23.6505C6.96401 24.7762 7.65626 25.6261 8.38077 26.1644C9.09398 26.6943 9.97451 27.0259 10.6198 27.0259H14.7343C14.7585 27.0259 14.7826 27.0245 14.8067 27.0218C15.9128 26.8974 16.6893 26.5178 17.0025 26.2739L17.0044 26.2724C18.5682 25.0455 19.7067 23.557 20.0979 22.9372C20.1134 22.9127 20.1272 22.8871 20.1393 22.8607C21.4417 20.0111 20.126 17.614 19.2629 16.7402L17.6781 15.1359V6.01643C17.6781 4.8663 16.7457 3.93393 15.5956 3.93393H2.0825C0.932367 3.93393 0 4.8663 0 6.01643V19.5295C0 20.6797 0.932368 21.612 2.0825 21.612H6.70519L6.93288 21.8379ZM5.13682 19.2982H2.31389V6.24782H15.3642V12.8096C14.7425 12.2755 13.8096 11.8694 12.7314 12.3697C12.2925 12.5733 12.0053 12.926 11.8384 13.2984C11.1789 12.8743 10.2855 13.0031 9.62023 13.5082C9.24833 13.7906 9.04821 14.1549 8.94823 14.5061C8.86696 14.4778 8.7815 14.4544 8.69206 14.4374C8.15818 14.3357 7.58059 14.4801 7.04965 14.9664C6.21364 15.7322 6.13093 16.6828 6.43561 17.319C6.09639 17.4901 5.85345 17.7375 5.73648 17.8566L5.71719 17.8762C5.70638 17.8871 5.69596 17.8985 5.68595 17.9101C5.31058 18.3486 5.1343 18.8291 5.13682 19.2982Z",fill:i.color},null,8,Ffi)],8,_fi)}const m0e=H(Rfi,[["render",Ofi]]),Ufi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAkhSURBVHgB7Z3NbhvXFcfPvRTkWg5QdqW2aRAaTbMokHKUOpLQTahNYdMGTD2BqSewuuvO1BNYWnZl+QmkAIWoeqPRpoioGBrKbRAgATQGkiDJJgyQSIli3pNz5oMcUqT4oRnxXkk/QCA5M6Q4/7nzn3vOuXcIYBjW9N8LYCASDAPF2CMrl0uDYRgltPW3vMUP6vDGfTAMo4RWdfGAH4VQRTAMo4QWgL4/o7BMsw9jhA5sI+O9EJA2zT6METq0jRDT7MMYoRu2EWKYfRghdItthBhmH0YI3W4bISbZhxFCn7CNEIPsQ3uhO9pGiEH2ob3Q3WwjxBT7SFRoPq2t2UIGzkBX2wgxxD4SE9qaubuIhzcOEI8PsjP5g2GybidtA22lMAcIq41FhthHIkJbs/kiAj4GgWFLy1DWbc26dTs3wMc0bQOhhlBfrO6U517slrerlY0FpdQCrXB5tQn2kYjQiNCxhamUGKjl+baBtpBqan/nPyvRdS92N1eFwDmvdRtgH2OgKdbs7YzC+nK7wFGcDzddelh4573b2/j9r9hmbNAUAQlAO16UUj5pX/4KX1n/rzyrwiUkBQnwzZefOZNv/JGOosh5C9hjRf2f/6s8+wAuKUO36KPn7xYlitq1W8/Xu23DvvnT8cSvr40ffufYdg0uMUMJ/dPzv65B0L+lC5I9/u7eHCSM9V5QxhLwZrhMAlbpQug6uxsOaM7AQh/tWRmp5EF02c91NfXatBP7zlqz93J0QbwvUBYjXcVOuGRP3DtZCi6Q2jGw0LhnpY99oRs7Pi7Vb8SUE5s1eF21o4kSAjyEAREIS05lowSaMZx1fGSRbYhHHJUJxNL4LecpxAR36xDlFpxIJKFNwjugqPUyEjL05clOggtu67YOWdq8Tq07ke7dsHgiq9Rewya8iFAty4kfV7pdTL3+NsADgaJIu5OJrHIpYpzTRWxthD7ZkikiFLjQr1DB+9fAa+Uh6FDYPgUakEg/ehgmf/825UYg571AtVqtbM5/9flnffs+b/v1F5/+a/L1t24KIQKxxW8nX/8T0PJtGDGJZu+y03e/tabzpZ7bUhKKRC76r9AlkRdgSOTEtUVgLw+gU3aRWzuMmMSEpuzdQ/ZaFPCo57YoGr0LL1F0Bhx7vSYUNA8Up1Ejnz8qkhR6hVsnpzdP287POaMVvGk1jouXF8BEctZ8oRx1di+x7N3+TnmZHpZ7bafq8n1BfTbvOeIqxAQFL0+RAx3vBfX5R5zdG3nNkETOeU+oK8dJfYgJOjNsCs8bF1PKhWdhhGhQnBX+KS0w/nyFCIIb7+OFBSNEA6ExA8mhTcbQuBH/pqJtKYvxUqMo0/Da947p+WwtWzQHGNmZ/B5K2MOU2sKjib1OwxV4zIh1614ODEBLoRFTXG+0EFUJFS56vXIYexL2hf0DcXeLx4zwgRh23Mh5MrR1eDv9w0QBpaDM2c8rTuXZOsSAlSuk8eg4R2qv71c2l7xl0/deolBrwUAZ6h+n1vwgB7kL53L4HhwIO06LYeui/XssBAc/9e2zBFMDCR0VFw8pSyYpnUlBRlwityCahQWQiv4P55pe1TiSxDqJTAeiWinP8+q/zOZdymmU1NF1HnCzAjHBESZ9tu1HmRLoLLKHFb2n0B3F5b32EqzoColLECOcq8jO3LE5oZ+dzj9BgTVUlGsWyk2NiSoojiLZ8ZrBiAS5jRxdoog9zN7/cGOJrIltic+gHCJnGAcXvaPQp4vbBKm6Ut2JP7HOeWhKNHHatCj4n5LIQol5Z7fs8nrKCtYoAilaM3eoOAsuefnj4PvYkACcpOILc+vSwURvCN2vuM3/A6vkobGVsKIEX3b+z37lGz7eLbdEjVQ+m0MQW5QZfBx+P75wvtjdTCTvHFhIieqRpc5b9BZ9zJq+U0AhH/YlbuNzocYVZ0iYj7sMI+Adp57HlKqL+9T809ySkxI5JLCQInQbFN+gTXTqKMDEsT3mVMrr78zk6cyAAglYaLkIdYO3UYpbmwsjImgtsV34euGXynqJHEANkXM3dJatChKZe0KedbzY2eChWvy3QKLflyw4nC56Et0pnQnqmadsEIqLq1RM/qBdlxMXw75Fp9d4eJ0Di3m44FCprdSxNfcQN8qp3bueogtR4IgskX60JgSW0SzHDSBulL4Dlm6iX3QL8SxjSHGjDBWCt4sOh+M5en7hWjW15pxSqjSsuFHOnCYNRL+QeOWwmNA6Hx3CmTrun/JznpUVZ23xvLiqsJwTV0KfE1dCnxNXQp8TRlwMOxFcIDP8XKYgt/ffjZfR+qHz0b9t0AjthPb7rvJ9fi6l2u7exfJEzkTeRxGcCvMRLv3dBI3QTmgWmfK5peA5P9rR9ZTBLViz9wQVbdM8YcUUjPNoIcWi13JPn6WlHTqMvfNDW544Tx4rWqZGXBxGbh1UfF0nB7C8tGtKbfXxDhd8D86Ek4PwWN2EcVmDOmjLyFs0l4ggMhWiJyhsvm8HQmq5sSgln+Ar0cdBGh1aeHR1Z2PKu9GJd++N/rKA8vrY0/DGKMCtW3PP1mqeYQhPMgqEc0l4h75lY7gXAi7u75S9WqE/L1E+ak40amzExWM6ePJB2IPhg8h3roERoWXAghKXg9I+tdSWeyq5UmAjLRveGIX/eLgEHl1f82bSst+jPBCRZoSgbBgh2swzjPL1559uT/7h7TTpNNtciv4gmkr5k07v+cp1f/zdG2+9JKGLJ9eiu3+GKXVxoKV1hLA11FFmQWHf81v8cSqCa3yWV4Kiyo+YOPzHZb9fyBVXXBIGnYCpwzTk09A415EGnl7RS8Bw9H+9Lt4EjdFWaB4nTb2FGnfTuk3c927Lyff3AJXRvWCrdfZOKeENC+aJ+948laB1N+awhLflpLAcNEdroVM3xtcj04z5xicH2en8mt+K/eEHTJxzyJNC6340k525s9X5vkkh6FKSSatqSif0v1F3YB9dMcA2GO2FbrOPE5hgG4z2Qnu9D6G65KvRNWV4mBk/D9LNPgyxDcYIobvZhym2wRghdGf7MMc2GHN+lKzdPgyyDcYYodvtwyTbYIwRutU+zLINxqyfQg3twzDbYIwSOrQP02zDSPjWEmAg5g1ypEIrGMgvJG+j0Idlmd0AAAAASUVORK5CYII=",JR=document.createElement("img");JR.src=Ufi,JR.style.cursor="grabbing";function Nfi({dataTransferType:t="areas_zone-id",getData:e=()=>null,onDropCB:i=()=>{}}={}){const r=pe(!1),o=pe(!1);function n(u){u.dataTransfer.types.includes(t)&&(u.preventDefault(),u.dataTransfer.dropEffect="move")}function a(){o.value=!1}function s(u){r.value=!0,u.dataTransfer.setData(t,e()),u.dataTransfer.effectAllowed="move",u.dataTransfer.setDragImage(JR,45,45)}function l(){r.value=!1}function c(u){o.value=!1;const h=parseInt(u.dataTransfer.getData(t),10);i?.(h)}function d(u){u.dataTransfer.types.includes(t)&&(o.value=!0)}return{dragging:r,dragover:o,onDragOver:n,onDragLeave:a,onDragStart:s,onDragEnd:l,onDrop:c,onDragEnter:d}}const jfi=["draggable"],Vfi={class:"layout-settings__header"},Hfi={key:0,class:"layout-settings__swap"},zfi={key:1,class:"layout-settings__split"},qfi={class:"layout-settings__split__text"},Gfi={class:"layout-settings__split__text"},Qfi={key:2,class:"layout-settings__buttons"},Kfi={__name:"LayoutSettings",setup(t){const e=mt("$viewer"),{localContext:i}=e,r=Xe(()=>i.window),o=Xe(()=>e.globalContext.localContexts.length>1),n=Xe(()=>e.layout.settings.swap),a=Xe(()=>e.layout.settings.full);function s(){e.layout.settings.swap=!e.layout.settings.swap}function l(){i.loadWindow(null),e.layout.settings.edit=!1}function c(){i.close()}function d(k="row"){e.globalContext.open({localContextId:i.id,ratio:50,direction:k})}function u(){d(),e.layout.settings.edit=!1}function h(){d("column"),e.layout.settings.edit=!1}yt(()=>e.globalContext.localContexts.length,k=>{var B;k===1&&e.layout.settings.edit&&((B=e.globalContext.localContexts[0].window)==null?void 0:B.header)===!1&&(e.layout.settings.edit=!1)});const{dragging:f,dragover:A,onDragOver:p,onDragLeave:g,onDragStart:m,onDragEnd:b,onDrop:y,onDragEnter:v}=Nfi({getData:()=>String(i.id),onDropCB:k=>{Number.isNaN(k)||e.globalContext.swap(k,i.id)}}),x=Xe(()=>e.layout.settings.swap);return(k,B)=>{const M=T("BIMDataIconWindowRight"),P=T("BIMDataButton"),S=T("BIMDataIconWindowBottom"),I=T("BIMDataIconDelete"),L=T("BIMDataTooltip");return E(),F("div",{class:ae(["layout-settings",{"layout-settings--swap":n.value,"layout-settings--dragging":wt(f),"layout-settings--dragover":wt(A)}]),draggable:x.value,onDragover:B[0]||(B[0]=(..._)=>wt(p)&&wt(p)(..._)),onDragleave:B[1]||(B[1]=(..._)=>wt(g)&&wt(g)(..._)),onDragenter:B[2]||(B[2]=(..._)=>wt(v)&&wt(v)(..._)),onDragstart:B[3]||(B[3]=ft((..._)=>wt(m)&&wt(m)(..._),["self"])),onDrop:B[4]||(B[4]=(..._)=>wt(y)&&wt(y)(..._)),onDragend:B[5]||(B[5]=(..._)=>wt(b)&&wt(b)(..._))},[C("div",Vfi,Q(k.$t(n.value?"window-manager.swap":"window-manager.description"))+". ",1),n.value?(E(),F("div",Hfi,[D(m0e,{color:"#ffffff",size:2})])):(E(),F("div",zfi,[D(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:u},{default:V(()=>[D(M),C("span",qfi,Q(k.$t("window-manager.vertical")),1)]),_:1}),D(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:h},{default:V(()=>[D(S),C("span",Gfi,Q(k.$t("window-manager.horizontal")),1)]),_:1})])),a.value?(E(),F("div",Qfi,[o.value?(E(),Z(L,{key:0,text:k.$t("global.delete"),position:"left"},{default:V(()=>[D(P,{disabled:n.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:c},{default:V(()=>[D(I,{fill:"",color:"high"})]),_:1},8,["disabled"])]),_:1},8,["text"])):re("",!0),o.value?(E(),Z(L,{key:1,text:k.$t("window-manager.swap_tooltip"),position:"left"},{default:V(()=>[D(P,{fill:"",square:"",icon:"",color:n.value?"secondary":"default",width:"50px",height:"50px",onClick:s},{default:V(()=>[D(m0e)]),_:1},8,["color"])]),_:1},8,["text"])):re("",!0),r.value?(E(),Z(L,{key:2,text:k.$t("window-manager.change"),position:"left"},{default:V(()=>[D(P,{disabled:n.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:l},{default:V(()=>[D(Dfi)]),_:1},8,["disabled"])]),_:1},8,["text"])):re("",!0)])):re("",!0)],42,jfi)}}},Zfi=H(Kfi,[["__scopeId","data-v-d37dfd4d"]]);function Wfi(t,e=()=>{}){const i=pe(0),r=pe(0),o=pe(0),n=pe(0),a=l=>{l.forEach(c=>{const{width:d,height:u,x:h,y:f}=c.target.getBoundingClientRect();i.value=d,r.value=u,o.value=h,n.value=f,e?.({width:i.value,height:r.value,x:o.value,y:n.value})})},s=new ResizeObserver(a);return Pi(()=>{s.observe(t.value)}),ur(()=>s.disconnect()),{width:i,height:r,x:o,y:n}}class Jfi extends Zj{constructor(e){super(e);const{width:i,height:r,x:o,y:n}=Wfi(this.templateRef,a=>this.hub.emit("context-resize",a));this._resolution=pe(1),this._width=i,this._height=r,this._x=o,this._y=n}get width(){return this._width.value}get height(){return this._height.value}get x(){return this._x.value}get y(){return this._y.value}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}}class Xfi extends Jfi{constructor(e){super(e),this.viewer=null,this._annotationMode=pe(!1)}get annotationMode(){return this._annotationMode.value}async getSnapshot(){if(!this.viewer)throw new Error("[localContext.getSnapshot] Error: no viewer registered in this localContext.");await this.hideUI();const e=await this.viewer.getSnapshot();return await this.showUI(),e}getViewpoint(e){if(!this.viewer)throw new Error("[localContext.getViewpoint] Error: no viewer registered in this localContext.");return this.viewer.getViewpoint(e)}setViewpoint(e,i){if(!this.viewer)throw new Error("[localContext.setViewpoint] Error: no viewer registered in this localContext.");this.viewer.setViewpoint(e,i)}startAnnotationMode(e){if(!this.viewer)throw new Error("[localContext.startAnnotationMode] Error: no viewer registered in this localContext.");if(!this.annotationMode)return this._annotationMode.value=!0,this.viewer.startAnnotationMode(e)}stopAnnotationMode(){if(!this.viewer)throw new Error("[localContext.stopAnnotationMode] Error: no viewer registered in this localContext.");this._annotationMode.value=!1,this.viewer.stopAnnotationMode()}fitView(e){if(!this.viewer)throw new Error("[localContext.fitView] Error: no viewer registered in this localContext.");this.viewer.fitView(e)}async showUI(){if(!this.viewer)throw new Error("[localContext.showUI] Error: no viewer registered in this localContext.");this.pluginComponentInstances.forEach(e=>e.$show()),this.viewer.showUI(),await mr()}async hideUI({exceptions:e=[]}={}){if(!this.viewer)throw new Error("[localContext.hideUI] Error: no viewer registered in this localContext.");e.push(this.viewer.$plugin.name),[...this.pluginComponentInstances.entries()].filter(([i])=>!e.includes(i)).forEach(([,i])=>i.$hide()),this.viewer.hideUI(),await mr()}}class Yfi extends Xfi{constructor(e){super(e),this.modelTypes=null,this.multiModel=!0,this._loadedModels=ir([]),this._loadingModelIds=pe([]),this._selectedStorey=ir(null),this._shownPlans=ir([]),this._loadedModelIds=Xe(()=>this._loadedModels.value.map(i=>i.id)),this._automaticFirstModelsLoading=!1,this._globalContextSubscription=null,ur(()=>{e.globalContext.hub.off(this._globalContextSubscription)})}get loadedModels(){return this._loadedModels.value}get loadingModelIds(){return this._loadingModelIds.value}get loadedModelIds(){return this._loadedModelIds.value}get selectedStorey(){return this._selectedStorey.value}async loadModels(e,i={}){var r;const o=this._$viewer;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] loadModels requires an array of model ids.");this.multiModel||(e.length>1&&(e=[e[0]]),this.loadedModels.length>0&&this.unloadModels(this.loadedModelIds)),this.loadingModelIds.push(...e),this.hub.emit("models-loading",{ids:e});const n=[],a=[];for(const l of e)this.loadedModelIds.includes(l)||(o.state.modelsMap.has(l)?n.push(o.state.modelsMap.get(l)):a.push(l));n.push(...await o.state.loadModels(a)),this._loadingModelIds.value=this.loadingModelIds.filter(l=>!e.includes(l));const s=n.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0});if(s.forEach(l=>{l.status!=="C"&&console.warn(`[BIMDataViewer - Local State] Model with id ${l.id} has an uncompleted status, loading may fail`)}),s.length!==0&&(this._loadedModels.value=[...this.loadedModels,...s],await((r=this.viewer)==null?void 0:r.loadModels(s,i)),this.hub.emit("models-loaded",{models:s}),o.globalContext.hub.emit("models-loaded",{models:s,emitter:this})),i!=null&&i.viewpoint&&this.viewer&&this.setViewpoint(i.viewpoint),i!=null&&i.storey){const l=s.flatMap(c=>c.storeys).find(c=>c.key===i.storey);l&&this.selectStorey(l)}return s}unloadModels(e){var i;const{loadedModels:r,$viewer:o}=this;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] unloadModels requires an array of ids.");const n=e.map(a=>o.state.modelsMap.get(a)).filter(Boolean);return n.length===0?!1:(this._loadedModels.value=r.filter(a=>!n.includes(a)),(i=this.viewer)==null||i.unloadModels(n),this.selectedStorey&&n.some(a=>a.storeys.some(s=>s.key===this.selectedStorey.key))&&this.selectStorey(null),this.hub.emit("models-unloaded",{models:n}),o.globalContext.hub.emit("models-unloaded",{models:n,emitter:this}),n)}get automaticFirstModelsLoading(){return this._automaticFirstModelsLoading}set automaticFirstModelsLoading(e){this._automaticFirstModelsLoading=e,e?this._onAutomaticFirstModelsLoading():this._$viewer.globalContext.hub.off(this._globalContextSubscription)}async _onAutomaticFirstModelsLoading(){const{_loadedModels:e,_loadingModelIds:i,$viewer:r}=this,o=r.globalContext.loadedModels.filter(s=>{var l;return((l=this.modelTypes)==null?void 0:l.includes(s.type))??!0});o.length>0&&this.loadModels(o.map(s=>s.id)),r.globalContext.hub.off(this._globalContextSubscription);const n=s=>{s=s.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0}),s.length>0&&e.value.length===0&&i.value.length===0&&this.loadModels(s.map(l=>l.id))};await mr();let a=!0;this._globalContextSubscription=r.globalContext.hub.on("models-loaded",({models:s,emitter:l})=>{!a&&l===this||n(s)},{getLastEvent:!0}),a=!1}selectStorey(e,i=!0){this._selectedStorey.value=e,this.shownPlans.length>0&&this.shownPlans.forEach(r=>this.hidePlan(r)),i&&e?.plans.length>0&&e.plans.forEach(r=>this.showPlan(r)),this.hub.emit("storey-selected",{storey:e})}get shownPlans(){return this._shownPlans.value}showPlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?!1:(this._shownPlans.value=[...this._shownPlans.value,e],this.hub.emit("plan-shown",{plan:e}),!0)}hidePlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?(this._shownPlans.value=this._shownPlans.value.filter(i=>i.key!==e.key),this.hub.emit("plan-hidden",{plan:e}),!0):!1}}class $fi extends Yfi{constructor(e,i){super(e),this.id=i,this._window=ir(null),this.pluginInstances=new Map,ur(()=>{this.unloadWindow()})}get $viewer(){const e=this;return new Proxy(this._$viewer,{get(i,r,o){return r==="localContext"?e:Reflect.get(i,r,o)}})}get pluginComponentInstances(){return new Map([...this.pluginInstances.values()].filter(e=>e.componentInstance).map(e=>[e.name,e.componentInstance]))}get plugins(){return this.pluginComponentInstances}get window(){return this._window.value}unloadWindow(){if(!this.window)return!1;const e=this.window,i=this.window.name;return this.pluginInstances.clear(),this._window.value=null,this.loadedModelIds.length>0&&this.unloadModels(this.loadedModelIds),this.automaticFirstModelsLoading=!1,this._$viewer.globalContext.hub.emit("window-close",{window:e,name:i,localContext:this}),!0}async loadWindow(e=null,i=null){const r=!!this.window;if(this.unloadWindow(),e===null)return null;if(r&&await mr(),!this.$viewer.windowManager.registeredWindows.has(e)){const l=`Cannot load window with name "${e}" because it is not registered.`;return console.warn(l),null}this._window.value=this.$viewer.windowManager.registeredWindows.get(e);const o=Array.from(this.window.plugins??[]);this.pluginInstances.clear(),o.map(l=>this.$viewer.pluginManager.getPluginInstance(l,this)).filter(Boolean).sort(({button:{stance:l=0}={}},{button:{stance:c=0}={}})=>l-c).forEach(l=>this.pluginInstances.set(l.name,l)),this.modelTypes=Array.isArray(this.window.modelTypes)?this.window.modelTypes:null,this.multiModel=this.window.multiModel??!0,this._loadedModels.value=[],this._loadingModelIds.value=[];const{modelIds:n,viewpoint:a,storey:s}=i??{};return this.window.noModel!==!0&&(n?.length>0?(this.automaticFirstModelsLoading=!1,this.loadModels(n,{viewpoint:a,storey:s})):this.automaticFirstModelsLoading=!0),this._$viewer.globalContext.hub.emit("window-open",{window:this.window,name:this.window.name,localContext:this}),this.window}close(){return this._$viewer.globalContext.close(this.id)}getPlugin(e){return console.warn("[BIMData Viewer] DEPRECATED - Ambigous name. Do not use localContext.getPlugin(name), use the localContext.pluginComponentInstances Map instead."),this.pluginComponentInstances.get(e)}}const eAi={name:"WindowContainer",components:{PluginComponentInstanceContainer:h4,LayoutSettings:Zfi,SidePanel:pfi,SideColumn:Sfi,ModalManager:f0e},inject:["$viewer"],props:{windowName:{type:String,default:null},windowState:{type:Object,default:null},zoneId:{type:Number,required:!0}},setup(t){const e=mt("$viewer"),{globalContext:i}=e,r=new $fi(e,t.zoneId);hr("$viewer",r.$viewer);const{templateRef:o}=r,n=()=>{o.value&&(o.value.scrollTop=0,o.value.scrollLeft=0)};Pi(()=>{o.value.addEventListener("scroll",n,{passive:!0})});const a=()=>{i.activeLocalContext=r},s=()=>{i.activeLocalContext===r&&(i.activeLocalContext=null)},l=Xe(()=>{var d;const u=[];let h=null,f=null;const A=[],p=[],g=[];return r.window?g.push(...r.pluginInstances.values()):((d=e.windowManager.defaultWindow)==null?void 0:d.plugins.length)>0&&g.push(...e.windowManager.defaultWindow.plugins.map(m=>e.pluginManager.getPluginInstance(m,this)).filter(Boolean).sort(({button:{stance:m=0}={}},{button:{stance:b=0}={}})=>m-b)),g.forEach(m=>{!m.button&&!m.sidePanel?m.isViewer?u.unshift(m):u.push(m):m.sidePanel?m.sidePanel.position==="left"?(h&&console.warn(`[BIMDataViewer - WindowContainer] Window ${r.window.name}, Multiple left side panels are not supported. Only the last one will be displayed.`),h=m):m.sidePanel.position==="right"&&(f&&console.warn(`[BIMDataViewer - WindowContainer] Window ${r.window.name}, Multiple right side panels are not supported. Only the last one will be displayed.`),f=m):m.button.position==="left"?A.push(m):m.button.position==="right"&&p.push(m)}),u.reverse(),{free:u,leftSidePanel:h,rightSidePanel:f,leftButtonColumn:A,rightButtonColumn:p}});r.loadWindow(t.windowName,t.windowState);const c=Xe(()=>{const d=l.value.leftSidePanel,u=d!=null&&d.shown?d.sidePanel.width:0,h=l.value.rightSidePanel,f=h!=null&&h.shown?h.sidePanel.width:0;return r.width-u-f});return{onMouseEnter:a,onMouseLeave:s,templateRef:o,modalManagerTemplateRef:r.modalManagerTemplateRef,windowPlugins:l,layoutSettingsDisplayed:Xe(()=>e.layout.settings.edit),spinner:Xe(()=>r.spinner),loading:Xe(()=>r.loading),width:Xe(()=>r.width),height:Xe(()=>r.height),resolution:Xe(()=>r.resolution),localContext:r,centerWidth:c}},created(){this.$viewer.windowManager.windowContainers.push(this)},unmounted(){const t=this.$viewer.windowManager.windowContainers.indexOf(this);t!==-1&&this.$viewer.windowManager.windowContainers.splice(t,1)}},tAi={class:"window-container__content"},iAi={class:"window-container__content__center"},rAi={key:0,class:"bimdata-context-loading-overlay",style:{"z-index":"2"}},oAi={key:1,class:"window-container__layout-settings",style:{"z-index":"5"}};function nAi(t,e,i,r,o,n){const a=T("ModalManager"),s=T("SidePanel"),l=T("PluginComponentInstanceContainer"),c=T("SideColumn"),d=T("BIMDataSpinner"),u=T("LayoutSettings");return E(),F("div",{ref:"templateRef",class:"window-container",style:se(`
|
|
5520
|
+
`)},[D(a,{plugin:i.plugin,style:{height:"100%"}},null,8,["plugin"])],4)),[[zt,i.plugin.shown]])}const pfi=H(ufi,[["render",hfi],["__scopeId","data-v-ced3f116"]]),ffi={props:{name:{type:String,default:"box"},content:{type:String,default:""},width:{type:[Number,String],default:20},height:{type:[Number,String],default:20},color:{type:String,default:"currentColor"},x:{type:[Number,String],default:20},y:{type:[Number,String],default:20}},computed:{viewBox(){return`0 0 ${this.x} ${this.y}`}}},Afi=["width","height","viewBox","aria-labelledby","fill"],mfi=["innerHTML"];function gfi(t,e,i,r,o,n){return E(),F("svg",{xmlns:"http://www.w3.org/2000/svg",width:i.width,height:i.height,viewBox:n.viewBox,"aria-labelledby":i.name,fill:i.color,role:"presentation"},[C("g",{innerHTML:i.content},null,8,mfi)],8,Afi)}const vfi=H(ffi,[["render",gfi]]),yfi=["src"],bfi={__name:"PluginIcon",props:{plugin:{type:Object,required:!0},isOpen:{type:Boolean,required:!0}},setup(t){const e=t,i=ir(null);return qs(()=>{e.isOpen&&e.plugin.button.iconOpen?i.value=e.plugin.button.iconOpen:e.plugin.button.icon?i.value=e.plugin.button.icon:i.value={component:"BIMDataIcon",options:{name:"default",size:"m"}}}),(r,o)=>i.value.imgUri?(E(),F("img",{key:0,src:i.value.imgUri,style:{"max-width":"40px","max-height":"40px"}},null,8,yfi)):i.value.svgPath?(E(),Z(vfi,gn({key:1},i.value.options,{content:i.value.svgPath}),null,16,["content"])):i.value.component?(E(),Z(br(i.value.component),Da(gn({key:2},i.value.options)),null,16)):re("",!0)}},wfi={key:0,class:"tools-menu__info"},Cfi={class:"window"},xfi={class:"plugins-as-button__content"},kfi={class:"plugins-as-button__panel__header"},Mfi={class:"panel__content"},Pfi={__name:"PluginAsButton",props:{plugin:{type:Object,required:!0},active:{type:Boolean,required:!0},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},emits:["focus"],setup(t,{emit:e}){const i=e,r=mt("$viewer"),{localContext:o}=r,n=t,{active:a}=s5(n),s=n.plugin,l=Xe(()=>s.isOpen),c=Xe(()=>s.buttonText),d=Xe(()=>n.active?2:1);function u(){l.value&&i("focus")}function h(){l.value?s.close():s.open()}function f(){mr(()=>{l.value&&!s.button.keepOpen&&!s.loading&&s.close()})}return(A,p)=>{const g=T("BIMDataSpinner"),m=T("BIMDataButton"),b=T("BIMDataTooltip"),y=ui("click-away");return At((E(),F("div",{class:"plugins-as-button",style:se({zIndex:d.value,position:wt(s).button.content==="simple"?"relative":null})},[C("div",{class:"tools-menu m-b-12",onMouseenter:u},[D(b,{ref:"tooltip",class:ae({open:l.value}),text:wt(s).button.tooltip?A.$t(wt(s).button.tooltip):wt(s).name,position:t.position==="left"?"right":"left",disabled:l.value},{default:V(()=>[D(m,{width:"45px",height:"45px",fill:"",icon:"",color:"default",class:ae({focus:wt(a)}),"data-test":`plugin-${wt(s).name}`,onClick:p[0]||(p[0]=v=>h())},{default:V(()=>[c.value?(E(),F("span",wfi,Q(wt(Flt)(c.value,wt(s).button.truncateSize||4)),1)):re("",!0),wt(s).loading?(E(),Z(g,{key:1})):(E(),Z(bfi,{key:2,plugin:wt(s),"is-open":l.value},null,8,["plugin","is-open"]))]),_:1},8,["class","data-test"])]),_:1},8,["class","text","position","disabled"])],32),C("div",Cfi,[D(Ai,{name:`slide-fade-${t.position}`},{default:V(()=>[At(C("span",xfi,[wt(s).button.content==="panel"?(E(),F("div",{key:0,class:ae(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__panel`])},[C("div",kfi,Q(wt(s).button.tooltip?A.$t(wt(s).button.tooltip):wt(s).name),1),C("div",Mfi,[D(h4,{plugin:wt(s)},null,8,["plugin"])])],2)):(E(),Z(h4,{key:1,class:ae(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__${wt(s).button.content||"free"}`]),plugin:wt(s)},null,8,["class","plugin"]))],512),[[zt,l.value]])]),_:1},8,["name"])])],4)),[[y,f]])}}},Efi=H(Pfi,[["__scopeId","data-v-72f2ce01"]]),Bfi={__name:"SideColumn",props:{plugins:{type:Array,default:()=>[]},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},setup(t){const e=t,i=ir(null);return(r,o)=>(E(),F("div",{class:ae(["side-column",`side-column--${e.position}`])},[(E(!0),F(ct,null,Et(e.plugins,n=>(E(),F(ct,{key:n.name},[n.button.content==="none"?(E(),Z(h4,{key:0,plugin:n,onMouseenter:a=>i.value=n},null,8,["plugin","onMouseenter"])):At((E(),Z(Efi,{key:1,plugin:n,position:e.position,active:i.value===n,onFocus:a=>i.value=n},null,8,["plugin","position","active","onFocus"])),[[zt,n.shown]])],64))),128))],2))}},Sfi=H(Bfi,[["__scopeId","data-v-f11ec0c8"]]),Ifi={},Tfi={width:"23",height:"22",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Lfi(t,e){return E(),F("svg",Tfi,e[0]||(e[0]=[C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M-1.39472e-07 10.1037L3.19075 13.2944L6.3815 10.1037L4.25434 10.1037L4.25434 5.31755C4.25434 5.17754 4.30509 4.94384 4.42614 4.77572C4.47895 4.70237 4.54133 4.64599 4.62063 4.60508C4.69908 4.56461 4.83161 4.51987 5.05202 4.51987L11.1676 4.51987L11.1676 2.3927L5.05202 2.3927C3.96087 2.3927 3.17625 2.87117 2.69987 3.5328C2.26254 4.14021 2.12717 4.83714 2.12717 5.31755L2.12717 10.1037L-1.39472e-07 10.1037Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M23 11.9657L19.8092 8.7749L16.6185 11.9657L18.7457 11.9657L18.7457 16.7518C18.7457 16.8918 18.6949 17.1255 18.5739 17.2936C18.521 17.367 18.4587 17.4233 18.3794 17.4643C18.3009 17.5047 18.1684 17.5495 17.948 17.5495L11.8324 17.5495L11.8324 19.6766L17.948 19.6766C19.0391 19.6766 19.8238 19.1982 20.3001 18.5365C20.7375 17.9291 20.8728 17.2322 20.8728 16.7518L20.8728 11.9657L23 11.9657Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 15.6879C0 14.9536 0.595228 14.3584 1.32948 14.3584H8.24277C8.97703 14.3584 9.57225 14.9536 9.57225 15.6879V19.9422C9.57225 20.6765 8.97703 21.2717 8.24277 21.2717H1.32948C0.595228 21.2717 0 20.6765 0 19.9422V15.6879ZM1.59538 15.9538V19.6763H7.97688V15.9538H1.59538Z",fill:"currentColor"},null,-1),C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.2948 1.32948C13.2948 0.595229 13.89 0 14.6243 0H21.5376C22.2718 0 22.8671 0.595228 22.8671 1.32948V5.58382C22.8671 6.31807 22.2718 6.91329 21.5376 6.91329H14.6243C13.89 6.91329 13.2948 6.31807 13.2948 5.58382V1.32948ZM14.8902 1.59538V5.31792H21.2717V1.59538H14.8902Z",fill:"currentColor"},null,-1)]))}const Dfi=H(Ifi,[["render",Lfi]]),Rfi={props:{color:{type:String,default:"currentColor"},size:{type:Number,default:1}}},_fi=["width","height"],Ffi=["fill"];function Ofi(t,e,i,r,o,n){return E(),F("svg",{width:23*i.size,height:28*i.size,viewBox:"0 0 23 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[C("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.81498 1.39408C7.83109 1.39042 7.84845 1.38833 7.86714 1.38833H8.34975C8.73313 1.38833 9.04391 1.07754 9.04391 0.694167C9.04391 0.310789 8.73313 0 8.34975 0H7.86714C7.74418 0 7.62361 0.0138267 7.5072 0.0402917C7.18421 0.113723 6.96548 0.401367 6.96677 0.719361C6.64878 0.718068 6.36114 0.936792 6.28771 1.25978C6.26124 1.37619 6.24741 1.49677 6.24741 1.61972V2.10233C6.24741 2.48571 6.5582 2.7965 6.94158 2.7965C7.32496 2.7965 7.63575 2.48571 7.63575 2.10233V1.61972C7.63575 1.60103 7.63783 1.58368 7.64149 1.56756C7.65339 1.51525 7.65903 1.46297 7.65892 1.4115C7.71038 1.41162 7.76266 1.40597 7.81498 1.39408ZM10.7628 0C10.3794 0 10.0686 0.310789 10.0686 0.694167C10.0686 1.07754 10.3794 1.38833 10.7628 1.38833H11.728C12.1114 1.38833 12.4222 1.07754 12.4222 0.694167C12.4222 0.310789 12.1114 0 11.728 0H10.7628ZM14.1411 0C13.7577 0 13.4469 0.310789 13.4469 0.694167C13.4469 1.07754 13.7577 1.38833 14.1411 1.38833H15.1063C15.4897 1.38833 15.8005 1.07754 15.8005 0.694167C15.8005 0.310789 15.4897 0 15.1063 0H14.1411ZM17.5194 0C17.136 0 16.8252 0.310789 16.8252 0.694167C16.8252 1.07754 17.136 1.38833 17.5194 1.38833H18.4846C18.868 1.38833 19.1788 1.07754 19.1788 0.694167C19.1788 0.310789 18.868 0 18.4846 0H17.5194ZM20.8976 0C20.5143 0 20.2035 0.310789 20.2035 0.694167C20.2035 1.07754 20.5143 1.38833 20.8976 1.38833H21.3803C21.3989 1.38833 21.4163 1.39042 21.4324 1.39408C21.4847 1.40597 21.537 1.41162 21.5885 1.4115C21.5884 1.46297 21.594 1.51525 21.6059 1.56756C21.6096 1.58368 21.6116 1.60103 21.6116 1.61972V2.10233C21.6116 2.48571 21.9224 2.7965 22.3058 2.7965C22.6892 2.7965 23 2.48571 23 2.10233V1.61972C23 1.49677 22.9861 1.37619 22.9597 1.25978C22.8863 0.936791 22.5986 0.718068 22.2806 0.719361C22.2819 0.401367 22.0632 0.113723 21.7402 0.0402916C21.6238 0.0138267 21.5032 0 21.3803 0H20.8976ZM23 4.51539C23 4.13201 22.6892 3.82122 22.3058 3.82122C21.9224 3.82122 21.6116 4.13201 21.6116 4.51539V5.48061C21.6116 5.86399 21.9224 6.17478 22.3058 6.17478C22.6892 6.17478 23 5.86399 23 5.48061V4.51539ZM23 7.89367C23 7.51029 22.6892 7.1995 22.3058 7.1995C21.9224 7.1995 21.6116 7.51029 21.6116 7.89367V8.85889C21.6116 9.24227 21.9224 9.55306 22.3058 9.55306C22.6892 9.55306 23 9.24227 23 8.85889V7.89367ZM23 11.2719C23 10.8886 22.6892 10.5778 22.3058 10.5778C21.9224 10.5778 21.6116 10.8886 21.6116 11.2719V12.2372C21.6116 12.6205 21.9224 12.9313 22.3058 12.9313C22.6892 12.9313 23 12.6205 23 12.2372V11.2719ZM23 14.6502C23 14.2669 22.6892 13.9561 22.3058 13.9561C21.9224 13.9561 21.6116 14.2669 21.6116 14.6502V15.1328C21.6116 15.1515 21.6096 15.1689 21.6059 15.185C21.594 15.2373 21.5884 15.2896 21.5885 15.3411C21.537 15.3409 21.4847 15.3466 21.4324 15.3585C21.4163 15.3621 21.3989 15.3642 21.3803 15.3642H20.8976C20.5143 15.3642 20.2035 15.675 20.2035 16.0584C20.2035 16.4418 20.5143 16.7526 20.8976 16.7526H21.3803C21.5032 16.7526 21.6238 16.7387 21.7402 16.7123C22.0632 16.6388 22.2819 16.3512 22.2806 16.0332C22.5986 16.0345 22.8863 15.8158 22.9597 15.4928C22.9861 15.3764 23 15.2558 23 15.1328V14.6502ZM14.6474 13.9116C14.2294 13.4884 13.7764 13.3132 13.2767 13.5451C13.1394 13.6088 13.0164 13.7642 12.965 13.9976C12.9404 14.1092 12.9387 14.2154 12.952 14.2991C12.9615 14.3593 12.9761 14.3926 12.9832 14.4062L13.3718 14.7996C13.6232 15.0542 13.6207 15.4644 13.3661 15.7158C13.1116 15.9673 12.7014 15.9648 12.4499 15.7102L11.1619 14.4063C11.0696 14.3373 10.7782 14.256 10.4038 14.5402C10.265 14.6456 10.1892 14.8021 10.164 15.0159C10.146 15.1695 10.1586 15.3254 10.1806 15.4503L11.5483 16.8349C11.7998 17.0894 11.7973 17.4997 11.5427 17.7511C11.2881 18.0026 10.8779 18.0001 10.6265 17.7455L8.84977 15.9469C8.73834 15.8341 8.59086 15.7372 8.44955 15.7103C8.34989 15.6913 8.17941 15.6888 7.92486 15.922C7.40908 16.3944 7.60249 16.7531 7.61982 16.7853C7.62079 16.7871 7.62121 16.7879 7.62092 16.7876L8.36876 17.5446L8.36898 17.5449L9.63136 18.8228C9.88282 19.0774 9.8803 19.4876 9.62574 19.7391C9.37117 19.9905 8.96096 19.988 8.7095 19.7335L7.50459 18.5137C7.39104 18.4504 7.3071 18.431 7.25026 18.426C7.18448 18.4203 7.12354 18.4313 7.05978 18.4573C6.91636 18.5159 6.79333 18.6313 6.65652 18.7691C6.4611 19.004 6.42638 19.1929 6.43343 19.3189C6.44127 19.4591 6.50463 19.5852 6.59048 19.673L9.52673 22.586C9.77984 22.8371 9.78249 23.2456 9.53265 23.4999C9.2828 23.7543 8.87438 23.759 8.61876 23.5104L8.22865 23.1311V23.623C8.24763 24.1981 8.60657 24.7179 9.15357 25.1243C9.71443 25.541 10.3301 25.7301 10.6198 25.7301H14.6969C15.587 25.6238 16.1129 25.3237 16.2057 25.252C17.6012 24.1569 18.629 22.8236 18.9789 22.282C19.965 20.0757 18.9393 18.2565 18.341 17.6508L14.6474 13.9116ZM6.93288 21.8379V23.6327L6.93312 23.6505C6.96401 24.7762 7.65626 25.6261 8.38077 26.1644C9.09398 26.6943 9.97451 27.0259 10.6198 27.0259H14.7343C14.7585 27.0259 14.7826 27.0245 14.8067 27.0218C15.9128 26.8974 16.6893 26.5178 17.0025 26.2739L17.0044 26.2724C18.5682 25.0455 19.7067 23.557 20.0979 22.9372C20.1134 22.9127 20.1272 22.8871 20.1393 22.8607C21.4417 20.0111 20.126 17.614 19.2629 16.7402L17.6781 15.1359V6.01643C17.6781 4.8663 16.7457 3.93393 15.5956 3.93393H2.0825C0.932367 3.93393 0 4.8663 0 6.01643V19.5295C0 20.6797 0.932368 21.612 2.0825 21.612H6.70519L6.93288 21.8379ZM5.13682 19.2982H2.31389V6.24782H15.3642V12.8096C14.7425 12.2755 13.8096 11.8694 12.7314 12.3697C12.2925 12.5733 12.0053 12.926 11.8384 13.2984C11.1789 12.8743 10.2855 13.0031 9.62023 13.5082C9.24833 13.7906 9.04821 14.1549 8.94823 14.5061C8.86696 14.4778 8.7815 14.4544 8.69206 14.4374C8.15818 14.3357 7.58059 14.4801 7.04965 14.9664C6.21364 15.7322 6.13093 16.6828 6.43561 17.319C6.09639 17.4901 5.85345 17.7375 5.73648 17.8566L5.71719 17.8762C5.70638 17.8871 5.69596 17.8985 5.68595 17.9101C5.31058 18.3486 5.1343 18.8291 5.13682 19.2982Z",fill:i.color},null,8,Ffi)],8,_fi)}const m0e=H(Rfi,[["render",Ofi]]),Ufi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAkhSURBVHgB7Z3NbhvXFcfPvRTkWg5QdqW2aRAaTbMokHKUOpLQTahNYdMGTD2BqSewuuvO1BNYWnZl+QmkAIWoeqPRpoioGBrKbRAgATQGkiDJJgyQSIli3pNz5oMcUqT4oRnxXkk/QCA5M6Q4/7nzn3vOuXcIYBjW9N8LYCASDAPF2CMrl0uDYRgltPW3vMUP6vDGfTAMo4RWdfGAH4VQRTAMo4QWgL4/o7BMsw9jhA5sI+O9EJA2zT6METq0jRDT7MMYoRu2EWKYfRghdItthBhmH0YI3W4bISbZhxFCn7CNEIPsQ3uhO9pGiEH2ob3Q3WwjxBT7SFRoPq2t2UIGzkBX2wgxxD4SE9qaubuIhzcOEI8PsjP5g2GybidtA22lMAcIq41FhthHIkJbs/kiAj4GgWFLy1DWbc26dTs3wMc0bQOhhlBfrO6U517slrerlY0FpdQCrXB5tQn2kYjQiNCxhamUGKjl+baBtpBqan/nPyvRdS92N1eFwDmvdRtgH2OgKdbs7YzC+nK7wFGcDzddelh4573b2/j9r9hmbNAUAQlAO16UUj5pX/4KX1n/rzyrwiUkBQnwzZefOZNv/JGOosh5C9hjRf2f/6s8+wAuKUO36KPn7xYlitq1W8/Xu23DvvnT8cSvr40ffufYdg0uMUMJ/dPzv65B0L+lC5I9/u7eHCSM9V5QxhLwZrhMAlbpQug6uxsOaM7AQh/tWRmp5EF02c91NfXatBP7zlqz93J0QbwvUBYjXcVOuGRP3DtZCi6Q2jGw0LhnpY99oRs7Pi7Vb8SUE5s1eF21o4kSAjyEAREIS05lowSaMZx1fGSRbYhHHJUJxNL4LecpxAR36xDlFpxIJKFNwjugqPUyEjL05clOggtu67YOWdq8Tq07ke7dsHgiq9Rewya8iFAty4kfV7pdTL3+NsADgaJIu5OJrHIpYpzTRWxthD7ZkikiFLjQr1DB+9fAa+Uh6FDYPgUakEg/ehgmf/825UYg571AtVqtbM5/9flnffs+b/v1F5/+a/L1t24KIQKxxW8nX/8T0PJtGDGJZu+y03e/tabzpZ7bUhKKRC76r9AlkRdgSOTEtUVgLw+gU3aRWzuMmMSEpuzdQ/ZaFPCo57YoGr0LL1F0Bhx7vSYUNA8Up1Ejnz8qkhR6hVsnpzdP287POaMVvGk1jouXF8BEctZ8oRx1di+x7N3+TnmZHpZ7bafq8n1BfTbvOeIqxAQFL0+RAx3vBfX5R5zdG3nNkETOeU+oK8dJfYgJOjNsCs8bF1PKhWdhhGhQnBX+KS0w/nyFCIIb7+OFBSNEA6ExA8mhTcbQuBH/pqJtKYvxUqMo0/Da947p+WwtWzQHGNmZ/B5K2MOU2sKjib1OwxV4zIh1614ODEBLoRFTXG+0EFUJFS56vXIYexL2hf0DcXeLx4zwgRh23Mh5MrR1eDv9w0QBpaDM2c8rTuXZOsSAlSuk8eg4R2qv71c2l7xl0/deolBrwUAZ6h+n1vwgB7kL53L4HhwIO06LYeui/XssBAc/9e2zBFMDCR0VFw8pSyYpnUlBRlwityCahQWQiv4P55pe1TiSxDqJTAeiWinP8+q/zOZdymmU1NF1HnCzAjHBESZ9tu1HmRLoLLKHFb2n0B3F5b32EqzoColLECOcq8jO3LE5oZ+dzj9BgTVUlGsWyk2NiSoojiLZ8ZrBiAS5jRxdoog9zN7/cGOJrIltic+gHCJnGAcXvaPQp4vbBKm6Ut2JP7HOeWhKNHHatCj4n5LIQol5Z7fs8nrKCtYoAilaM3eoOAsuefnj4PvYkACcpOILc+vSwURvCN2vuM3/A6vkobGVsKIEX3b+z37lGz7eLbdEjVQ+m0MQW5QZfBx+P75wvtjdTCTvHFhIieqRpc5b9BZ9zJq+U0AhH/YlbuNzocYVZ0iYj7sMI+Adp57HlKqL+9T809ySkxI5JLCQInQbFN+gTXTqKMDEsT3mVMrr78zk6cyAAglYaLkIdYO3UYpbmwsjImgtsV34euGXynqJHEANkXM3dJatChKZe0KedbzY2eChWvy3QKLflyw4nC56Et0pnQnqmadsEIqLq1RM/qBdlxMXw75Fp9d4eJ0Di3m44FCprdSxNfcQN8qp3bueogtR4IgskX60JgSW0SzHDSBulL4Dlm6iX3QL8SxjSHGjDBWCt4sOh+M5en7hWjW15pxSqjSsuFHOnCYNRL+QeOWwmNA6Hx3CmTrun/JznpUVZ23xvLiqsJwTV0KfE1dCnxNXQp8TRlwMOxFcIDP8XKYgt/ffjZfR+qHz0b9t0AjthPb7rvJ9fi6l2u7exfJEzkTeRxGcCvMRLv3dBI3QTmgWmfK5peA5P9rR9ZTBLViz9wQVbdM8YcUUjPNoIcWi13JPn6WlHTqMvfNDW544Tx4rWqZGXBxGbh1UfF0nB7C8tGtKbfXxDhd8D86Ek4PwWN2EcVmDOmjLyFs0l4ggMhWiJyhsvm8HQmq5sSgln+Ar0cdBGh1aeHR1Z2PKu9GJd++N/rKA8vrY0/DGKMCtW3PP1mqeYQhPMgqEc0l4h75lY7gXAi7u75S9WqE/L1E+ak40amzExWM6ePJB2IPhg8h3roERoWXAghKXg9I+tdSWeyq5UmAjLRveGIX/eLgEHl1f82bSst+jPBCRZoSgbBgh2swzjPL1559uT/7h7TTpNNtciv4gmkr5k07v+cp1f/zdG2+9JKGLJ9eiu3+GKXVxoKV1hLA11FFmQWHf81v8cSqCa3yWV4Kiyo+YOPzHZb9fyBVXXBIGnYCpwzTk09A415EGnl7RS8Bw9H+9Lt4EjdFWaB4nTb2FGnfTuk3c927Lyff3AJXRvWCrdfZOKeENC+aJ+948laB1N+awhLflpLAcNEdroVM3xtcj04z5xicH2en8mt+K/eEHTJxzyJNC6340k525s9X5vkkh6FKSSatqSif0v1F3YB9dMcA2GO2FbrOPE5hgG4z2Qnu9D6G65KvRNWV4mBk/D9LNPgyxDcYIobvZhym2wRghdGf7MMc2GHN+lKzdPgyyDcYYodvtwyTbYIwRutU+zLINxqyfQg3twzDbYIwSOrQP02zDSPjWEmAg5g1ypEIrGMgvJG+j0Idlmd0AAAAASUVORK5CYII=",JR=document.createElement("img");JR.src=Ufi,JR.style.cursor="grabbing";function Nfi({dataTransferType:t="areas_zone-id",getData:e=()=>null,onDropCB:i=()=>{}}={}){const r=pe(!1),o=pe(!1);function n(u){u.dataTransfer.types.includes(t)&&(u.preventDefault(),u.dataTransfer.dropEffect="move")}function a(){o.value=!1}function s(u){r.value=!0,u.dataTransfer.setData(t,e()),u.dataTransfer.effectAllowed="move",u.dataTransfer.setDragImage(JR,45,45)}function l(){r.value=!1}function c(u){o.value=!1;const h=parseInt(u.dataTransfer.getData(t),10);i?.(h)}function d(u){u.dataTransfer.types.includes(t)&&(o.value=!0)}return{dragging:r,dragover:o,onDragOver:n,onDragLeave:a,onDragStart:s,onDragEnd:l,onDrop:c,onDragEnter:d}}const jfi=["draggable"],Vfi={class:"layout-settings__header"},Hfi={key:0,class:"layout-settings__swap"},zfi={key:1,class:"layout-settings__split"},qfi={class:"layout-settings__split__text"},Gfi={class:"layout-settings__split__text"},Qfi={key:2,class:"layout-settings__buttons"},Kfi={__name:"LayoutSettings",setup(t){const e=mt("$viewer"),{localContext:i}=e,r=Xe(()=>i.window),o=Xe(()=>e.globalContext.localContexts.length>1),n=Xe(()=>e.layout.settings.swap),a=Xe(()=>e.layout.settings.full);function s(){e.layout.settings.swap=!e.layout.settings.swap}function l(){i.loadWindow(null),e.layout.settings.edit=!1}function c(){i.close()}function d(k="row"){e.globalContext.open({localContextId:i.id,ratio:50,direction:k})}function u(){d(),e.layout.settings.edit=!1}function h(){d("column"),e.layout.settings.edit=!1}yt(()=>e.globalContext.localContexts.length,k=>{var B;k===1&&e.layout.settings.edit&&((B=e.globalContext.localContexts[0].window)==null?void 0:B.header)===!1&&(e.layout.settings.edit=!1)});const{dragging:f,dragover:A,onDragOver:p,onDragLeave:g,onDragStart:m,onDragEnd:b,onDrop:y,onDragEnter:v}=Nfi({getData:()=>String(i.id),onDropCB:k=>{Number.isNaN(k)||e.globalContext.swap(k,i.id)}}),x=Xe(()=>e.layout.settings.swap);return(k,B)=>{const M=T("BIMDataIconWindowRight"),P=T("BIMDataButton"),S=T("BIMDataIconWindowBottom"),I=T("BIMDataIconDelete"),L=T("BIMDataTooltip");return E(),F("div",{class:ae(["layout-settings",{"layout-settings--swap":n.value,"layout-settings--dragging":wt(f),"layout-settings--dragover":wt(A)}]),draggable:x.value,onDragover:B[0]||(B[0]=(..._)=>wt(p)&&wt(p)(..._)),onDragleave:B[1]||(B[1]=(..._)=>wt(g)&&wt(g)(..._)),onDragenter:B[2]||(B[2]=(..._)=>wt(v)&&wt(v)(..._)),onDragstart:B[3]||(B[3]=ft((..._)=>wt(m)&&wt(m)(..._),["self"])),onDrop:B[4]||(B[4]=(..._)=>wt(y)&&wt(y)(..._)),onDragend:B[5]||(B[5]=(..._)=>wt(b)&&wt(b)(..._))},[C("div",Vfi,Q(k.$t(n.value?"window-manager.swap":"window-manager.description"))+". ",1),n.value?(E(),F("div",Hfi,[D(m0e,{color:"#ffffff",size:2})])):(E(),F("div",zfi,[D(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:u},{default:V(()=>[D(M),C("span",qfi,Q(k.$t("window-manager.vertical")),1)]),_:1}),D(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:h},{default:V(()=>[D(S),C("span",Gfi,Q(k.$t("window-manager.horizontal")),1)]),_:1})])),a.value?(E(),F("div",Qfi,[o.value?(E(),Z(L,{key:0,text:k.$t("global.delete"),position:"left"},{default:V(()=>[D(P,{disabled:n.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:c},{default:V(()=>[D(I,{fill:"",color:"high"})]),_:1},8,["disabled"])]),_:1},8,["text"])):re("",!0),o.value?(E(),Z(L,{key:1,text:k.$t("window-manager.swap_tooltip"),position:"left"},{default:V(()=>[D(P,{fill:"",square:"",icon:"",color:n.value?"secondary":"default",width:"50px",height:"50px",onClick:s},{default:V(()=>[D(m0e)]),_:1},8,["color"])]),_:1},8,["text"])):re("",!0),r.value?(E(),Z(L,{key:2,text:k.$t("window-manager.change"),position:"left"},{default:V(()=>[D(P,{disabled:n.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:l},{default:V(()=>[D(Dfi)]),_:1},8,["disabled"])]),_:1},8,["text"])):re("",!0)])):re("",!0)],42,jfi)}}},Zfi=H(Kfi,[["__scopeId","data-v-d37dfd4d"]]);function Wfi(t,e=()=>{}){const i=pe(0),r=pe(0),o=pe(0),n=pe(0),a=l=>{l.forEach(c=>{const{width:d,height:u,x:h,y:f}=c.target.getBoundingClientRect();i.value=d,r.value=u,o.value=h,n.value=f,e?.({width:i.value,height:r.value,x:o.value,y:n.value})})},s=new ResizeObserver(a);return Pi(()=>{s.observe(t.value)}),ur(()=>s.disconnect()),{width:i,height:r,x:o,y:n}}class Jfi extends Zj{constructor(e){super(e);const{width:i,height:r,x:o,y:n}=Wfi(this.templateRef,a=>this.hub.emit("context-resize",a));this._resolution=pe(1),this._width=i,this._height=r,this._x=o,this._y=n}get width(){return this._width.value}get height(){return this._height.value}get x(){return this._x.value}get y(){return this._y.value}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}}class Xfi extends Jfi{constructor(e){super(e),this.viewer=null,this._annotationMode=pe(!1)}get annotationMode(){return this._annotationMode.value}async getSnapshot(){if(!this.viewer)throw new Error("[localContext.getSnapshot] Error: no viewer registered in this localContext.");await this.hideUI();const e=await this.viewer.getSnapshot();return await this.showUI(),e}getViewpoint(e){if(!this.viewer)throw new Error("[localContext.getViewpoint] Error: no viewer registered in this localContext.");return this.viewer.getViewpoint(e)}setViewpoint(e,i){if(!this.viewer)throw new Error("[localContext.setViewpoint] Error: no viewer registered in this localContext.");this.viewer.setViewpoint(e,i)}startAnnotationMode(e){if(!this.viewer)throw new Error("[localContext.startAnnotationMode] Error: no viewer registered in this localContext.");if(!this.annotationMode)return this._annotationMode.value=!0,this.viewer.startAnnotationMode(e)}stopAnnotationMode(){if(!this.viewer)throw new Error("[localContext.stopAnnotationMode] Error: no viewer registered in this localContext.");this._annotationMode.value=!1,this.viewer.stopAnnotationMode()}fitView(e){if(!this.viewer)throw new Error("[localContext.fitView] Error: no viewer registered in this localContext.");this.viewer.fitView(e)}async showUI(){if(!this.viewer)throw new Error("[localContext.showUI] Error: no viewer registered in this localContext.");this.pluginComponentInstances.forEach(e=>e.$show()),this.viewer.showUI(),await mr()}async hideUI({exceptions:e=[]}={}){if(!this.viewer)throw new Error("[localContext.hideUI] Error: no viewer registered in this localContext.");e.push(this.viewer.$plugin.name),[...this.pluginComponentInstances.entries()].filter(([i])=>!e.includes(i)).forEach(([,i])=>i.$hide()),this.viewer.hideUI(),await mr()}}class Yfi extends Xfi{constructor(e){super(e),this.modelTypes=null,this.multiModel=!0,this._loadedModels=ir([]),this._loadingModelIds=pe([]),this._selectedStorey=ir(null),this._shownPlans=ir([]),this._loadedModelIds=Xe(()=>this._loadedModels.value.map(i=>i.id)),this._automaticFirstModelsLoading=!1,this._globalContextSubscription=null,ur(()=>{e.globalContext.hub.off(this._globalContextSubscription)})}get loadedModels(){return this._loadedModels.value}get loadingModelIds(){return this._loadingModelIds.value}get loadedModelIds(){return this._loadedModelIds.value}get selectedStorey(){return this._selectedStorey.value}async loadModels(e,i={}){var r;const o=this._$viewer;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] loadModels requires an array of model ids.");this.multiModel||(e.length>1&&(e=[e[0]]),this.loadedModels.length>0&&this.unloadModels(this.loadedModelIds)),this.loadingModelIds.push(...e),this.hub.emit("models-loading",{ids:e});const n=[],a=[];for(const l of e)this.loadedModelIds.includes(l)||(o.state.modelsMap.has(l)?n.push(o.state.modelsMap.get(l)):a.push(l));n.push(...await o.state.loadModels(a)),this._loadingModelIds.value=this.loadingModelIds.filter(l=>!e.includes(l));const s=n.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0});if(s.forEach(l=>{l.status!=="C"&&console.warn(`[BIMDataViewer - Local State] Model with id ${l.id} has an uncompleted status, loading may fail`)}),s.length!==0&&(this._loadedModels.value=[...this.loadedModels,...s],await((r=this.viewer)==null?void 0:r.loadModels(s,i)),this.hub.emit("models-loaded",{models:s}),o.globalContext.hub.emit("models-loaded",{models:s,emitter:this})),i!=null&&i.viewpoint&&this.viewer&&this.setViewpoint(i.viewpoint),i!=null&&i.storey){const l=s.flatMap(c=>c.storeys).find(c=>c.key===i.storey);l&&this.selectStorey(l)}return s}unloadModels(e){var i;const{loadedModels:r,$viewer:o}=this;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] unloadModels requires an array of ids.");const n=e.map(a=>o.state.modelsMap.get(a)).filter(Boolean);return n.length===0?!1:(this._loadedModels.value=r.filter(a=>!n.includes(a)),(i=this.viewer)==null||i.unloadModels(n),this.selectedStorey&&n.some(a=>a.storeys.some(s=>s.key===this.selectedStorey.key))&&this.selectStorey(null),this.hub.emit("models-unloaded",{models:n}),o.globalContext.hub.emit("models-unloaded",{models:n,emitter:this}),n)}get automaticFirstModelsLoading(){return this._automaticFirstModelsLoading}set automaticFirstModelsLoading(e){this._automaticFirstModelsLoading=e,e?this._onAutomaticFirstModelsLoading():this._$viewer.globalContext.hub.off(this._globalContextSubscription)}async _onAutomaticFirstModelsLoading(){const{_loadedModels:e,_loadingModelIds:i,$viewer:r}=this,o=r.globalContext.loadedModels.filter(s=>{var l;return((l=this.modelTypes)==null?void 0:l.includes(s.type))??!0});o.length>0&&this.loadModels(o.map(s=>s.id)),r.globalContext.hub.off(this._globalContextSubscription);const n=s=>{s=s.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0}),s.length>0&&e.value.length===0&&i.value.length===0&&this.loadModels(s.map(l=>l.id))};await mr();let a=!0;this._globalContextSubscription=r.globalContext.hub.on("models-loaded",({models:s,emitter:l})=>{!a&&l===this||n(s)},{getLastEvent:!0}),a=!1}selectStorey(e,i=!0){this._selectedStorey.value=e,this.shownPlans.length>0&&this.shownPlans.forEach(r=>this.hidePlan(r)),i&&e?.plans.length>0&&e.plans.forEach(r=>this.showPlan(r)),this.hub.emit("storey-selected",{storey:e})}get shownPlans(){return this._shownPlans.value}showPlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?!1:(this._shownPlans.value=[...this._shownPlans.value,e],this.hub.emit("plan-shown",{plan:e}),!0)}hidePlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?(this._shownPlans.value=this._shownPlans.value.filter(i=>i.key!==e.key),this.hub.emit("plan-hidden",{plan:e}),!0):!1}}class $fi extends Yfi{constructor(e,i){super(e),this.id=i,this._window=ir(null),this.pluginInstances=new Map,ur(()=>{this.unloadWindow()})}get $viewer(){const e=this;return new Proxy(this._$viewer,{get(i,r,o){return r==="localContext"?e:Reflect.get(i,r,o)}})}get pluginComponentInstances(){return new Map([...this.pluginInstances.values()].filter(e=>e.componentInstance).map(e=>[e.name,e.componentInstance]))}get plugins(){return this.pluginComponentInstances}get window(){return this._window.value}unloadWindow(){if(!this.window)return!1;const e=this.window,i=this.window.name;return this.pluginInstances.clear(),this._window.value=null,this.loadedModelIds.length>0&&this.unloadModels(this.loadedModelIds),this.automaticFirstModelsLoading=!1,this._$viewer.globalContext.hub.emit("window-close",{window:e,name:i,localContext:this}),!0}async loadWindow(e=null,i=null){const r=!!this.window;if(this.unloadWindow(),e===null)return null;if(r&&await mr(),!this.$viewer.windowManager.registeredWindows.has(e)){const l=`Cannot load window with name "${e}" because it is not registered.`;return console.warn(l),null}this._window.value=this.$viewer.windowManager.registeredWindows.get(e);const o=Array.from(this.window.plugins??[]);this.pluginInstances.clear(),o.map(l=>this.$viewer.pluginManager.getPluginInstance(l,this)).filter(Boolean).sort(({button:{stance:l=0}={}},{button:{stance:c=0}={}})=>l-c).forEach(l=>this.pluginInstances.set(l.name,l)),this.modelTypes=Array.isArray(this.window.modelTypes)?this.window.modelTypes:null,this.multiModel=this.window.multiModel??!0,this._loadedModels.value=[],this._loadingModelIds.value=[];const{modelIds:n,viewpoint:a,storey:s}=i??{};return this.window.noModel!==!0&&(n?.length>0?(this.automaticFirstModelsLoading=!1,this.loadModels(n,{viewpoint:a,storey:s})):this.automaticFirstModelsLoading=!0),this._$viewer.globalContext.hub.emit("window-open",{window:this.window,name:this.window.name,localContext:this}),this.window}close(){return this._$viewer.globalContext.close(this.id)}getPlugin(e){return console.warn("[BIMData Viewer] DEPRECATED - Ambigous name. Do not use localContext.getPlugin(name), use the localContext.pluginComponentInstances Map instead."),this.pluginComponentInstances.get(e)}}const eAi={name:"WindowContainer",components:{PluginComponentInstanceContainer:h4,LayoutSettings:Zfi,SidePanel:pfi,SideColumn:Sfi,ModalManager:f0e},inject:["$viewer"],props:{windowName:{type:String,default:null},windowState:{type:Object,default:null},zoneId:{type:Number,required:!0}},setup(t){const e=mt("$viewer"),{globalContext:i}=e,r=new $fi(e,t.zoneId);hr("$viewer",r.$viewer);const{templateRef:o}=r,n=()=>{o.value&&(o.value.scrollTop=0,o.value.scrollLeft=0)};Pi(()=>{o.value.addEventListener("scroll",n,{passive:!0})});const a=()=>{i.activeLocalContext=r},s=()=>{i.activeLocalContext===r&&(i.activeLocalContext=null)},l=Xe(()=>{var d;const u=[];let h=null,f=null;const A=[],p=[],g=[];return r.window?g.push(...r.pluginInstances.values()):((d=e.windowManager.defaultWindow)==null?void 0:d.plugins.length)>0&&g.push(...e.windowManager.defaultWindow.plugins.map(m=>e.pluginManager.getPluginInstance(m,this)).filter(Boolean).sort(({button:{stance:m=0}={}},{button:{stance:b=0}={}})=>m-b)),g.forEach(m=>{!m.button&&!m.sidePanel?m.isViewer?u.unshift(m):u.push(m):m.sidePanel?m.sidePanel.position==="left"?(h&&console.warn(`[BIMDataViewer - WindowContainer] Window ${r.window.name}, Multiple left side panels are not supported. Only the last one will be displayed.`),h=m):m.sidePanel.position==="right"&&(f&&console.warn(`[BIMDataViewer - WindowContainer] Window ${r.window.name}, Multiple right side panels are not supported. Only the last one will be displayed.`),f=m):m.button.position==="left"?A.push(m):m.button.position==="right"&&p.push(m)}),{free:u,leftSidePanel:h,rightSidePanel:f,leftButtonColumn:A,rightButtonColumn:p}});r.loadWindow(t.windowName,t.windowState);const c=Xe(()=>{const d=l.value.leftSidePanel,u=d!=null&&d.shown?d.sidePanel.width:0,h=l.value.rightSidePanel,f=h!=null&&h.shown?h.sidePanel.width:0;return r.width-u-f});return{onMouseEnter:a,onMouseLeave:s,templateRef:o,modalManagerTemplateRef:r.modalManagerTemplateRef,windowPlugins:l,layoutSettingsDisplayed:Xe(()=>e.layout.settings.edit),spinner:Xe(()=>r.spinner),loading:Xe(()=>r.loading),width:Xe(()=>r.width),height:Xe(()=>r.height),resolution:Xe(()=>r.resolution),localContext:r,centerWidth:c}},created(){this.$viewer.windowManager.windowContainers.push(this)},unmounted(){const t=this.$viewer.windowManager.windowContainers.indexOf(this);t!==-1&&this.$viewer.windowManager.windowContainers.splice(t,1)}},tAi={class:"window-container__content"},iAi={class:"window-container__content__center"},rAi={key:0,class:"bimdata-context-loading-overlay",style:{"z-index":"2"}},oAi={key:1,class:"window-container__layout-settings",style:{"z-index":"5"}};function nAi(t,e,i,r,o,n){const a=T("ModalManager"),s=T("SidePanel"),l=T("PluginComponentInstanceContainer"),c=T("SideColumn"),d=T("BIMDataSpinner"),u=T("LayoutSettings");return E(),F("div",{ref:"templateRef",class:"window-container",style:se(`
|
|
5521
5521
|
--bimdata-local-context-height: ${r.height}px;
|
|
5522
5522
|
--bimdata-local-context-width: ${r.width}px;
|
|
5523
5523
|
--bimdata-local-context-center-width: ${r.centerWidth}px;
|
|
5524
5524
|
--bimdata-local-context-resolution: ${r.resolution};
|
|
5525
|
-
`),onMouseenter:e[0]||(e[0]=(...h)=>r.onMouseEnter&&r.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>r.onMouseLeave&&r.onMouseLeave(...h))},[D(a,{ref:"modalManagerTemplateRef"},null,512),C("div",tAi,[r.windowPlugins.leftSidePanel?(E(),Z(s,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):re("",!0),C("div",iAi,[(E(!0),F(ct,null,Et(r.windowPlugins.free,h=>(E(),Z(l,{key:h.name,class:ae({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(E(),Z(s,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):re("",!0)]),r.loading?(E(),F("div",rAi,[r.spinner&&r.spinner.component?(E(),Z(br(r.spinner.component),Da(gn({key:0},r.spinner.props)),null,16)):(E(),Z(d,{key:1,size:"20px",border:"3px"}))])):re("",!0),r.layoutSettingsDisplayed?(E(),F("div",oAi,[D(u)])):re("",!0)],36)}const aAi=H(eAi,[["render",nAi],["__scopeId","data-v-8a549a80"]]);class sAi{constructor(e=!0){const i=Z0i(Tj,null,{resizable:e});i.registerContent("default",aAi),this.settings=Jo({edit:!1,swap:!1,full:!1}),this.areas=i}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?W0i(e):null}copy(e,i=!0){return J0i(this.areas.layout,e,i)}open({ratio:e,direction:i,insertAfter:r,windowName:o=null,windowState:n=null,localContextId:a=null}={}){const s=o?{options:{windowName:o,windowState:n}}:null;return a===null?this.areas.splitLayout(e,i,r,s):this.areas.split(a,e,i,r,s)}swap(e,i){return this.areas.swap(e,i)}close(e){return this.areas.delete(e)}compare(e,i){var r,o;if(!e&&!i)return!0;if(!e||!i)return!1;if(typeof e=="string"&&typeof i=="string")return e===i;if(typeof e=="string"||typeof i=="string")return!1;if(e.windowName&&i.windowName){if(e.windowName!==i.windowName)return!1;const n=new Set((r=e.windowState)==null?void 0:r.modelIds),a=new Set((o=i.windowState)==null?void 0:o.modelIds);return n.size===a.size&&[...n].every(s=>a.has(s))}return e.windowName||i.windowName||e.direction!==i.direction||e.children.length!==i.children.length?!1:e.children.every((n,a)=>this.compare(n,i.children[a]))}}const lAi="2.11.0",cAi={version:lAi};class dAi{constructor({plugins:e,api:i,ui:r,locale:o="fr"}){this.pluginManager=new shi(e),this.windowManager=new chi,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new X1i(i),this.globalContext=new V4e(this),this.state=p0i(this),this.shortcutManager=Rfe(this.state),this.uiSettings=r||{},this.i18n=new N4e(o),this._contextMenu=null,this.layout=new sAi(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return cAi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Lfe}set contextMenu(e){this._contextMenu=e}get registeredWindows(){return[...this.windowManager.registeredWindows.keys()]}get registeredPlugins(){return[...this.pluginManager.registeredPlugins.keys()]}get pluginsCfg(){return this.pluginManager.cfg}registerPlugin(e){this.pluginManager.registerPlugin(e),this.windowManager.registerAndAddPluginsToWindows([e])}}function uAi(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const hAi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Dm=Object.freeze({READ:"read",WRITE:"write"});function g0e(t){const e={};return t.forEach(i=>{const[r,o]=i.split(":");e[r]?e[r].push(o):e[r]=[o]}),e}const pAi={token_scopes:[],usable_scopes:[],user_role:25};function v0e(t=pAi){var e,i,r,o,n,a;const s=g0e(t.token_scopes),l=g0e(t.usable_scopes);return{...mG(t),tokenScopes:s,usableScopes:l,userRole:hAi[t.user_role],user:t.user?mG(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(Dm.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(Dm.WRITE))??!1,hasModelReadPermission:((r=l.model)==null?void 0:r.includes(Dm.READ))??!1,hasModelWritePermission:((o=l.model)==null?void 0:o.includes(Dm.WRITE))??!1,hasDocReadPermission:((n=l.document)==null?void 0:n.includes(Dm.READ))??!1,hasDocWritePermission:((a=l.document)==null?void 0:a.includes(Dm.WRITE))??!1}}const fAi={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},AAi={BcfComponents:fAi},mAi={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},gAi={BcfComponents:mAi},vAi={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},yAi={BcfComponents:vAi},bAi={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},wAi={BcfComponents:bAi},CAi={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},xAi={BcfComponents:CAi},kAi={de:AAi,en:gAi,es:yAi,fr:wAi,it:xAi},MAi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?rr.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(kAi).forEach(([o,n])=>{i.global.mergeLocaleMessage(o,n)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(s9e).forEach(([o,n])=>{r.component(o,n)})}}),PAi={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},EAi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},BAi={BuildingMaker:PAi,FileManager:EAi},SAi={t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},IAi={title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},TAi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},LAi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},DAi={title:"Photosphere Building"},RAi={BIMDataComponents:SAi,BuildingMaker:IAi,FileManager:TAi,MetaBuildingStructure:LAi,PhotosphereBuilding:DAi},_Ai={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},FAi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},OAi={BuildingMaker:_Ai,FileManager:FAi},UAi={t:{back:"Retour",cancel:"Annuler",create:"Cr\xE9er",delete:"Supprimer",download:"T\xE9l\xE9charger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"\xC9tage",validate:"Valider"}},NAi={title:"Building Maker",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du b\xE2timent",error:"Nom invalide"},view:{addStorey:"Ajouter un \xC9tage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide"}},jAi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"S\xE9lectionner une page"},VAi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"\xC9quipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"}},HAi={title:"Photosph\xE8re Building"},zAi={BIMDataComponents:UAi,BuildingMaker:NAi,FileManager:jAi,MetaBuildingStructure:VAi,PhotosphereBuilding:HAi},qAi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},GAi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},QAi={BuildingMaker:qAi,FileManager:GAi},KAi={de:BAi,en:RAi,es:OAi,fr:zAi,it:QAi},ZAi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(KAi).forEach(([i,r])=>{t.global.mergeLocaleMessage(i,r)}):console.warn("[BIMData Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(SZt).forEach(([i,r])=>{e.component(i,r)})}}),WAi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(r=>r===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},JAi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Js,BIMDataClickInputAway:WAi},Symbol.toStringTag,{value:"Module"})),XAi=t=>({install(e){Object.entries(XJe).forEach(([i,r])=>{e.component(i,r)}),Object.entries(JAi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),YAi={name:"LiWrapper",render(){return Kr("li",this.$slots.default())}};function $Ai(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const xl=Ko("id"),e2i=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:r})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return r.get(this.name)},execute:()=>i.selectObjects(e.filter(Os(Mi("visible"),xu("selected"))).map(xl)),predicate:()=>e.some(Os(Mi("visible"),xu("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return r.get(this.name)},execute:()=>i.deselectObjects(e.filter(Mi("selected")).map(xl)),predicate:()=>e.some(Mi("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return r.get(this.name)},execute(){const o=e.filter(n=>n.visible&&n.type===this.selectedObject.type&&n.id!==this.selectedObject.id).map(xl);i.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Os(Mi("visible"),Mi("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Mi("selected")).map(xl)),n=new Set(e.filter(Mi("visible")).map(xl));i.selectObjects(Array.from($Ai(n,o)),{exclusive:!0})},predicate:()=>e.some(Os(xu("selected"),Mi("visible")))&&e.some(Os(Mi("selected"),Mi("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return r.get(this.name)},execute:()=>i.showObjects(e.filter(xu("visible")).map(xl)),predicate:()=>e.some(xu("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return r.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Mi("selected"));o.length>0&&i.deselectObjects(o.map(xl)),i.hideObjects(this.objectsToHide.map(xl))},predicate(){return this.objectsToHide=e.filter(Os(Mi("selected"),Mi("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Mi("visible"));o.some(Mi("selected"))&&i.deselectObjects(o.filter(Mi("selected")).map(xl)),i.hideObjects(o.map(xl))},predicate:()=>e.some(Mi("visible"))}].filter(o=>o.predicate()),t2i={components:{LiWrapper:YAi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const r=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(o=>r.set(o.name,o.key)),e2i({contextMenu:this,objects:t,state:e,pictos:r})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((r,o)=>(r.position=r.position||0,o.position=o.position||0,r.position-o.position)));const e=[...t.keys()].sort((i,r)=>i-r).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},i2i={key:0,class:"separator"},r2i={class:"menu-text"},o2i={key:1,class:"menu-picto"},n2i={key:0,class:"context-menu__spinner"};function a2i(t,e,i,r,o,n){const a=T("BIMDataIconChevron"),s=T("LiWrapper"),l=T("BIMDataSpinner"),c=ui("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?At((E(),F("ul",{key:0,class:"bimdata-list context-menu",style:se(n.position)},[(E(!0),F(ct,null,Et(o.currentCommands,(d,u)=>(E(),Z(s,{key:d.label,class:"context-menu__element",onClick:h=>n.executeCommand(d)},{default:V(()=>[n.isGroupIntersection(u)?(E(),F("div",i2i)):re("",!0),C("div",r2i,Q(d.label),1),!d.component&&d.picto?(E(),F("span",o2i,Q(d.picto),1)):d.component?(E(),Z(a,{key:2,size:"xxs",class:"fill-primary"})):re("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(E(),F("li",n2i,[D(l)])):re("",!0)],4)),[[c,n.away]]):re("",!0)}const s2i=H(t2i,[["render",a2i],["__scopeId","data-v-5b87d4a3"]]),l2i={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=mt("$viewer"),e=Jo(new Map),i=o=>{if(!o.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(o.name))throw new Error(`[Viewer Header] Content with name ${o.name} already exists`);e.set(o.name,o)},r=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Xe(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,n)=>o.order-n.order).map(o=>o.component)),headerLeftContentComponents:Xe(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,n)=>o.order-n.order).map(o=>o.component)),addContent:i,removeContent:r}}},c2i={class:"viewer-header"},d2i={class:"viewer-header__content"},u2i={class:"viewer-header__content__left"},h2i={class:"viewer-header__content__right"},p2i={key:0,class:"m-l-6 flex items-center"},f2i={key:1,class:"viewer-header__version"};function A2i(t,e,i,r,o,n){const a=T("BIMDataIllustration");return At((E(),F("div",c2i,[C("div",d2i,[C("div",u2i,[(E(!0),F(ct,null,Et(r.headerLeftContentComponents,s=>(E(),Z(br(s),{key:s.name}))),128))]),C("div",h2i,[(E(!0),F(ct,null,Et(r.headerRightContentComponents,s=>(E(),Z(br(s),{key:s.name}))),128))])]),r.logo||r.version?(E(),F("div",p2i,[r.logo?(E(),Z(a,{key:0,name:"logo",width:"30px",height:"30px"})):re("",!0),r.version?(E(),F("div",f2i,Q(r.version),1)):re("",!0)])):re("",!0)],512)),[[zt,i.visible]])}const m2i=H(l2i,[["render",A2i],["__scopeId","data-v-5c9ea6b6"]]),g2i={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const o=a=>{a.preventDefault();const s=a.clientX-r;r=a.clientX,e("resize",s)},n=a=>{a.preventDefault(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",n)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",n)}}}},v2i={class:"bimdata-separator"};function y2i(t,e,i,r,o,n){return E(),F("div",v2i,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...a)=>r.onResizerMousedown&&r.onResizerMousedown(...a))},null,32)])}const b2i=H(g2i,[["render",y2i],["__scopeId","data-v-79a3b3af"]]),w2i={components:{Separator:b2i},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=pe(null),i=pe(t.sidePanel.width??400),r=(o,n=1)=>{const a=i.value+o*n;i.value=Math.max(0,a)};return yt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}i.value=o}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},C2i={class:"bimdata-global-side-panel__component"};function x2i(t,e,i,r,o,n){const a=T("Separator");return E(),F("div",{class:"bimdata-global-side-panel",style:se(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(E(),Z(a,{key:0,onResize:e[0]||(e[0]=s=>r.onResize(s,-1))})):re("",!0),C("div",C2i,[(E(),Z(br(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(E(),Z(a,{key:1,onResize:e[1]||(e[1]=s=>r.onResize(s))})):re("",!0)],4)}const k2i=H(w2i,[["render",x2i],["__scopeId","data-v-82d0d4cb"]]),M2i={name:"BimdataViewer",components:{ContextMenu:s2i,ViewerHeader:m2i,ModalManager:f0e,GlobalSidePanel:k2i},setup(){const t=mt("$viewer"),{globalContext:e,shortcutManager:i}=t;ur(()=>{i&&i.destroy(),e.hub.clear()}),Pi(()=>{t.pluginManager.runPluginsScripts(t)});const r=Xe(()=>{var f;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((f=e.localContexts[0].window)==null?void 0:f.logoAndVersion))}),o=Xe(()=>{var f;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(f=e.localContexts[0].window)!=null&&f.logoAndVersion)?t.version:null}),n=Xe(()=>e.leftSidePanel),a=Xe(()=>e.rightSidePanel),s=Xe(()=>{var f;const A=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((f=e.localContexts[0].window)==null?void 0:f.header)===!1,g=!!(n.value||a.value);return A&&(!p||g)}),l=t.uiSettings.contextMenu!==!1,c=pe(null);function d(f){l&&c.value.open(f)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:s,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:o,version:t.version,loading:Xe(()=>e.loading),spinner:Xe(()=>e.spinner),leftSidePanel:n,rightSidePanel:a}}},P2i={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},E2i={key:2,class:"viewer__logo"},B2i={key:1,class:"version m-t-6"};function S2i(t,e,i,r,o,n){const a=T("ModalManager"),s=T("ContextMenu"),l=T("ViewerHeader"),c=T("GlobalSidePanel"),d=T("BIMDataSpinner"),u=T("BIMDataIllustration");return E(),F("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>r.onContextMenu&&r.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>r.onMouseenter&&r.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>r.onMouseleave&&r.onMouseleave(...h))},[D(a,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(E(),Z(s,{key:0,ref:"contextMenuTemplateRef"},null,512)):re("",!0),D(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:se(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(E(),Z(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):re("",!0),(E(),Z(br(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(E(),Z(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):re("",!0)],4),r.loading?(E(),F("div",P2i,[r.spinner&&r.spinner.component?(E(),Z(br(r.spinner.component),Da(gn({key:0},r.spinner.props)),null,16)):(E(),Z(d,{key:1,size:"40px",border:"5px"}))])):re("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(E(),F("div",E2i,[r.bimdataLogoOnSingleWindow?(E(),Z(u,{key:0,name:"logo"})):re("",!0),r.viewerVersionOnSingleWindow?(E(),F("div",B2i,Q(r.version),1)):re("",!0)])):re("",!0)],544)}const I2i=H(M2i,[["render",S2i],["__scopeId","data-v-0c1c941a"]]),T2i=["src"],L2i={class:"bimdata-models__header"},D2i={key:0,class:"bimdata-models__header__loader"},R2i={class:"bimdata-models__header__picto"},_2i={class:"bimdata-models__header__name"},F2i={key:0,class:"bimdata-models__header__name--empty"},O2i={key:1,class:"bimdata-models__header__name--empty"},U2i={key:3},N2i=["onMousemove","onClick"],j2i={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=mt("$viewer"),r=pe(),o=pe(0),n=pe(0),a=pe(),s=ir([]),l=pe(!1),c=Xe(()=>i.localContext.loadedModels),d=Xe(()=>i.localContext.loadedModelIds),u=Xe(()=>i.localContext.loadingModelIds),h=Xe(()=>i.localContext.multiModel),f=Xe(()=>(e.customFilter?s.value.filter(e.customFilter):s.value).map(k=>c.value.find(B=>{var M;return((M=B.document)==null?void 0:M.head_id)!=null&&B.document.head_id===k.document.id})??k)),A=k=>d.value.includes(k),p=k=>u.value.includes(k),g=Xe(()=>{var k;const{x:B,y:M}=((k=a.value)==null?void 0:k.getBoundingClientRect())??{x:0,y:0};return`top:${n.value-M}px; left:${o.value-B}px;`}),m=k=>{!h.value&&A(k.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(k.id)?i.localContext.unloadModels([k.id]):i.localContext.loadModels([k.id]))},b=k=>{switch(k){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(k,B)=>{k!=null&&k.viewer_360_file&&(o.value=B.clientX,n.value=B.clientY),r.value=k?.viewer_360_file},v=async k=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,k)).filter(B=>i.state.models.some(M=>M.archived)||!B.archived).sort($l("updated_at",!1))}catch(B){console.error("[Models] Cannot get project models. Error: ",B)}finally{l.value=!1}return[]},x=k=>{var B;return((B=k.children)==null?void 0:B.some(M=>A(M.id)))??!1};return v(i.localContext.modelTypes).then(k=>{s.value=k}),(k,B)=>{const M=T("BIMDataSpinner"),P=T("BIMDataIconModel3D"),S=T("BIMDataTextbox"),I=T("BIMDataCheckbox"),L=T("BIMDataRadio"),_=T("BIMDataIcon"),U=T("BIMDataDropdownList");return E(),F("div",{ref_key:"templateRef",ref:a,class:ae(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(E(),F("div",{key:0,class:"bimdata-models__preview",style:se(g.value)},[C("img",{src:r.value},null,8,T2i)],4)):re("",!0),D(U,{style:se(`--bimdata-models-width: ${t.width};`),width:t.width,list:f.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:f.value.length===0,onElementClick:m},{header:V(({isOpen:z})=>[C("div",L2i,[l.value||u.value.length>0?(E(),F("div",D2i,[D(M)])):(E(),F(ct,{key:1},[C("div",R2i,[D(P)]),C("div",{class:ae(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[C("span",null,Q(d.value.length),1)],2),C("div",_2i,[f.value.length===0?(E(),F("span",F2i,Q(k.$t("model.no_model")),1)):d.value.length===0?(E(),F("span",O2i,Q(k.$t("model.no_loaded_model")),1)):d.value.length===1?(E(),Z(S,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):d.value.length>1?(E(),F("span",U2i,Q(k.$t("model.selected_models")),1)):re("",!0)])],64))])]),element:V(({element:z,close:N})=>[C("div",{class:"bimdata-models__model",onMousemove:W=>t.preview&&y(z,W),onMouseout:B[0]||(B[0]=W=>t.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&N()}},[h.value?(E(),Z(I,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(E(),Z(L,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),D(_,{margin:"0 calc(var(--spacing-unit) / 2)",name:b(z.status),size:"xs",class:ae({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),D(S,{class:ae({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||u.value.length>0}),text:z.name,width:`calc(100% -
|
|
5525
|
+
`),onMouseenter:e[0]||(e[0]=(...h)=>r.onMouseEnter&&r.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>r.onMouseLeave&&r.onMouseLeave(...h))},[D(a,{ref:"modalManagerTemplateRef"},null,512),C("div",tAi,[r.windowPlugins.leftSidePanel?(E(),Z(s,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):re("",!0),C("div",iAi,[(E(!0),F(ct,null,Et(r.windowPlugins.free,h=>(E(),Z(l,{key:h.name,class:ae({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(E(),Z(s,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):re("",!0)]),r.loading?(E(),F("div",rAi,[r.spinner&&r.spinner.component?(E(),Z(br(r.spinner.component),Da(gn({key:0},r.spinner.props)),null,16)):(E(),Z(d,{key:1,size:"20px",border:"3px"}))])):re("",!0),r.layoutSettingsDisplayed?(E(),F("div",oAi,[D(u)])):re("",!0)],36)}const aAi=H(eAi,[["render",nAi],["__scopeId","data-v-4d6af796"]]);class sAi{constructor(e=!0){const i=Z0i(Tj,null,{resizable:e});i.registerContent("default",aAi),this.settings=Jo({edit:!1,swap:!1,full:!1}),this.areas=i}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?W0i(e):null}copy(e,i=!0){return J0i(this.areas.layout,e,i)}open({ratio:e,direction:i,insertAfter:r,windowName:o=null,windowState:n=null,localContextId:a=null}={}){const s=o?{options:{windowName:o,windowState:n}}:null;return a===null?this.areas.splitLayout(e,i,r,s):this.areas.split(a,e,i,r,s)}swap(e,i){return this.areas.swap(e,i)}close(e){return this.areas.delete(e)}compare(e,i){var r,o;if(!e&&!i)return!0;if(!e||!i)return!1;if(typeof e=="string"&&typeof i=="string")return e===i;if(typeof e=="string"||typeof i=="string")return!1;if(e.windowName&&i.windowName){if(e.windowName!==i.windowName)return!1;const n=new Set((r=e.windowState)==null?void 0:r.modelIds),a=new Set((o=i.windowState)==null?void 0:o.modelIds);return n.size===a.size&&[...n].every(s=>a.has(s))}return e.windowName||i.windowName||e.direction!==i.direction||e.children.length!==i.children.length?!1:e.children.every((n,a)=>this.compare(n,i.children[a]))}}const lAi="2.11.1-beta.1",cAi={version:lAi};class dAi{constructor({plugins:e,api:i,ui:r,locale:o="fr"}){this.pluginManager=new shi(e),this.windowManager=new chi,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new X1i(i),this.globalContext=new V4e(this),this.state=p0i(this),this.shortcutManager=Rfe(this.state),this.uiSettings=r||{},this.i18n=new N4e(o),this._contextMenu=null,this.layout=new sAi(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return cAi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Lfe}set contextMenu(e){this._contextMenu=e}get registeredWindows(){return[...this.windowManager.registeredWindows.keys()]}get registeredPlugins(){return[...this.pluginManager.registeredPlugins.keys()]}get pluginsCfg(){return this.pluginManager.cfg}registerPlugin(e){this.pluginManager.registerPlugin(e),this.windowManager.registerAndAddPluginsToWindows([e])}}function uAi(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const hAi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Dm=Object.freeze({READ:"read",WRITE:"write"});function g0e(t){const e={};return t.forEach(i=>{const[r,o]=i.split(":");e[r]?e[r].push(o):e[r]=[o]}),e}const pAi={token_scopes:[],usable_scopes:[],user_role:25};function v0e(t=pAi){var e,i,r,o,n,a;const s=g0e(t.token_scopes),l=g0e(t.usable_scopes);return{...mG(t),tokenScopes:s,usableScopes:l,userRole:hAi[t.user_role],user:t.user?mG(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(Dm.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(Dm.WRITE))??!1,hasModelReadPermission:((r=l.model)==null?void 0:r.includes(Dm.READ))??!1,hasModelWritePermission:((o=l.model)==null?void 0:o.includes(Dm.WRITE))??!1,hasDocReadPermission:((n=l.document)==null?void 0:n.includes(Dm.READ))??!1,hasDocWritePermission:((a=l.document)==null?void 0:a.includes(Dm.WRITE))??!1}}const fAi={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},AAi={BcfComponents:fAi},mAi={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},gAi={BcfComponents:mAi},vAi={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},yAi={BcfComponents:vAi},bAi={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},wAi={BcfComponents:bAi},CAi={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},xAi={BcfComponents:CAi},kAi={de:AAi,en:gAi,es:yAi,fr:wAi,it:xAi},MAi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?rr.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(kAi).forEach(([o,n])=>{i.global.mergeLocaleMessage(o,n)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(s9e).forEach(([o,n])=>{r.component(o,n)})}}),PAi={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},EAi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},BAi={BuildingMaker:PAi,FileManager:EAi},SAi={t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},IAi={title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},TAi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},LAi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},DAi={title:"Photosphere Building"},RAi={BIMDataComponents:SAi,BuildingMaker:IAi,FileManager:TAi,MetaBuildingStructure:LAi,PhotosphereBuilding:DAi},_Ai={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},FAi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},OAi={BuildingMaker:_Ai,FileManager:FAi},UAi={t:{back:"Retour",cancel:"Annuler",create:"Cr\xE9er",delete:"Supprimer",download:"T\xE9l\xE9charger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"\xC9tage",validate:"Valider"}},NAi={title:"Building Maker",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du b\xE2timent",error:"Nom invalide"},view:{addStorey:"Ajouter un \xC9tage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide"}},jAi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"S\xE9lectionner une page"},VAi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"\xC9quipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"}},HAi={title:"Photosph\xE8re Building"},zAi={BIMDataComponents:UAi,BuildingMaker:NAi,FileManager:jAi,MetaBuildingStructure:VAi,PhotosphereBuilding:HAi},qAi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},GAi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},QAi={BuildingMaker:qAi,FileManager:GAi},KAi={de:BAi,en:RAi,es:OAi,fr:zAi,it:QAi},ZAi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(KAi).forEach(([i,r])=>{t.global.mergeLocaleMessage(i,r)}):console.warn("[BIMData Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(SZt).forEach(([i,r])=>{e.component(i,r)})}}),WAi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(r=>r===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},JAi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Js,BIMDataClickInputAway:WAi},Symbol.toStringTag,{value:"Module"})),XAi=t=>({install(e){Object.entries(XJe).forEach(([i,r])=>{e.component(i,r)}),Object.entries(JAi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),YAi={name:"LiWrapper",render(){return Kr("li",this.$slots.default())}};function $Ai(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const xl=Ko("id"),e2i=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:r})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return r.get(this.name)},execute:()=>i.selectObjects(e.filter(Os(Mi("visible"),xu("selected"))).map(xl)),predicate:()=>e.some(Os(Mi("visible"),xu("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return r.get(this.name)},execute:()=>i.deselectObjects(e.filter(Mi("selected")).map(xl)),predicate:()=>e.some(Mi("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return r.get(this.name)},execute(){const o=e.filter(n=>n.visible&&n.type===this.selectedObject.type&&n.id!==this.selectedObject.id).map(xl);i.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Os(Mi("visible"),Mi("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Mi("selected")).map(xl)),n=new Set(e.filter(Mi("visible")).map(xl));i.selectObjects(Array.from($Ai(n,o)),{exclusive:!0})},predicate:()=>e.some(Os(xu("selected"),Mi("visible")))&&e.some(Os(Mi("selected"),Mi("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return r.get(this.name)},execute:()=>i.showObjects(e.filter(xu("visible")).map(xl)),predicate:()=>e.some(xu("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return r.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Mi("selected"));o.length>0&&i.deselectObjects(o.map(xl)),i.hideObjects(this.objectsToHide.map(xl))},predicate(){return this.objectsToHide=e.filter(Os(Mi("selected"),Mi("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Mi("visible"));o.some(Mi("selected"))&&i.deselectObjects(o.filter(Mi("selected")).map(xl)),i.hideObjects(o.map(xl))},predicate:()=>e.some(Mi("visible"))}].filter(o=>o.predicate()),t2i={components:{LiWrapper:YAi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const r=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(o=>r.set(o.name,o.key)),e2i({contextMenu:this,objects:t,state:e,pictos:r})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((r,o)=>(r.position=r.position||0,o.position=o.position||0,r.position-o.position)));const e=[...t.keys()].sort((i,r)=>i-r).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},i2i={key:0,class:"separator"},r2i={class:"menu-text"},o2i={key:1,class:"menu-picto"},n2i={key:0,class:"context-menu__spinner"};function a2i(t,e,i,r,o,n){const a=T("BIMDataIconChevron"),s=T("LiWrapper"),l=T("BIMDataSpinner"),c=ui("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?At((E(),F("ul",{key:0,class:"bimdata-list context-menu",style:se(n.position)},[(E(!0),F(ct,null,Et(o.currentCommands,(d,u)=>(E(),Z(s,{key:d.label,class:"context-menu__element",onClick:h=>n.executeCommand(d)},{default:V(()=>[n.isGroupIntersection(u)?(E(),F("div",i2i)):re("",!0),C("div",r2i,Q(d.label),1),!d.component&&d.picto?(E(),F("span",o2i,Q(d.picto),1)):d.component?(E(),Z(a,{key:2,size:"xxs",class:"fill-primary"})):re("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(E(),F("li",n2i,[D(l)])):re("",!0)],4)),[[c,n.away]]):re("",!0)}const s2i=H(t2i,[["render",a2i],["__scopeId","data-v-5b87d4a3"]]),l2i={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=mt("$viewer"),e=Jo(new Map),i=o=>{if(!o.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(o.name))throw new Error(`[Viewer Header] Content with name ${o.name} already exists`);e.set(o.name,o)},r=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Xe(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,n)=>o.order-n.order).map(o=>o.component)),headerLeftContentComponents:Xe(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,n)=>o.order-n.order).map(o=>o.component)),addContent:i,removeContent:r}}},c2i={class:"viewer-header"},d2i={class:"viewer-header__content"},u2i={class:"viewer-header__content__left"},h2i={class:"viewer-header__content__right"},p2i={key:0,class:"m-l-6 flex items-center"},f2i={key:1,class:"viewer-header__version"};function A2i(t,e,i,r,o,n){const a=T("BIMDataIllustration");return At((E(),F("div",c2i,[C("div",d2i,[C("div",u2i,[(E(!0),F(ct,null,Et(r.headerLeftContentComponents,s=>(E(),Z(br(s),{key:s.name}))),128))]),C("div",h2i,[(E(!0),F(ct,null,Et(r.headerRightContentComponents,s=>(E(),Z(br(s),{key:s.name}))),128))])]),r.logo||r.version?(E(),F("div",p2i,[r.logo?(E(),Z(a,{key:0,name:"logo",width:"30px",height:"30px"})):re("",!0),r.version?(E(),F("div",f2i,Q(r.version),1)):re("",!0)])):re("",!0)],512)),[[zt,i.visible]])}const m2i=H(l2i,[["render",A2i],["__scopeId","data-v-5c9ea6b6"]]),g2i={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const o=a=>{a.preventDefault();const s=a.clientX-r;r=a.clientX,e("resize",s)},n=a=>{a.preventDefault(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",n)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",n)}}}},v2i={class:"bimdata-separator"};function y2i(t,e,i,r,o,n){return E(),F("div",v2i,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...a)=>r.onResizerMousedown&&r.onResizerMousedown(...a))},null,32)])}const b2i=H(g2i,[["render",y2i],["__scopeId","data-v-79a3b3af"]]),w2i={components:{Separator:b2i},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=pe(null),i=pe(t.sidePanel.width??400),r=(o,n=1)=>{const a=i.value+o*n;i.value=Math.max(0,a)};return yt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}i.value=o}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},C2i={class:"bimdata-global-side-panel__component"};function x2i(t,e,i,r,o,n){const a=T("Separator");return E(),F("div",{class:"bimdata-global-side-panel",style:se(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(E(),Z(a,{key:0,onResize:e[0]||(e[0]=s=>r.onResize(s,-1))})):re("",!0),C("div",C2i,[(E(),Z(br(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(E(),Z(a,{key:1,onResize:e[1]||(e[1]=s=>r.onResize(s))})):re("",!0)],4)}const k2i=H(w2i,[["render",x2i],["__scopeId","data-v-82d0d4cb"]]),M2i={name:"BimdataViewer",components:{ContextMenu:s2i,ViewerHeader:m2i,ModalManager:f0e,GlobalSidePanel:k2i},setup(){const t=mt("$viewer"),{globalContext:e,shortcutManager:i}=t;ur(()=>{i&&i.destroy(),e.hub.clear()}),Pi(()=>{t.pluginManager.runPluginsScripts(t)});const r=Xe(()=>{var f;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((f=e.localContexts[0].window)==null?void 0:f.logoAndVersion))}),o=Xe(()=>{var f;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(f=e.localContexts[0].window)!=null&&f.logoAndVersion)?t.version:null}),n=Xe(()=>e.leftSidePanel),a=Xe(()=>e.rightSidePanel),s=Xe(()=>{var f;const A=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((f=e.localContexts[0].window)==null?void 0:f.header)===!1,g=!!(n.value||a.value);return A&&(!p||g)}),l=t.uiSettings.contextMenu!==!1,c=pe(null);function d(f){l&&c.value.open(f)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:s,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:o,version:t.version,loading:Xe(()=>e.loading),spinner:Xe(()=>e.spinner),leftSidePanel:n,rightSidePanel:a}}},P2i={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},E2i={key:2,class:"viewer__logo"},B2i={key:1,class:"version m-t-6"};function S2i(t,e,i,r,o,n){const a=T("ModalManager"),s=T("ContextMenu"),l=T("ViewerHeader"),c=T("GlobalSidePanel"),d=T("BIMDataSpinner"),u=T("BIMDataIllustration");return E(),F("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>r.onContextMenu&&r.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>r.onMouseenter&&r.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>r.onMouseleave&&r.onMouseleave(...h))},[D(a,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(E(),Z(s,{key:0,ref:"contextMenuTemplateRef"},null,512)):re("",!0),D(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:se(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(E(),Z(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):re("",!0),(E(),Z(br(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(E(),Z(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):re("",!0)],4),r.loading?(E(),F("div",P2i,[r.spinner&&r.spinner.component?(E(),Z(br(r.spinner.component),Da(gn({key:0},r.spinner.props)),null,16)):(E(),Z(d,{key:1,size:"40px",border:"5px"}))])):re("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(E(),F("div",E2i,[r.bimdataLogoOnSingleWindow?(E(),Z(u,{key:0,name:"logo"})):re("",!0),r.viewerVersionOnSingleWindow?(E(),F("div",B2i,Q(r.version),1)):re("",!0)])):re("",!0)],544)}const I2i=H(M2i,[["render",S2i],["__scopeId","data-v-0c1c941a"]]),T2i=["src"],L2i={class:"bimdata-models__header"},D2i={key:0,class:"bimdata-models__header__loader"},R2i={class:"bimdata-models__header__picto"},_2i={class:"bimdata-models__header__name"},F2i={key:0,class:"bimdata-models__header__name--empty"},O2i={key:1,class:"bimdata-models__header__name--empty"},U2i={key:3},N2i=["onMousemove","onClick"],j2i={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=mt("$viewer"),r=pe(),o=pe(0),n=pe(0),a=pe(),s=ir([]),l=pe(!1),c=Xe(()=>i.localContext.loadedModels),d=Xe(()=>i.localContext.loadedModelIds),u=Xe(()=>i.localContext.loadingModelIds),h=Xe(()=>i.localContext.multiModel),f=Xe(()=>(e.customFilter?s.value.filter(e.customFilter):s.value).map(k=>c.value.find(B=>{var M;return((M=B.document)==null?void 0:M.head_id)!=null&&B.document.head_id===k.document.id})??k)),A=k=>d.value.includes(k),p=k=>u.value.includes(k),g=Xe(()=>{var k;const{x:B,y:M}=((k=a.value)==null?void 0:k.getBoundingClientRect())??{x:0,y:0};return`top:${n.value-M}px; left:${o.value-B}px;`}),m=k=>{!h.value&&A(k.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(k.id)?i.localContext.unloadModels([k.id]):i.localContext.loadModels([k.id]))},b=k=>{switch(k){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(k,B)=>{k!=null&&k.viewer_360_file&&(o.value=B.clientX,n.value=B.clientY),r.value=k?.viewer_360_file},v=async k=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,k)).filter(B=>i.state.models.some(M=>M.archived)||!B.archived).sort($l("updated_at",!1))}catch(B){console.error("[Models] Cannot get project models. Error: ",B)}finally{l.value=!1}return[]},x=k=>{var B;return((B=k.children)==null?void 0:B.some(M=>A(M.id)))??!1};return v(i.localContext.modelTypes).then(k=>{s.value=k}),(k,B)=>{const M=T("BIMDataSpinner"),P=T("BIMDataIconModel3D"),S=T("BIMDataTextbox"),I=T("BIMDataCheckbox"),L=T("BIMDataRadio"),_=T("BIMDataIcon"),U=T("BIMDataDropdownList");return E(),F("div",{ref_key:"templateRef",ref:a,class:ae(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(E(),F("div",{key:0,class:"bimdata-models__preview",style:se(g.value)},[C("img",{src:r.value},null,8,T2i)],4)):re("",!0),D(U,{style:se(`--bimdata-models-width: ${t.width};`),width:t.width,list:f.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:f.value.length===0,onElementClick:m},{header:V(({isOpen:z})=>[C("div",L2i,[l.value||u.value.length>0?(E(),F("div",D2i,[D(M)])):(E(),F(ct,{key:1},[C("div",R2i,[D(P)]),C("div",{class:ae(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[C("span",null,Q(d.value.length),1)],2),C("div",_2i,[f.value.length===0?(E(),F("span",F2i,Q(k.$t("model.no_model")),1)):d.value.length===0?(E(),F("span",O2i,Q(k.$t("model.no_loaded_model")),1)):d.value.length===1?(E(),Z(S,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):d.value.length>1?(E(),F("span",U2i,Q(k.$t("model.selected_models")),1)):re("",!0)])],64))])]),element:V(({element:z,close:N})=>[C("div",{class:"bimdata-models__model",onMousemove:W=>t.preview&&y(z,W),onMouseout:B[0]||(B[0]=W=>t.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&N()}},[h.value?(E(),Z(I,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(E(),Z(L,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),D(_,{margin:"0 calc(var(--spacing-unit) / 2)",name:b(z.status),size:"xs",class:ae({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),D(S,{class:ae({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||u.value.length>0}),text:z.name,width:`calc(100% -
|
|
5526
5526
|
${h.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),z.document&&!z.document.is_head_version?(E(),Z(_,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):re("",!0)],40,N2i),p(z.id)?(E(),Z(M,{key:0,class:"bimdata-models__model__spinner"})):re("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},y0e=H(j2i,[["__scopeId","data-v-34c2cf79"]]),V2i="data:image/svg+xml,%3csvg%20width='16'%20height='21'%20viewBox='0%200%2016%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.47193%202.76644C7.65699%202.84439%207.77716%203.02565%207.777%203.22661L7.77339%207.94624C7.77318%208.22238%207.54916%208.44655%207.27301%208.44693L2.4192%208.45366C2.21569%208.45394%202.03258%208.33085%201.95617%208.1424C1.87975%207.95394%201.92528%207.73773%202.07129%207.59566L6.92872%202.86931C7.0729%202.72902%207.28688%202.6885%207.47193%202.76644ZM3.65141%207.45195L6.77378%207.44762L6.7761%204.41157L3.65141%207.45195ZM5.81657%200.893911L6.02338%200.893274L13.3879%200.870595C14.679%200.866619%2015.7208%201.91642%2015.722%203.20083L15.2221%203.20237L15.722%203.20052L15.722%203.20083L15.745%2017.8999L15.745%2017.9002C15.7462%2019.1846%2014.7063%2020.2408%2013.4153%2020.2448L2.35929%2020.2788C1.07114%2020.2828%200.0171799%2019.2362%200.0159721%2017.9486L0.00563138%206.92409L0.00543684%206.71668L0.152103%206.56972L5.67032%201.04045L5.81657%200.893911ZM6.23113%201.89264L1.00582%207.12841L1.01597%2017.9455C1.01666%2018.6791%201.62068%2019.2811%202.35835%2019.2788L13.4143%2019.2448C14.1484%2019.2425%2014.7456%2018.6402%2014.745%2017.9035C14.745%2017.9034%2014.745%2017.9033%2014.745%2017.9033L14.722%203.20423L14.722%203.20391C14.7213%202.46716%2014.123%201.86833%2013.3888%201.87059L6.23113%201.89264Z'%20fill='%232F374A'/%3e%3c/svg%3e",H2i=["src"],z2i={key:0,class:"bimdata-multi-model-loader__header-container"},q2i={key:0,class:"bimdata-multi-model-loader__header__loader"},G2i={class:"bimdata-multi-model-loader__header__picto"},Q2i=["src"],K2i={class:"bimdata-multi-model-loader__header__name"},Z2i={key:0,class:"bimdata-multi-model-loader__header__name--empty"},W2i={key:1,class:"bimdata-multi-model-loader__header__name--empty"},J2i={key:3},X2i={key:1,class:"bimdata-multi-model-loader__main"},Y2i=["onMousemove","onClick"],$2i={__name:"BIMDataMultiModelLoader",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=mt("$viewer"),r=pe(),o=pe(0),n=pe(0),a=pe(),s=ir([]),l=pe(!1),c=pe(!0),d=L=>{L.key==="Escape"?c.value=!0:L.key==="Enter"&&M()};yt(c,L=>{L?(window.removeEventListener("keydown",d),y.clear(),b.clear(),r.value=null):window.addEventListener("keydown",d)});const u=Xe(()=>i.localContext.loadedModels),h=Xe(()=>i.localContext.loadedModelIds),f=Xe(()=>i.localContext.loadingModelIds),A=Xe(()=>i.localContext.multiModel),p=Xe(()=>(e.customFilter?s.value.filter(e.customFilter):s.value).map(L=>u.value.find(_=>{var U;return((U=_.document)==null?void 0:U.head_id)!=null&&_.document.head_id===L.document.id})??L)),g=L=>h.value.includes(L),m=L=>f.value.includes(L),b=Jo(new Set),y=Jo(new Set),v=L=>{var _;return((_=L.children)==null?void 0:_.some(U=>g(U.id)))??!1},x=L=>(g(L.id)||v(L)||b.has(L))&&!y.has(L),k=Xe(()=>{const{x:L,y:_}=a.value.getBoundingClientRect();return`top:${n.value-_}px; left:${o.value-L}px;`}),B=L=>{L.status==="C"&&(!A.value&&g(L.id)||(g(L.id)?y.has(L)?y.delete(L):y.add(L):b.has(L)?b.delete(L):b.add(L)))},M=()=>{b.size>0&&i.localContext.loadModels(Array.from(b).map(L=>L.id)),y.size>0&&i.localContext.unloadModels(Array.from(y).map(L=>L.id)),c.value=!0},P=L=>{switch(L){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},S=L=>L.document&&!L.document.is_head_version,I=(L,_)=>{!e.preview||c.value||(L!=null&&L.viewer_360_file&&(o.value=_.clientX,n.value=_.clientY),r.value=L?.viewer_360_file)};return(async L=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,L)).filter(_=>i.state.models.some(U=>U.archived)||!_.archived).sort($l("updated_at",!1))}catch(_){console.error("[Models] Cannot get project models. Error: ",_)}finally{l.value=!1}return[]})(i.localContext.modelTypes).then(L=>{s.value=L}),(L,_)=>{const U=T("BIMDataSpinner"),z=T("BIMDataTextbox"),N=T("BIMDataIconChevron"),W=T("BIMDataButton"),J=T("BIMDataIconFileIfcPolychrome"),te=T("BIMDataCheckbox"),le=T("BIMDataRadio"),Ie=T("BIMDataIcon"),Ce=T("BIMDataPaginatedList"),Ue=ui("click-away");return E(),F("div",{ref_key:"templateRef",ref:a,class:ae(["bimdata-multi-model-loader",{"bimdata-multi-model-loader--window-positioning":t.windowPositioning}])},[r.value?(E(),F("div",{key:0,class:"bimdata-multi-model-loader__preview",style:se(k.value)},[C("img",{src:r.value},null,8,H2i)],4)):re("",!0),D(Ai,{name:"fade",mode:"out-in"},{default:V(()=>[c.value?(E(),F("div",z2i,[ut(L.$slots,"left",{},void 0,!0),C("div",{class:"bimdata-multi-model-loader__header",onClick:_[0]||(_[0]=me=>c.value=!1)},[l.value||f.value.length>0?(E(),F("div",q2i,[D(U)])):(E(),F(ct,{key:1},[C("div",G2i,[C("img",{src:wt(V2i),alt:"file icon"},null,8,Q2i)]),C("div",{class:ae(["bimdata-multi-model-loader__header__number bimdata-info-length",{"bimdata-multi-model-loader__header__number--empty":h.value.length===0}])},[C("span",null,Q(h.value.length),1)],2),C("div",K2i,[p.value.length===0?(E(),F("span",Z2i,Q(L.$t("model.no_model")),1)):h.value.length===0?(E(),F("span",W2i,Q(L.$t("model.no_loaded_model")),1)):h.value.length===1?(E(),Z(z,{key:2,text:u.value[0].name,tooltip:c.value,width:"233px"},null,8,["text","tooltip"])):h.value.length>1?(E(),F("span",J2i,Q(L.$t("model.selected_models")),1)):re("",!0)]),D(W,{color:"default",icon:"",radius:"",fill:"",width:"21px",height:"21px"},{default:V(()=>[D(N,{size:"xxxs"})]),_:1})],64))]),ut(L.$slots,"right",{},void 0,!0)])):At((E(),F("div",X2i,[D(Ce,{list:p.value,"per-page":10},{element:V(({element:me})=>[C("div",{class:ae(["bimdata-multi-model-loader__main__model",{"bimdata-multi-model-loader__main__model--disabled":me.status!=="C"}]),onMousemove:Te=>I(me,Te),onMouseout:_[1]||(_[1]=Te=>I()),onClick:Te=>B(me)},[D(J,{fill:"",color:"default",size:"xs"}),A.value?(E(),Z(te,{key:0,"model-value":x(me),disabled:me.status!=="C"},null,8,["model-value","disabled"])):(E(),Z(le,{key:1,"model-value":x(me),disabled:me.status!=="C"},null,8,["model-value","disabled"])),D(z,{class:ae({"bimdata-multi-model-loader__main__model__name":!0,"bimdata-multi-model-loader__main__model__name--disabled":me.status!=="C"}),text:me.name,width:S(me)?"333px":"363px"},null,8,["class","text","width"]),S(me)?(E(),Z(Ie,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):re("",!0),m(me.id)?(E(),Z(U,{key:3,class:"bimdata-multi-model-loader__main__model__spinner"})):(E(),Z(Ie,{key:4,name:P(me.status),size:"xs",class:ae({"fill-success":me.status==="C","fill-high":me.status==="E"})},null,8,["name","class"]))],42,Y2i)]),_:1},8,["list"]),D(W,{class:"bimdata-multi-model-loader__main__validate",width:"93px",color:"primary",fill:"",radius:"",disabled:wt(b).size===0&&wt(y).size===0,onClick:M},{default:V(()=>[it(Q(L.$t("global.validate")),1)]),_:1},8,["disabled"])])),[[Ue,()=>c.value=!0]])]),_:3})],2)}}},emi=H($2i,[["__scopeId","data-v-44e6af66"]]),tmi={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function imi(t,e,i,r,o,n){const a=T("BIMDataIllustration");return E(),F("div",{class:"bimdata__no-model",style:se({"--no-model--opacity":o.shown?1:0})},[D(a,{name:"emptyViewer",x:"90",y:"90"}),C("span",null,Q(t.$t("model.select_model")),1)],4)}const b0e=H(tmi,[["render",imi],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=Tj;class rmi{constructor(e={}){var i,r;const{api:o={},ui:n}=e;this.uiCfg=n,o.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),o.apiUrl="https://api.bimdata.io"),o.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),o.archiveUrl="https://archive.bimdata.io"),o.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),o.pdfBackendUrl="https://pdf-backend.bimdata.io"),o.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),o.modelIds===void 0&&(o.modelIds=o.ifcIds)),o.modelIds||(o.modelIds=[]),(i=o.offline)!=null&&i.dataFile&&(o.offline.data=o.offline.dataFile),this.$viewer=new dAi(e),(r=o.offline)!=null&&r.enabled?this.$viewer.api.enableOfflineMode(o.offline.data,o.offline.options).then(()=>this.state.loadModels(o.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(o.modelIds).finally(()=>this.$viewer.globalContext.loadingProcessEnd())),this.vueApp=null}get state(){return this.$viewer.state}get api(){return this.$viewer.api}async mount(e,i="3d"){var r;const{$viewer:o}=this;await o.api.ready;try{const u=await o.api.apiClient.collaborationApi.checkProjectAccess(o.api.cloudId,o.api.projectId);o.api.permissions=v0e(u)}catch{o.api.permissions=v0e()}const n=this.api.accessToken,{i18n:a}=o;a.registerTranslations(o.pluginManager.pluginTranslations),o.layout.apply(i);const s={i18n:a.i18nVuePlugin,data(){return{accessToken:n}},render(){return Kr(I2i,{style:"height: 100%"})}},l=Ag(s).use(a.i18nVuePlugin).use(XAi()).use(ZAi({i18nPlugin:a.i18nVuePlugin})).use(MAi({apiClient:o.api.apiClient,i18nPlugin:a.i18nVuePlugin}));l.provide("$viewer",o),l.component("BIMDataModelLoader",y0e),l.component("BIMDataMultiModelLoader",emi),l.component("BIMDataNoModelWindowPlaceHolder",b0e),l.component("BIMDataStoreySelector",dE),l.component("ModelsLoader",y0e),l.component("NoModelWindowPlaceHolder",b0e);const c=e instanceof HTMLElement?e:document.querySelector(e);c&&(c.style.height="100%");const d=l.mount(e);return d.$viewer=o,uAi(d.$el,(r=this.uiCfg)==null?void 0:r.style),typeof window<"u"&&(window.bimdataViewer=d),this.vueApp=l,d}destroy(){var e;(e=this.vueApp)==null||e.unmount()}setLocale(e){if(!Kj.includes(e))throw new Error(`Viewer available locales are ${Kj.join(", ")}.`);this.$viewer.i18n.locale=e}registerPlugin(e){this.$viewer.registerPlugin(e)}registerWindow(e){return this.$viewer.windowManager.registerWindow(e)}unregisterWindow(e){return this.$viewer.windowManager.unregisterWindow(e)}setAccessToken(e){this.api.accessToken=e}async loadModels(e){this.$viewer.globalContext.loadingProcessStart();const i=await this.state.loadModels(e);return this.$viewer.globalContext.loadingProcessEnd(),i}loadIfcs(e){return console.warn("[BIMData Viewer] DEPRECATED - Viewer - please use the loadModels method instead of loadIfcs."),this.loadModels(e)}}const w0e=(t={})=>new rmi(t);window.makeBIMDataViewer=w0e;export{w0e as default};
|