@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érémy 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(a)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
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(a)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
7
7
|
(function(Cd,Um){typeof exports=="object"&&typeof module<"u"?module.exports=Um():typeof define=="function"&&define.amd?define(Um):(Cd=typeof globalThis<"u"?globalThis:Cd||self,Cd.BIMDataViewer=Um())})(this,function(){"use strict";var Cd=typeof document<"u"?document.currentScript:null;function Um(i,e){for(var t=0;t<e.length;t++){const n=e[t];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in i)){const r=Object.getOwnPropertyDescriptor(n,o);r&&Object.defineProperty(i,o,r.get?r:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}const O5=i=>`Context Menu --- Cannot "${i}" because the context menu is disabled. Consider enabling it in the makeBIMDataViewer configuration object if you want to use it.`,CAe={preventDefault(){console.warn(O5("preventDefault"))},registerContextCommand(){console.warn(O5("registerContextCommand"))},registerCommand(){console.warn(O5("registerCommand"))},open(){console.warn(O5("open"))}},Zo=i=>e=>e[i],Ei=i=>e=>e[i],bd=i=>e=>!e[i],Na=(i,e)=>t=>i(t)&&e(t),tp=Zo("id");function bAe({state:i,getObjects:e=()=>[]}){return[{name:"selectAll",key:"C",execute:()=>i.selectObjects(e().filter(Na(Ei("visible"),bd("selected"))).map(tp))},{name:"deselectAll",key:"V",execute:()=>i.deselectObjects(e().filter(Ei("selected")).map(tp))},{name:"selectSimilar",key:"Y",execute:()=>{const t=e(),n=t.filter(Na(Ei("visible"),Ei("selected")));if(n.length===1&&n[0].type!==void 0){const o=n[0],r=t.filter(s=>s.visible&&s.type===o.type&&s.id!==o.id).map(tp);i.selectObjects(r)}}},{name:"hide",key:"H",execute:()=>{const t=e().filter(Na(Ei("selected"),Ei("visible"))),n=t.filter(Ei("selected"));n.length>0&&i.deselectObjects(n.map(tp)),i.hideObjects(t.map(tp))}},{name:"showAll",key:"R",execute:()=>{const t=e().filter(bd("visible")).map(tp);t.length>0&&i.showObjects(t)}}]}const xAe=i=>{const e=[];let t=!1,n=null;function o(d){if(t&&d.target.tagName!=="INPUT"&&d.target.tagName!=="TEXTAREA"){const h=r(d);h&&(d.preventDefault(),d.stopPropagation(),h.execute())}}function r(d){const h=e.filter(f=>$L(f,d));return h.length?h.find(f=>f.context===n)||h.find(f=>f.context==null):null}document.addEventListener("keydown",o);function s(){document.removeEventListener("keydown",o)}function a(d={},h){const{name:f,key:A,execute:p,ctrlKey:g=!1,shiftKey:m=!1,altKey:w=!1}=d;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=>$L(x,d)&&x.context==h);if(y)return console.error(`A shortcut on the key "${d.key}" is already registered on this context with the name "${y.name}".`),!1;const v=e.find(x=>x.name===d.name&&x.context===h);return v?(console.error(`A shortcut with the name "${d.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:w}),!0)}function l(d,h){const f=e.find(A=>A.name===d&&A.context===h);return f?(e.splice(e.indexOf(f),1),!0):!1}function c(d,h){return e.find(f=>f.name===d&&f.context==h)}function u(d){return e.filter(h=>h.context==d)}return{shortcuts:e,getShortcut:c,getShortcuts:u,registerShortcut:a,unregisterShortcut:l,destroy:s,getDefaultShortcuts(d,h=i){return bAe({state:h,getObjects:d})},get active(){return t},set active(d){t=d},get activeLocalContext(){return n},set activeLocalContext(d){n=d}}};function $L(i,e){const{key:t,ctrlKey:n=!1,shiftKey:o=!1,metaKey:r=!1,altKey:s=!1}=e;return i.key.toUpperCase()===t.toUpperCase()&&i.ctrlKey===(n||r)&&i.shiftKey===o&&i.altKey===s}/*!
|
|
8
8
|
* shared v11.1.3
|
|
9
9
|
* (c) 2025 kazuya kawaguchi
|
|
@@ -5521,10 +5521,10 @@ void main() {
|
|
|
5521
5521
|
`,n=()=>e.useDataURI?"data:text/javascript,"+encodeURIComponent(t):URL.createObjectURL(new Blob([t],{type:"text/javascript"}));i({workerScripts:{inflate:[n],deflate:[n]}})}const sHt="Writer iterator completed too soon",rHt="Content-Type",aHt=64*1024,mfe="writable";class SL{constructor(){this.size=0}init(){this.initialized=!0}}class gfe extends SL{get readable(){const e=this,{chunkSize:t=aHt}=e,n=new ReadableStream({start(){this.chunkOffset=0},async pull(o){const{offset:r=0,size:s,diskNumberStart:a}=n,{chunkOffset:l}=this,c=s===Ko?t:Math.min(t,s-l),u=await fs(e,r+l,c,a);o.enqueue(u),l+t>s||s===Ko&&!u.length&&c?o.close():this.chunkOffset+=t}});return n}}class vfe extends gfe{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,o=e+t;let s=await(e||o<n.size?n.blob.slice(e,o):n.blob).arrayBuffer();return s.byteLength>t&&(s=s.slice(e,o)),new Uint8Array(s)}}class yfe extends SL{constructor(e){super();const t=this,n=new TransformStream,o=[];e&&o.push([rHt,e]),Object.defineProperty(t,mfe,{get(){return n.writable}}),t.blob=new Response(n.readable,{headers:o}).blob()}getData(){return this.blob}}class lHt extends yfe{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(n,e)})}}}class cHt extends gfe{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map(async(n,o)=>{await n.init(),o!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size})),super.init()}async readUint8Array(e,t,n=0){const o=this,{readers:r}=this;let s,a=n;a==-1&&(a=r.length-1);let l=e;for(;l>=r[a].size;)l-=r[a].size,a++;const c=r[a],u=c.size;if(l+t<=u)s=await fs(c,l,t);else{const d=u-l;s=new Uint8Array(t),s.set(await fs(c,l,d)),s.set(await o.readUint8Array(e+d,t-d,n),d)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}}class wfe extends SL{constructor(e,t=4294967295){super();const n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});let o,r,s;const a=new WritableStream({async write(u){const{availableSize:d}=n;if(s)u.length>=d?(await l(u.slice(0,d)),await c(),n.diskOffset+=o.size,n.diskNumber++,s=null,await this.write(u.slice(d))):await l(u);else{const{value:h,done:f}=await e.next();if(f&&!h)throw new Error(sHt);o=h,o.size=0,o.maxSize&&(n.maxSize=o.maxSize),n.availableSize=n.maxSize,await Zw(o),r=h.writable,s=r.getWriter(),await this.write(u)}},async close(){await s.ready,await c()}});Object.defineProperty(n,mfe,{get(){return a}});async function l(u){const d=u.length;d&&(await s.ready,await s.write(u),o.size+=d,n.size+=d,n.availableSize-=d)}async function c(){r.size=o.size,await s.close()}}}async function Zw(i,e){if(i.init&&!i.initialized)await i.init(e);else return Promise.resolve()}function uHt(i){return Array.isArray(i)&&(i=new cHt(i)),i instanceof ReadableStream&&(i={readable:i}),i}function dHt(i){i.writable===Ko&&typeof i.next==x5&&(i=new wfe(i)),i instanceof WritableStream&&(i={writable:i});const{writable:e}=i;return e.size===Ko&&(e.size=0),i instanceof wfe||Object.assign(i,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),i}function fs(i,e,t,n){return i.readUint8Array(e,t,n)}const Cfe="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),hHt=Cfe.length==256;function pHt(i){if(hHt){let e="";for(let t=0;t<i.length;t++)e+=Cfe[i[t]];return e}else return new TextDecoder().decode(i)}function Xw(i,e){return e&&e.trim().toLowerCase()=="cp437"?pHt(i):new TextDecoder(e).decode(i)}const bfe="filename",xfe="rawFilename",Mfe="comment",Efe="rawComment",Bfe="uncompressedSize",Ife="compressedSize",Sfe="offset",PL="diskNumberStart",TL="lastModDate",kL="rawLastModDate",Pfe="lastAccessDate",fHt="rawLastAccessDate",Tfe="creationDate",AHt="rawCreationDate",mHt=[bfe,xfe,Ife,Bfe,TL,kL,Mfe,Efe,Pfe,Tfe,Sfe,PL,PL,"internalFileAttribute","internalFileAttributes","externalFileAttribute","externalFileAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class kfe{constructor(e){mHt.forEach(t=>this[t]=e[t])}}const RL="File format is not recognized",gHt="End of central directory not found",vHt="End of Zip64 central directory locator not found",yHt="Central directory header not found",wHt="Local file header not found",CHt="Zip64 extra field not found",bHt="File contains encrypted entry",xHt="Encryption method not supported",Rfe="Compression method not supported",Dfe="Split zip file",_fe="utf-8",Lfe="cp437",MHt=[[Bfe,Jh],[Ife,Jh],[Sfe,Jh],[PL,hd]],EHt={[hd]:{getValue:no,bytes:4},[Jh]:{getValue:Yw,bytes:8}};class BHt{constructor(e,t={}){Object.assign(this,{reader:uHt(e),options:t,config:gVt()})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:o}=t;if(await Zw(n),(n.size===Ko||!n.readUint8Array)&&(n=new vfe(await new Response(n.readable).blob()),await Zw(n)),n.size<Dm)throw new Error(RL);n.chunkSize=vVt(o);const r=await RHt(n,oVt,n.size,Dm,hd*16);if(!r){const T=await fs(n,0,4),P=_o(T);throw no(P)==nVt?new Error(Dfe):new Error(gHt)}const s=_o(r);let a=no(s,12),l=no(s,16);const c=r.offset,u=Do(s,20),d=c+Dm+u;let h=Do(s,4);const f=n.lastDiskNumber||0;let A=Do(s,6),p=Do(s,8),g=0,m=0;if(l==Jh||a==Jh||p==hd||A==hd){const T=await fs(n,r.offset-gL,gL),P=_o(T);if(no(P,0)==sVt){l=Yw(P,8);let R=await fs(n,l,vL,-1),L=_o(R);const N=r.offset-gL-vL;if(no(L,0)!=Bpe&&l!=N){const z=l;l=N,g=l-z,R=await fs(n,l,vL,-1),L=_o(R)}if(no(L,0)!=Bpe)throw new Error(vHt);h==hd&&(h=no(L,16)),A==hd&&(A=no(L,20)),p==hd&&(p=Yw(L,32)),a==Jh&&(a=Yw(L,40)),l-=a}}if(l>=n.size&&(g=n.size-l-a-Dm,l=n.size-a-Dm),f!=h)throw new Error(Dfe);if(l<0)throw new Error(RL);let w=0,y=await fs(n,l,a,A),v=_o(y);if(a){const T=r.offset-a;if(no(v,w)!=Epe&&l!=T){const P=l;l=T,g+=l-P,y=await fs(n,l,a,A),v=_o(y)}}const x=r.offset-l-(n.lastDiskOffset||0);if(a!=x&&x>=0&&(a=x,y=await fs(n,l,a,A),v=_o(y)),l<0||l>=n.size)throw new Error(RL);const M=Ns(t,e,"filenameEncoding"),I=Ns(t,e,"commentEncoding");for(let T=0;T<p;T++){const P=new IHt(n,o,t.options);if(no(v,w)!=Epe)throw new Error(yHt);Ffe(P,v,w+6);const R=!!P.bitFlag.languageEncodingFlag,L=w+46,N=L+P.filenameLength,z=N+P.extraFieldLength,H=Do(v,w+4),q=H>>8==0,J=H>>8==3,te=y.subarray(L,N),se=Do(v,w+32),Se=z+se,ye=y.subarray(z,Se),Ne=R,we=R,Me=no(v,w+38),Oe=q&&(Fm(v,w+38)&Tpe)==Tpe||J&&(Me>>16&kpe)==kpe||te.length&&te[te.length-1]==Dpe.charCodeAt(0),re=J&&(Me>>16&Rpe)==Rpe,Re=no(v,w+42)+g;Object.assign(P,{versionMadeBy:H,msDosCompatible:q,compressedSize:0,uncompressedSize:0,commentLength:se,directory:Oe,offset:Re,diskNumberStart:Do(v,w+34),internalFileAttributes:Do(v,w+36),externalFileAttributes:Me,rawFilename:te,filenameUTF8:Ne,commentUTF8:we,rawExtraField:y.subarray(N,z),executable:re}),P.internalFileAttribute=P.internalFileAttributes,P.externalFileAttribute=P.externalFileAttributes;const xe=Ns(t,e,"decodeText")||Xw,ke=Ne?_fe:M||Lfe,tt=we?_fe:I||Lfe;let et=xe(te,ke);et===Ko&&(et=Xw(te,ke));let $=xe(ye,tt);$===Ko&&($=Xw(ye,tt)),Object.assign(P,{rawComment:ye,filename:et,comment:$,directory:Oe||et.endsWith(Dpe)}),m=Math.max(Re,m),Ofe(P,P,v,w+6),P.zipCrypto=P.encrypted&&!P.extraFieldAES;const W=new kfe(P);W.getData=(Ie,ve)=>P.getData(Ie,W,ve),w=Se;const{onprogress:ae}=e;if(ae)try{await ae(T+1,p,new kfe(P))}catch{}yield W}const E=Ns(t,e,"extractPrependedData"),B=Ns(t,e,"extractAppendedData");return E&&(t.prependedData=m>0?await fs(n,0,m):new Uint8Array),t.comment=u?await fs(n,c+Dm,u):new Uint8Array,B&&(t.appendedData=d<n.size?await fs(n,d,n.size-d):new Uint8Array),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class IHt{constructor(e,t,n){Object.assign(this,{reader:e,config:t,options:n})}async getData(e,t,n={}){const o=this,{reader:r,offset:s,diskNumberStart:a,extraFieldAES:l,compressionMethod:c,config:u,bitFlag:d,signature:h,rawLastModDate:f,uncompressedSize:A,compressedSize:p}=o,g=t.localDirectory={},m=await fs(r,s,30,a),w=_o(m);let y=Ns(o,n,"password"),v=Ns(o,n,"rawPassword");const x=Ns(o,n,"passThrough");if(y=y&&y.length&&y,v=v&&v.length&&v,l&&l.originalCompressionMethod!=tVt)throw new Error(Rfe);if(c!=eVt&&c!=$Ut&&!x)throw new Error(Rfe);if(no(w,0)!=iVt)throw new Error(wHt);Ffe(g,w,4),g.rawExtraField=g.extraFieldLength?await fs(r,s+30+g.filenameLength,g.extraFieldLength,a):new Uint8Array,Ofe(o,g,w,4,!0),Object.assign(t,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const M=o.encrypted&&g.encrypted&&!x,I=M&&!l;if(x||(t.zipCrypto=I),M){if(!I&&l.strength===Ko)throw new Error(xHt);if(!y&&!v)throw new Error(bHt)}const E=s+30+g.filenameLength+g.extraFieldLength,B=p,T=r.readable;Object.assign(T,{diskNumberStart:a,offset:E,size:B});const P=Ns(o,n,"signal"),R=Ns(o,n,"checkPasswordOnly");R&&(e=new WritableStream),e=dHt(e),await Zw(e,x?p:A);const{writable:L}=e,{onstart:N,onprogress:z,onend:H}=n,q={options:{codecType:cfe,password:y,rawPassword:v,zipCrypto:I,encryptionStrength:l&&l.strength,signed:Ns(o,n,"checkSignature")&&!x,passwordVerification:I&&(d.dataDescriptor?f>>>8&255:h>>>24&255),signature:h,compressed:c!=0&&!x,encrypted:o.encrypted&&!x,useWebWorkers:Ns(o,n,"useWebWorkers"),useCompressionStream:Ns(o,n,"useCompressionStream"),transferStreams:Ns(o,n,"transferStreams"),checkPasswordOnly:R},config:u,streamOptions:{signal:P,size:B,onstart:N,onprogress:z,onend:H}};let J=0;try{({outputSize:J}=await iHt({readable:T,writable:L},q))}catch(te){if(!R||te.message!=CL)throw te}finally{const te=Ns(o,n,"preventClose");L.size+=J,!te&&!L.locked&&await L.getWriter().close()}return R?Ko:e.getData?e.getData():L}}function Ffe(i,e,t){const n=i.rawBitFlag=Do(e,t+2),o=(n&Ipe)==Ipe,r=no(e,t+6);Object.assign(i,{encrypted:o,version:Do(e,t),bitFlag:{level:(n&fVt)>>1,dataDescriptor:(n&Spe)==Spe,languageEncodingFlag:(n&Ppe)==Ppe},rawLastModDate:r,lastModDate:DHt(r),filenameLength:Do(e,t+22),extraFieldLength:Do(e,t+24)})}function Ofe(i,e,t,n,o){const{rawExtraField:r}=e,s=e.extraField=new Map,a=_o(new Uint8Array(r));let l=0;try{for(;l<r.length;){const m=Do(a,l),w=Do(a,l+2);s.set(m,{type:m,data:r.slice(l+4,l+4+w)}),l+=4+w}}catch{}const c=Do(t,n+4);Object.assign(e,{signature:no(t,n+10),uncompressedSize:no(t,n+18),compressedSize:no(t,n+14)});const u=s.get(rVt);u&&(SHt(u,e),e.extraFieldZip64=u);const d=s.get(dVt);d&&(Nfe(d,bfe,xfe,e,i),e.extraFieldUnicodePath=d);const h=s.get(hVt);h&&(Nfe(h,Mfe,Efe,e,i),e.extraFieldUnicodeComment=h);const f=s.get(aVt);f?(PHt(f,e,c),e.extraFieldAES=f):e.compressionMethod=c;const A=s.get(lVt);A&&(THt(A,e),e.extraFieldNTFS=A);const p=s.get(uVt);p&&(kHt(p,e,o),e.extraFieldExtendedTimestamp=p);const g=s.get(pVt);g&&(e.extraFieldUSDZ=g)}function SHt(i,e){e.zip64=!0;const t=_o(i.data),n=MHt.filter(([o,r])=>e[o]==r);for(let o=0,r=0;o<n.length;o++){const[s,a]=n[o];if(e[s]==a){const l=EHt[a];e[s]=i[s]=l.getValue(t,r),r+=l.bytes}else if(i[s])throw new Error(CHt)}}function Nfe(i,e,t,n,o){const r=_o(i.data),s=new Qw;s.append(o[t]);const a=_o(new Uint8Array(4));a.setUint32(0,s.get(),!0);const l=no(r,1);Object.assign(i,{version:Fm(r,0),[e]:Xw(i.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==no(a,0)}),i.valid&&(n[e]=i[e],n[e+"UTF8"]=!0)}function PHt(i,e,t){const n=_o(i.data),o=Fm(n,4);Object.assign(i,{vendorVersion:Fm(n,0),vendorId:Fm(n,2),strength:o,originalCompressionMethod:t,compressionMethod:Do(n,5)}),e.compressionMethod=i.compressionMethod}function THt(i,e){const t=_o(i.data);let n=4,o;try{for(;n<i.data.length&&!o;){const r=Do(t,n),s=Do(t,n+2);r==cVt&&(o=i.data.slice(n+4,n+4+s)),n+=4+s}}catch{}try{if(o&&o.length==24){const r=_o(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),l=r.getBigUint64(16,!0);Object.assign(i,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:l});const c=DL(s),u=DL(a),d=DL(l),h={lastModDate:c,lastAccessDate:u,creationDate:d};Object.assign(i,h),Object.assign(e,h)}}catch{}}function kHt(i,e,t){const n=_o(i.data),o=Fm(n,0),r=[],s=[];t?((o&1)==1&&(r.push(TL),s.push(kL)),(o&2)==2&&(r.push(Pfe),s.push(fHt)),(o&4)==4&&(r.push(Tfe),s.push(AHt))):i.data.length>=5&&(r.push(TL),s.push(kL));let a=1;r.forEach((l,c)=>{if(i.data.length>=a+4){const u=no(n,a);e[l]=i[l]=new Date(u*1e3);const d=s[c];i[d]=u}a+=4})}async function RHt(i,e,t,n,o){const r=new Uint8Array(4),s=_o(r);_Ht(s,0,e);const a=n+o;return await l(n)||await l(Math.min(a,t));async function l(c){const u=t-c,d=await fs(i,u,c);for(let h=d.length-n;h>=0;h--)if(d[h]==r[0]&&d[h+1]==r[1]&&d[h+2]==r[2]&&d[h+3]==r[3])return{offset:u+h,buffer:d.slice(h,h+n).buffer}}}function Ns(i,e,t){return e[t]===Ko?i.options[t]:e[t]}function DHt(i){const e=(i&4294901760)>>16,t=i&65535;try{return new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(t&63488)>>11,(t&2016)>>5,(t&31)*2,0)}catch{}}function DL(i){return new Date(Number(i/BigInt(1e4)-BigInt(116444736e5)))}function Fm(i,e){return i.getUint8(e)}function Do(i,e){return i.getUint16(e,!0)}function no(i,e){return i.getUint32(e,!0)}function Yw(i,e){return Number(i.getBigUint64(e,!0))}function _Ht(i,e,t){i.setUint32(e,t,!0)}function _o(i){return new DataView(i.buffer)}let Ufe;try{Ufe=typeof document>"u"&&typeof rk>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?rk.href:Cd&&Cd.tagName.toUpperCase()==="SCRIPT"&&Cd.src||new URL("bimdata-viewer.umd.cjs",document.baseURI).href}catch{}yL({baseURL:Ufe}),oHt(yL),yL({Deflate:kUt,Inflate:YUt});function LHt(i){return{getDetailedExtensions(e){return[]},getExtensions(e){return[]},getFullTopics(e,t,n,o,r,s,a){return[]},getTopics(e,t,n,o){return[]}}}function FHt(i){return{checkProjectAccess(e,t){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,t){return{}},getDocumentHistories(e,t,n){return[]},getProjectUsers(e,t){return[]}}}function OHt(i={}){var u,d,h,f,A,p,g,m,w,y;const e=i,t=((u=e.units)==null?void 0:u.reduce((v,x)=>(x.conversion_baseunit=e.units[x.conversion_baseunit_index],delete x.conversion_baseunit_index,v[x.id]=x,v),{}))??{},n=((d=e.definitions)==null?void 0:d.reduce((v,x)=>(x.unit=e.units[x.unit_id],delete x.unit_id,v[x.id]=x,v),{}))??{},o=((h=e.property_sets)==null?void 0:h.reduce((v,x)=>(x.properties.forEach(M=>{M.definition=e.definitions[M.def_id],delete M.def_id}),v[x.id]=x,v),{}))??{},r=((f=e.classifications)==null?void 0:f.reduce((v,x)=>(x.name=x.type,x.title=x.description,v[x.id]=x,v),{}))??{},s=((A=e.layers)==null?void 0:A.reduce((v,x)=>(x.elements=[],v[x.id]=x,v),{}))??{},a=((p=e.systems)==null?void 0:p.reduce((v,x)=>(x.elements=[],v[x.uuid]=x,v),{}))??{},l={};l.materials_data=((g=e.materials)==null?void 0:g.materials_data.reduce((v,x)=>(x.property_sets=x.psets.map(M=>e.property_sets[M]),delete x.psets,delete x.step_id,v[x.id]=x,v),{}))??{},l.list_components=((m=e.materials)==null?void 0:m.list_components.reduce((v,x)=>(x.material=e.materials.materials_data[x.material],x.option=e.materials.options[x.material_option],v[x.id]=x,delete x.id,v),{}))??{},l.options=((w=e.materials)==null?void 0:w.options.reduce((v,x)=>(x.list_components=x.material_list.map(M=>e.materials.list_components[M]),v[x.id]=x,v),{}))??{};const c={};return(y=e.elements)==null||y.forEach(v=>{v.attributes=e.property_sets[v.attributes],v.property_sets=v.psets.map(x=>e.property_sets[x]),delete v.psets,v.classifications=v.classifications.map(x=>e.classifications[x]),v.systems=v.systems.map(x=>{const M=e.systems[x];return M.elements.push(v.uuid),M}),v.layers=v.layers.map(x=>{const M=e.layers[x];return M.elements.push(v.uuid),M}),v.material_list=v.material_list.map(x=>e.materials.list_components[x]),c[v.uuid]=v}),{units:t,definitions:n,property_sets:o,classifications:r,layers:s,systems:a,materials:l,elements:c}}function NHt(i){const e={};return Object.values(i).forEach(t=>{e[t.uuid]={},e[t.uuid].attributes={},t.attributes.properties.forEach(n=>{e[t.uuid].attributes[n.definition.name]=n.value}),t.property_sets.forEach(n=>{e[t.uuid][n.name]={},n.properties.forEach(o=>{e[t.uuid][n.name][o.definition.name]=o.value})})}),e}function UHt(i){return Object.values(i).forEach(e=>{e.formattedRawElements=OHt(e.rawElements)}),{getModels(e,t,n,o,r){let s=Object.values(i).map(a=>a.model);return s=s.filter(a=>!(a.type==="PDF"&&a.parent_id)),(n==null?void 0:n.length)>0&&(s=s.filter(a=>n.includes(a.source))),(o==null?void 0:o.length)>0&&(s=s.filter(a=>o.includes(a.status))),(r==null?void 0:r.length)>0&&(s=s.filter(a=>r.includes(a.type))),s},getModel(e,t,n){return i[t].model},getTileset(e,t,n,o){console.warn("[BIMData Viewer] Offline Warning: `getTileset` is not available in offline mode.")},getBuildings(e,t,n){return i[t].buildings},getBuildingPlanPositioning(e,t,n,o,r){const s=this.getBuilding(t,o,r,e).plans.find(a=>a.plan.id===n);return{translation_x:s.translation_x,translation_y:s.translation_y,rotate_z:s.rotate_z,scale:s.scale,opacity:s.opacity}},getBuilding(e,t,n,o){return i[t].buildings.find(r=>r.uuid===o)},getModelClassifications(e,t,n){return Object.values(i[t].formattedRawElements.classifications)},listClassificationElementRelations(e,t,n){return Object.values(i[t].formattedRawElements.elements).flatMap(r=>r.classifications.map(s=>({element_uuid:r.uuid,classification_id:s.id})))},getElementsFromClassification(e,t,n,o){return i[n].formattedRawElements.classifications[t].elements},getDrawings(e,t,n){return i[t].drawings},getDrawing(e,t,n,o){return this.getDrawings(e,n,o).find(r=>r.id===t)},getElements(e,t,n,o,r,s){return Object.values(i[t].formattedRawElements.elements).filter(l=>s?l.type===s:o?l.classifications.some(c=>c.name===o):r?l.classifications.some(c=>c.notation===r):!0)},getElementLinkedDocuments(e,t,n){return console.warn("[BIMData Viewer] Offline Warning: `getElementLinkedDocuments` is not available in offline mode."),[]},async getRawElements(e,t,n,o,r,s){return i[t].rawElements},getSimpleElements(e,t,n,o,r,s){const a=this.getElements(e,t,n,o,r,s);return NHt(a)},getClassificationsOfElement(e,t,n,o){return this.getElement(e,n,o,t).classifications},getDocumentsOfElement(e,t,n,o){return console.warn("[BIMData Viewer] Offline Warning: `getDocumentsOfElement` is not available in offline mode."),[]},getMaterials(e,t,n,o){return this.getElement(e,n,o,t).material_list.map(r=>r.material)},getMaterial(e,t,n,o,r){return this.getMaterials(e,t,o,r).find(s=>s.id===n)},getElementPropertySets(e,t,n,o){return this.getElement(e,n,o,t).property_sets},getElementPropertySet(e,t,n,o,r){return this.getElementPropertySets(e,t,o,r).find(s=>s.id===n)},getElementPropertySetProperties(e,t,n,o,r){return this.getElementPropertySet(e,t,r,n,o).properties},getElementPropertySetProperty(e,t,n,o,r,s){return this.getElementPropertySetProperties(e,t,o,r,s).find(a=>a.id===n)},getElementPropertySetPropertyDefinitions(e,t,n,o,r,s){return[this.getElementPropertySetProperty(e,t,r,n,o,s).definition]},getElementPropertySetPropertyDefinition(e,t,n,o,r,s,a){const l=this.getElementPropertySetProperty(e,t,s,o,r,a).definition;return l.id===n?l:void 0},getElementPropertySetPropertyDefinitionUnits(e,t,n,o,r,s,a){return[this.getElementPropertySetPropertyDefinition(e,t,s,n,o,r,a).unit]},getElementPropertySetPropertyDefinitionUnit(e,t,n,o,r,s,a,l){const c=this.getElementPropertySetPropertyDefinition(e,t,a,o,r,s,l).unit;return c.id===n?c:void 0},getElement(e,t,n,o){return i[t].formattedRawElements.elements[o]},getSimpleElement(e,t,n,o){return this.getSimpleElements(e,t,n)[o]},getLayers(e,t,n){return Object.values(i[t].formattedRawElements.layers)},getLayer(e,t,n,o){return this.getLayers(e,n,o).find(r=>r.id===t)},getModelMaterials(e,t,n){return Object.values(i[t].formattedRawElements.materials.materials_data)},getModelMaterial(e,t,n,o){return this.getModelMaterials(e,n,o).find(r=>r.id===t)},getProcessorHandlers(e,t,n){return console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandlers` is not available in offline mode."),[]},getProcessorHandler(e,t,n,o){console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandler` is not available in offline mode.")},getModelProperties(e,t,n){return i[t].properties},getModelProperty(e,t,n,o){return i[n].properties.find(r=>r.id===t)},getModelPropertyDefinitions(e,t,n){return Object.values(i[t].formattedRawElements.definitions)},getModelPropertyDefinition(e,t,n,o){return this.getModelPropertyDefinitions(e,n,o).find(r=>r.id===t)},getPropertySets(e,t,n){return Object.values(i[t].formattedRawElements.property_sets)},getPropertySet(e,t,n,o){return this.getPropertySets(e,n,o).find(r=>r.id===t)},getSpaces(e,t,n){return i[t].spaces},getSpace(e,t,n,o){return i[n].spaces.find(r=>r.id===t)},getStoreys(e,t,n){return i[t].storeys},getStoreyPlanPositioning(e,t,n,o,r){const s=this.getStorey(e,n,o,r).plans.find(a=>a.plan.id===t);return{translation_x:s.translation_x,translation_y:s.translation_y,rotate_z:s.rotate_z,scale:s.scale,opacity:s.opacity}},getStorey(e,t,n,o){return i[t].storeys.find(r=>r.uuid===o)},getSystems(e,t,n){return Object.values(i[t].formattedRawElements.systems)},getSystem(e,t,n,o){return this.getSystems(e,t,n).find(r=>r.uuid===o)},getModelUnits(e,t,n){return Object.values(i[t].formattedRawElements.units)},getModelUnit(e,t,n,o){return this.getModelUnits(e,n,o).find(r=>r.id===t)},getZones(e,t,n,o){return i[t].zones.filter(r=>o?r.color===o:!0)},getZone(e,t,n,o){return i[n].zones.find(r=>r.id===t)},getZoneSpaces(e,t,n,o){return this.getZone(e,o,t,n).spaces},getZoneSpace(e,t,n,o,r){return this.getZoneSpaces(e,n,o,r).find(s=>s.id===t)}}}async function VHt(i){const e=i.find(n=>n.filename==="data.json"),t=await(e==null?void 0:e.getData(new lHt));return t?JSON.parse(t):null}async function P5(i,e,t){const n=i.find(r=>r.filename===`${e.id}/${t}`),o=await(n==null?void 0:n.getData(new yfe));return o?URL.createObjectURL(o):null}async function HHt(i,e){await Promise.all([P5(i,e,"document_file").then(t=>e.document&&(e.document.file=t)),P5(i,e,"structure_file").then(t=>e.structure_file=t),P5(i,e,"map_file").then(t=>e.map_file=t),P5(i,e,"binary_2d_file").then(t=>e.binary_2d_file=t),...e.xkt_files.map((t,n)=>P5(i,e,`xkt_file_v${t.version}`).then(o=>e.xkt_files[n]={version:t.version,file:o}))])}async function zHt(i){const t=await new BHt(new vfe(i)).getEntries(),n=await VHt(t);return await Promise.all(Object.values(n).flatMap(({model:o,buildings:r=[],storeys:s=[]})=>[o].concat(o.children).concat(r.flatMap(a=>a.plans).map(a=>a.plan)).concat(s.flatMap(a=>a.plans).map(a=>a.plan))).map(o=>HHt(t,o))),n}function _L(i,e,t){return new Proxy(i[t],{get:function(n,o){if(e[o])return e[o];throw new Error(`[BIMData Viewer] Offline Error: method \`${t}.${o}\` is not mocked.`)}})}async function jHt(i,e,t){var l,c,u;typeof i=="string"&&(i=await fetch(i).then(d=>d.blob()));const n=await zHt(i),o=LHt(),r=FHt(),s=UHt(n);return Object.assign(o,(l=t.methods)==null?void 0:l.bcfApi),Object.assign(r,(c=t.methods)==null?void 0:c.collaborationApi),Object.assign(s,(u=t.methods)==null?void 0:u.modelApi),Object.assign({},e,{bcfApi:_L(e,o,"bcfApi"),collaborationApi:_L(e,r,"collaborationApi"),modelApi:_L(e,s,"modelApi")})}class GHt{constructor(e={}){const{apiUrl:t,archiveUrl:n,pdfBackendUrl:o,cloudId:r,projectId:s,accessToken:a,offline:l}=e;this.apiUrl=t,this.archiveUrl=n,this.pdfBackendUrl=o,this.cloudId=r,this.projectId=s,this._accessToken=a,this.offline=l??{enabled:!1};const c=nk.makeBIMDataApiClient({apiUrl:t,accessToken:a});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,h,f){const A=h.replace("Deprecated","").replace("Ifc","Model");return Reflect.get(d,A,f)}})}})}get accessToken(){return this._accessToken}set accessToken(e){this._accessToken=e,this.apiClient.accessToken=e}async getAvailableModels(e=null,t=!1){return t&&(this.getModelsPromise=null),this.getModelsPromise||(this.getModelsPromise=this.apiClient.modelApi.getModels(this.cloudId,this.projectId)),(await this.getModelsPromise).filter(n=>(e==null?void 0:e.includes(n.type))??!0)}getModel(e){const{cloudId:t,projectId:n,apiClient:o}=this;return o.modelApi.getModel(t,e,n)}getIfc(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the `getModel` method instead of `getIfc`."),this.getModel(e)}async getModelStructure(e){const o=(await(await fetch(e.structure_file)).json())[0];return Cu(o),o}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:t,projectId:n,apiClient:o}=this,r=await o.modelApi.getRawElements(t,e,n);r.units.forEach(a=>{a.conversion_baseunit=r.units[a.conversion_baseunit_index],delete a.conversion_baseunit_index}),r.definitions.forEach(a=>{a.unit=r.units[a.unit_id],delete a.unit_id}),r.property_sets.forEach(a=>{a.properties.forEach(l=>{l.definition=r.definitions[l.def_id],delete l.def_id})});const s={};return r.elements.forEach(a=>{a.attributes=r.property_sets[a.attributes],a.property_sets=a.psets.map(l=>r.property_sets[l]),Object.assign(a,{get propertySets(){return console.warn("propertySets is deprecated, please use property_sets instead."),a.property_sets}}),delete a.psets,a.classifications=a.classifications.map(l=>r.classifications[l]),a.systems=a.systems.map(l=>r.systems[l]),a.layers=a.layers.map(l=>r.layers[l]),s[a.uuid]=a}),s}getStoreys(e){const{cloudId:t,projectId:n,apiClient:o}=this;return o.modelApi.getStoreys(t,e,n)}createModel(e){const{cloudId:t,projectId:n,apiClient:o}=this;return o.modelApi.createModel(t,n,{document_id:e})}async waitForModelProcess(e){const t=["C","E","X"];return t.includes(e.status)?e:new Promise((n,o)=>{const r=setInterval(async()=>{try{let s=await this.getModel(e.id);t.includes(s.status)&&(clearInterval(r),n(s))}catch(s){clearInterval(r),o(s)}},1e3)})}async createStoreyPlan(e,t,n){const{cloudId:o,projectId:r,apiClient:s}=this,a=await this.createModel(n);return await s.modelApi.createStoreyPlan(o,e,r,t,{id:a.id}),a}deleteStoreyPlan(e,t,n){const{cloudId:o,projectId:r,apiClient:s}=this;return s.modelApi.deleteStoreyPlan(o,n,e,r,t)}updatePlanPositioning(e,t,n,o){const{cloudId:r,projectId:s,apiClient:a}=this;return a.modelApi.updateStoreyPlanPositioning(r,n,e,s,t,o)}async enableOfflineMode(e,t={}){let n;this.ready=new Promise(o=>n=o),this.apiClient=await jHt(e,this.apiClient,t),this.offline.enabled=!0,n()}disableOfflineMode(){this.offline.enabled&&(this.apiClient=nk.makeBIMDataApiClient({apiUrl:this.apiUrl,accessToken:this.accessToken}),this.offline.enabled=!1)}}function qHt(i){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"}],t=e.reduce((o,r)=>(o[r.methodName]=function(s,a){n(this,r,a);const{property:l,value:c}=r,u=[];for(const d of s){const h=i.get(d);try{h[l]=c,u.push(h)}catch{console.warn(`object with id ${d} does not exist`)}}this.hub.emit(r.eventName,{objects:u,options:{...a}})},o[`${r.methodName}ByUuids`]=function(s,a){n(this,r,a);const{property:l,value:c}=r,u=s.map(d=>this.uuidsMap.get(d)).filter(d=>(d==null?void 0:d.length)>0).flatMap(d=>d.map(h=>(h[l]=c,h)));this.hub.emit(r.eventName,{objects:u,options:{...a}})},o),{}),n=(o,r,s)=>{if(r.exlusiveIndex!==void 0&&(s!=null&&s.exclusive)){const a=e[r.exlusiveIndex],{property:l,value:c}=r;o[a.methodName](o.objects.filter(u=>u[l]===c).map(u=>u.id),{options:{...s}})}};return{...t,colorizeObjects(o,r,s){const a=[];for(const l of o)try{const c=i.get(l);c.color=r,a.push(c)}catch{console.warn(`object with id ${l} does not exist`)}this.hub.emit("objects-colorized",{objects:a,color:r,options:{...s}})},colorizeObjectsByUuids(o,r,s){const a=o.flatMap(l=>this.uuidsMap.get(l));this.colorizeObjects(a.map(l=>l.id),r,s)},get objects(){return Array.from(i.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 i}}}const QHt=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 KHt(i,e,t){async function n(u,d){try{const f=(await i.apiClient.modelApi.getElement(i.cloudId,t,i.projectId,u)).attributes.properties.find(A=>A.definition.name===d);if(f){const A=f.definition.unit;if(A){const{name:p,prefix:g}=A;p!=="METRE"&&console.warn(`[Viewer] Elevation unit other that "METRE" are not supported. Unit "${p}" fallback to "METRE".`);const m=QHt[g];return m===void 0&&console.warn(`[Viewer] Elevation unit prefix "${g}" is unknown and will be ignored.`),(f.value??0)*(m??1)}else return f.value??0}}catch(h){console.warn(`[Models] Cannot get elevation of object with uuid ${u}: ${h}`)}return 0}const o=new Map,r=new Map,s=new Map;function a(){const u=new Set(e.map(d=>{var h,f;return(f=(h=d.object)==null?void 0:h.site)==null?void 0:f.uuid}).filter(Boolean));return Sp(u,10,(d,h)=>{n(d,"RefElevation").then(f=>{o.set(d,f),h()},h)})}function l(){const u=new Set(e.map(d=>{var h,f;return(f=(h=d.object)==null?void 0:h.building)==null?void 0:f.uuid}).filter(Boolean));return Sp(u,10,(d,h)=>{n(d,"ElevationOfRefHeight").then(f=>{r.set(d,f),h()},h)})}function c(){return Sp(e,10,(u,d)=>{n(u.uuid,"Elevation").then(h=>{s.set(u.uuid,h),d()},d)})}await Promise.all([a(),l(),c()]),e.forEach((u,d)=>{var A,p,g,m;const h=s.get(u.uuid)??d;u.elevation=h;const f=r.get((p=(A=u.object)==null?void 0:A.building)==null?void 0:p.uuid);if(f==null){const w=o.get((m=(g=u.object)==null?void 0:g.site)==null?void 0:m.uuid)??0;u.absoluteElevation=h+w}else u.absoluteElevation=h+f}),e.forEach((u,d)=>{var h,f;u.topElevation=((h=e[d+1])==null?void 0:h.elevation)??1/0,u.absoluteTopElevation=((f=e[d+1])==null?void 0:f.absoluteElevation)??1/0})}async function JHt(i,e,t){e.every(n=>n.bimdata_elevation!==null&&n.bimdata_elevation!==void 0)?(e.forEach(n=>{n.elevation=n.bimdata_elevation,n.absoluteElevation=n.bimdata_elevation}),e.forEach((n,o)=>{var r,s;n.topElevation=((r=e[o+1])==null?void 0:r.elevation)??1/0,n.absoluteTopElevation=((s=e[o+1])==null?void 0:s.absoluteElevation)??1/0})):await KHt(i,e,t)}class LL{constructor(e){const{archived:t,binary_2d_file:n,children:o,created_at:r,creator:s,document:a,document_id:l,errors:c,gltf_file:u,id:d,layout_name:h,map_file:f,name:A,north_vector:p,page_number:g,parent_id:m,preview_file:w,project_id:y,recommanded_2d_angle:v,size_ratio:x,source:M,status:I,structure_file:E,systems_file:B,transform:T,type:P,updated_at:R,version:L,viewer_360_file:N,warnings:z,world_position:H,xkt_file:q,xkt_files:J}=e;this.id=d,this.name=A,this.type=P,this.archived=t,this.binary_2d_file=n,this.children=(o==null?void 0:o.map(te=>new LL(te)))??[],this.created_at=r,this.creator=s,this.document=a,this.document_id=l,this.errors=c,this.gltf_file=u,this.map_file=f,this.north_vector=p,this.page_number=g,this.parent_id=m,this.preview_file=w,this.project_id=y,this.recommanded_2d_angle=v,this.size_ratio=x,this.source=M,this.status=I,this.structure_file=E,this.systems_file=B,this.transform=T,this.updated_at=R,this.version=L,this.viewer_360_file=N,this.warnings=z,this.world_position=H,this.xkt_file=q,this.xkt_files=J,this.layout_name=h}}class FL{constructor(e,t,n,o){this.model=t,this.storey=n,this.index=o,this.key=`${n.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 WHt{constructor(e,t){this.model=t;const{name:n,uuid:o,plans:r,plans_unreachable_count:s,bimdata_elevation:a}=e;this.name=n,this.uuid=o,this.bimdata_elevation=a,this.key=`${t.id}-${this.uuid}`,this.plans_unreachable_count=s,this.plans=r.map((l,c)=>new FL(l,t,this,c)),this.object=t.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 OL extends nB{constructor(e,t){super(e,t,"zone");const{id:n,uuid:o,name:r,created_at:s,updated_at:a,parent_id:l,order:c,zones:u=[],spaces:d=[],color:h,storey_uuid:f}=e;this.id=n,this.uuid=o,this.name=r,this.created_at=s,this.updated_at=a,this.parent_id=l,this.order=c,this.zones=u.map(A=>new OL(A,t)),this.spaces=d,this.color=h,this.storey_uuid=f}getContainedSpaces(){const e=Array.from(this.spaces);for(const t of this.zones)e.push(...t.getContainedSpaces());return e}get area(){return this.getContainedSpaces().filter(t=>t.geometry).reduce((t,n)=>t+ZHt(n.geometry),0)}get perimeter(){return this.getContainedSpaces().filter(t=>t.geometry).reduce((t,n)=>t+XHt(n.geometry),0)}}function ZHt(i){let e=0;const t=i.length;for(let n=0;n<t;n++){const o=(n+1)%t;e+=i[n].x*i[o].y,e-=i[o].x*i[n].y}return Math.abs(e)/2}function XHt(i){let e=0;const t=i.length;for(let n=0;n<t;n++){const o=(n+1)%t;e+=Math.sqrt(Math.pow(i[o].x-i[n].x,2)+Math.pow(i[o].y-i[n].y,2))}return e}class YHt extends LL{constructor(e,t,{structure:n,zones:o,systems:r,storeys:s}={}){var c,u;if(super(t),this._stateObjectMap=e,this.uuids=new Map,n){const d=oQ(n,this,e),h=get(d);this.structure=d,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??[]),r==null||r.forEach(d=>{const h=new nB(d,this,"system");this.uuids.set(h.uuid,h),e.set(h.id,h),this.objects.unshift(h)}),this.storeys=(s==null?void 0:s.map(d=>new WHt(d,this)).sort(ec("order",!1)))??[];const a=new Map(this.storeys.map(d=>[d.uuid,new Set])),l=this.type==="DWG"?"layout":"storey";for(const d of this.objects)d.type!==l&&a.has((c=d[l])==null?void 0:c.uuid)&&a.get((u=d[l])==null?void 0:u.uuid).add(d);for(const d of this.storeys){const h=a.get(d.uuid);d.objects=h?[...h.values()]:[]}this.objects.forEach(d=>{var h,f;d.parent=this.uuids.get((h=d.parent)==null?void 0:h.uuid),d.children=(f=d.children)==null?void 0:f.map(A=>this.uuids.get(A.uuid)).filter(Boolean)})}setZones(e=[]){this.zones.forEach(t=>{this._stateObjectMap.delete(t.id),this.uuids.delete(t.uuid),this.objects.splice(this.objects.indexOf(t),1)}),this.zones=e.map(t=>{const n=new OL(t,this);return this._stateObjectMap.set(n.id,n),this.uuids.set(n.uuid,n),this.objects.unshift(n),n})}}const $Ht=(i,e,t)=>{const{api:n}=t;async function o(r,s={}){if(typeof r=="string"&&(console.warn(`[State] 'loadModel' called with id ${r} as string and parsed as integer.`),r=parseInt(r)),i.get(r))return console.warn(`[State] 'loadModel' called with id ${r}}, model already loaded.`),i.get(r);const a=[n.apiClient.modelApi.getZones(n.cloudId,r,n.projectId)];let l;s.pdfPageModel?l=s.pdfPageModel:(l=await n.getModel(r),a.push(n.apiClient.modelApi.getSystems(n.cloudId,r,n.projectId)),a.push(n.getStoreys(r)),l.parent_id&&!i.get(l.parent_id)&&await o(l.parent_id),l.structure_file&&a.push(n.getModelStructure(l)));const[c,u=[],d=[],h]=await Promise.all(a),f=new YHt(e,l,{structure:h,zones:c,systems:u,storeys:d});return await JHt(n,f.storeys,f.id),i.set(r,f),f}return{get models(){return Array.from(i.values())},get ifcs(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the models instead of ifcs."),Array.from(i.values()).filter(r=>!r.type||r.type==="IFC")},get modelsMap(){return i},get ifcsMap(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the modelsMap instead of ifcsMap."),new Map([...i].filter(([,r])=>!r.type||r.type==="IFC"))},async loadModels(r,s){const a=await Promise.all(r.map(l=>o(l,s)));if(a.length>0){const l=a.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-loaded",{ifcs:l}),this.hub.emit("models-loaded",{models:a}),t.globalContext.hub.emit("models-loaded",{models:a}),this.hub.emit("objects-added",{objects:a.flatMap(c=>c.objects)})}return a},loadIfcs(r){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the loadModels method instead of loadIfcs."),this.loadModels(r)},unloadModels(r){const s=[],a=[];if(r.forEach(l=>{const c=i.get(l);c?(i.delete(l),c.objects.map(d=>(a.push(d),d.id)).forEach(d=>e.delete(d)),s.push(c)):console.warn(`[State] Cannot unload model with id ${l} because it is not loaded.`)}),a.length>0&&this.hub.emit("objects-removed",{objects:a}),s.length>0){const l=s.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-unloaded",{ifcs:l}),this.hub.emit("models-unloaded",{models:s})}return s},unloadIfcs(r){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the unloadModels method instead of unloadIfcs."),this.unloadModels(r)},getStoreyFromAbsoluteElevation(r,s){var a;if(!r.storeys)return null;for(let l=0;l<r.storeys.length;l++)if(s>=r.storeys[l].absoluteElevation&&s<(((a=r.storeys[l+1])==null?void 0:a.absoluteElevation)??1/0))return r.storeys[l];return r.storeys[0]}}};function ezt(i){return{async createPlan(e,t,n,o){const r=await i.api.createStoreyPlan(e.id,t.uuid,n.id);await i.api.updatePlanPositioning(e.id,t.uuid,r.id,o);const s=new FL({...o,plan:r},e,t,e.storeys.length);return t.plans.push(s),this.hub.emit("plan-created",{plan:s}),s},async updatePlan(e,t=null){const n=await i.api.updatePlanPositioning(e.model.id,e.storey.uuid,e.plan.id,e);return Object.assign(e,new FL({...n,plan:e.plan},e.model,e.storey,e.index)),this.hub.emit("plan-updated",{plan:e,prevPlan:t}),e},async deletePlan(e){await i.api.deleteStoreyPlan(e.model.id,e.storey.uuid,e.plan.id),e.storey.plans=e.storey.plans.filter(t=>t.key!==e.key),this.hub.emit("plan-deleted",{plan:e})}}}const tzt=(i,e)=>{const t={getObjectsByUuids(n){return n.flatMap(o=>this.uuidsMap.get(o))},getObject(n){return console.warn("[BIMData Viewer] DEPRECATED - State - `getObject` is deprecated, use `objectsMap.get` instead."),e.get(n)},getIfc(n){return console.warn("[BIMData Viewer] DEPRECATED - State - `getIfc` is deprecated, use `modelsMap.get` instead."),i.get(n)},get colorizedObjects(){return Array.from(e.values()).filter(n=>!!n.color)},get colorizedObjectsIds(){return this.colorizedObjects.map(n=>n.id)},get colorizedObjectsUuids(){return Array.from(new Set(this.colorizedObjects.map(n=>n.uuid)))},getObjectsOfType(n){return Array.from(e.values()).filter(o=>o.type===n)},getTypesOf(n){typeof n.map>"u"&&(n=[...n]);const o=new Set;return n.forEach(r=>{const s=e.get(r);s&&s.type&&o.add(s.type)}),Array.from(o).sort()},getObjectsWithTheSameTypeAs(n){const o=this.getTypesOf(n);return[...e.values()].filter(r=>o.includes(r.type))}};return izt.forEach(n=>{Object.defineProperty(t,n.name,{get(){return Array.from(e.values()).filter(o=>o[n.property]===n.value).map(o=>Object.freeze(Object.defineProperties({},Object.getOwnPropertyDescriptors(o))))}}),Object.defineProperty(t,`${n.name}Ids`,{get(){return this[n.name].map(nzt)}}),Object.defineProperty(t,`${n.name}Uuids`,{get(){return Array.from(new Set(this[n.name].map(ozt)))}})}),t},izt=[{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 nzt(i){return i.id}function ozt(i){return i.uuid}function NL(i,e,t){var n;return(n=i.mixins)!=null&&n.some(o=>o[t])||(i.mixins?i.mixins[i.mixins.length]=e:i.mixins=[e]),i}const Vfe=Symbol("annotation-mixin-id");function szt(){let i=0;const e=new Map;return{get annotations(){return Array.from(e.values())},addAnnotation({x:t=0,y:n=0,z:o=0,draggable:r=!0,grabberSelector:s,component:a={render(){}},props:l={}}={},c){const u=this,d=i++,h={get id(){return d},get x(){return t},set x(f){t=f,u.hub.emit("annotation-updated",{annotation:h})},get y(){return n},set y(f){n=f,u.hub.emit("annotation-updated",{annotation:h})},get z(){return o},set z(f){o=f,u.hub.emit("annotation-updated",{annotation:h})},draggable:r,grabberSelector:s,component:a,props:l};return NL(h.component,{[Vfe]:!0,inject:["$viewer"]},Vfe),e.set(d,h),this.hub.emit("annotation-added",{annotation:h,options:c}),h},removeAnnotation(t,n){return e.has(t.id)?(e.delete(t.id),this.hub.emit("annotation-removed",{annotation:t,options:n}),!0):!1},clearAnnotations(){e.forEach(t=>this.removeAnnotation(t))}}}function rzt(i){const e=new Map,t=new Map,n={uuidsMap:{get(o){const r=[];return e.forEach(s=>{const a=s.uuids.get(o);a&&r.push(a)}),r}},hub:new lu};return[$Ht(e,t,i),qHt(t),ezt(i),szt(),tzt(e,t)].forEach(o=>Object.defineProperties(n,Object.getOwnPropertyDescriptors(o))),n}function azt(i){if((i==null?void 0:i.type)==="container")dzt(i);else if((i==null?void 0:i.type)==="zone")uzt(i);else throw new TypeError("AREAS CORE - Layout first child must be a zone or a container.");return lzt(i),i}function lzt(i){let e=new Set,t=new Set;for(let n of i)if(n.id!=null)if(n.type==="zone"){if(e.has(n.id))throw new Error("AREAS CORE - Cannot add the same zone id twice.");e.add(n.id)}else{if(t.has(n.id))throw new Error("AREAS CORE - Cannot add the same container id twice.");t.add(n.id)}}function czt(i){Hfe(i.layout,"zone",i.zoneIdManager),Hfe(i.layout,"container",i.containerIdManager)}function Hfe(i,e,t){let n=[...i].filter(o=>o.type===e);n.map(o=>o.id).filter(o=>o!=null).forEach(o=>t.add(o)),n.filter(o=>o.id===void 0||o.id===null).forEach(o=>{o.id=t.nextId()})}function uzt(i){if(typeof i!="object")throw new TypeError("AREAS CORE - Invalid zone. Zone must be an object.");if((i==null?void 0:i.type)!=="zone")throw new TypeError('AREAS CORE - Invalid zone. A zone must be of type "zone".');return i}function dzt(i){var e,t;if(typeof i!="object")throw new TypeError("AREAS CORE - Invalid container. A container must be an object.");if((i==null?void 0:i.type)!=="container")throw new TypeError('AREAS CORE - Invalid container. Container must be of type "container".');if(i!=null&&i.direction&&!["row","column"].includes(i.direction))throw new TypeError('AREAS CORE - Invalid container. Container direction must be of type "row" or "column".');if(((e=i==null?void 0:i.children)==null?void 0:e.length)<2)throw new TypeError("AREAS CORE - Invalid container. Container children must have at least 2 children.");if(((t=i==null?void 0:i.children)==null?void 0:t.reduce((n,o)=>n+(o==null?void 0:o.ratio),0))!==100)throw new TypeError("AREAS CORE - Invalid container. The sum of container children ratios must be equal to 100.");return i}function zfe(i){var e;return(e=i.children)!=null&&e.length&&i.children.forEach(t=>{Object.defineProperty(t,Symbol.iterator,{value:zfe(t),configurable:!0})}),function*(){var t;if(yield i,(t=i.children)==null?void 0:t.length)for(let n of i.children)yield*n}}function Om(i){return Object.defineProperty(i,Symbol.iterator,{value:zfe(i),configurable:!0}),i}function jfe(){let i=1,e=new Set;return{nextId(){for(;!this.isIdAvailable(i);)i++;return e.add(i),i},isIdAvailable(t){return!e.has(t)},add(t){return this.isIdAvailable(t)?(e.add(t),t):!1}}}function Gfe(i){var t;if(!i)return;let e=Object.assign({},i);return((t=i.children)==null?void 0:t.length)>0&&(e.children=i.children.map(Gfe)),e}function hzt(i){return e=>{let t=i.getZone(e);if(!t)return!1;let n=i.getParent(t);if(!n)throw new Error("AREAS CORE - Cannot delete root Zone");let o=n.children.indexOf(t);if(n.children.length>2){let r=n.children[o-1],s=n.children[o+1];o===0?s.ratio+=t.ratio:o===n.children.length-1?r.ratio+=t.ratio:(r.ratio+=Math.floor(t.ratio/2),s.ratio+=Math.ceil(t.ratio/2)),n.children=n.children.filter(a=>a.type!=="zone"||a.id!==e)}else{let r=n.children[o===1?0:1];r.ratio=n.ratio;let s=i.getParent(n);if(s){let a=s.children.indexOf(n);s.children.splice(a,1,r)}else i.layout=r}return!0}}var pzt=hzt;function fzt(i){return()=>qfe(i.layout,[i.layout])}function qfe(i,e=[]){var t;return(t=i.children)==null||t.forEach(n=>{e.push(n),n.type==="container"&&qfe(n,e)}),e}var Azt=fzt;function mzt(i){return e=>{if(!e)throw new TypeError("AREAS CORE - fail to get parent: container child is null or undefined");return i.layout.type==="zone"?null:Qfe(i.layout,e)}}function Qfe(i,e){for(let t of i.children){if(t===e)return i;if(t.type==="container"){let n=Qfe(t,e);if(n)return n}}return null}var gzt=mzt;function vzt(i){return e=>i.layout.type==="zone"?i.layout.id===e?i.layout:null:Kfe(i.layout,e)}function Kfe(i,e){for(let t of i.children)if(t.type==="zone"){if(t.id===e)return t}else{let n=Kfe(t,e);if(n)return n}return null}var yzt=vzt;function wzt(i){return(e,t)=>{if(typeof t!="number")throw new TypeError("AREAS CORE - resize value must be a number.");let n=i.getParent(e),o=n.children.findIndex(s=>s===e);if(o===-1)return!1;let r=n.children[o+1];if(r){let s=e.ratio+r.ratio,a=e.ratio+t;return a=a<0?0:a,a=a>s?s:a,e.ratio=a,r.ratio=s-a,!0}else return!1}}var Czt=wzt;function bzt(i){return(e,t=50,n="row",o=!0,r=null)=>{let s=i.getZone(e);if(!s)throw new Error(`AREAS CORE - fail to split zone ${e}: zone does not exist.`);if(typeof t!="number"||t<0||t>100)throw new TypeError(`AREAS CORE - fail to split zone: invalid ratio ${t}, ratio should be a number between 0 and 100.`);if(n!=="row"&&n!=="column")throw new TypeError(`AREAS CORE - fail to split zone: invalid direction ${n}, direction should be 'row' or 'column'.`);let a=i.getParent(s),l=Om({id:i.zoneIdManager.nextId(),type:"zone",...r});if(a){let c=a.children.findIndex(u=>u===s);if(a.direction===n)o?(l.ratio=Math.floor(s.ratio*(100-t)/100),s.ratio=Math.ceil(s.ratio*t/100),a.children.splice(c,1,s,l)):(l.ratio=Math.floor(s.ratio*t/100),s.ratio=Math.ceil(s.ratio*(100-t)/100),a.children.splice(c,1,l,s));else{let u=Om({id:i.containerIdManager.nextId(),type:"container",direction:n,ratio:s.ratio});o?(l.ratio=Math.floor(100-t),s.ratio=Math.ceil(t),u.children=[s,l]):(l.ratio=Math.floor(t),s.ratio=Math.ceil(100-t),u.children=[l,s]),a.children.splice(c,1,u)}}else{let c=Om({id:i.containerIdManager.nextId(),type:"container",direction:n});o?(l.ratio=Math.floor(100-t),s.ratio=Math.ceil(t),c.children=[s,l]):(l.ratio=Math.floor(t),s.ratio=Math.ceil(100-t),c.children=[l,s]),i._layout=c}return l}}var xzt=bzt;function Mzt(i){return(e=50,t="row",n=!0,o=null)=>{let r=i.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(t!=="row"&&t!=="column")throw new TypeError(`AREAS CORE - fail to split layout: invalid direction ${t}, direction should be 'row' or 'column'.`);let s=Om({id:i.zoneIdManager.nextId(),type:"zone",...o}),a=Om({id:i.containerIdManager.nextId(),type:"container",direction:t});return n?(s.ratio=Math.floor(100-e),r.ratio=Math.ceil(e),a.children=[r,s]):(s.ratio=Math.floor(e),r.ratio=Math.ceil(100-e),a.children=[s,r]),i._layout=a,s}}var Ezt=Mzt;function Bzt(i){return(e,t)=>{let n=i.getZone(e),o=i.getZone(t);if(!n)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 ${t}: zone does not exist.`);let r=i.getParent(n),s=i.getParent(o),a=r.children.indexOf(n),l=s.children.indexOf(o),c=n.ratio,u=o.ratio;n.ratio=u,o.ratio=c,r.children[a]=o,s.children[l]=n}}var Izt=Bzt;function Szt(i){let e={_layout:null,get layout(){return this._layout},set layout(t){t||(t={type:"zone"}),Om(t),azt(t),this._layout=t,czt(e)},zoneIdManager:jfe(),containerIdManager:jfe()};return e.layout=i,e.deleteZone=pzt(e),e.getNodes=Azt(e),e.getParent=gzt(e),e.getZone=yzt(e),e.resize=Czt(e),e.splitZone=xzt(e),e.splitLayout=Ezt(e),e.swapZones=Izt(e),e}var Pzt=Szt;function Jfe(i=1,e=0,t=100){return Math.min(Math.max(e,i),t)}function Wfe(i,e){let t=i.getParent(e);if(t){let{width:n,height:o}=Wfe(i,t),r=t.children.length-1;return t.direction==="column"?{width:n,height:Math.max(0,(o-r*i.separatorSize)*(e.ratio/100))}:{width:Math.max(0,(n-r*i.separatorSize)*(e.ratio/100)),height:o}}else return{width:i.width,height:i.height}}function Zfe(i,e,t){let{width:n,height:o}=Wfe(i,e),r=e.children.length-1;if(e.direction==="column"){let s=1-r*i.separatorSize/o;return{height:`${Jfe(t.ratio*s,0,100)}%`,width:"100%"}}else{let s=1-r*i.separatorSize/n;return{height:"100%",width:`${Jfe(t.ratio*s,0,100)}%`}}}function Tzt(i,e){let t={ref:i.contentManager.getRef(e.id),id:`zone-${e.id}`,class:"areas-zone",style:{flexGrow:0,overflow:"hidden"},key:e.id},n=i.getParent(e);if(n){let{width:o,height:r}=Zfe(i,n,e);t.style={width:o,height:r}}else t.style={height:"100%"};return i.vue.h("div",t)}var UL=Tzt;function kzt(i,e,t){let{separatorSize:n,separatorDetectionMargin:o,separatorDetectionZIndex:r}=i,s=e.direction==="column",a={ref:`separator-${e.id}-${t+1}`,class:"areas-separator",style:{[s?"height":"width"]:`${n}px`,backgroundColor:"var(--areas-separator-color, black)",flexShrink:0,position:"relative"}},l=s?"ns-resize":"ew-resize",c=i.vue.h("div",{style:{position:"absolute",[s?"height":"width"]:`${o*2}px`,[s?"width":"height"]:"100%",[s?"top":"left"]:`${-o+n/2}px`,zIndex:r,cursor:l},onPointerdown:u=>Rzt(i,e,t,u)});return i.vue.h("div",a,i.resizable?[c]:null)}function Rzt(i,e,t,n){n.preventDefault(),n.stopPropagation();let o=n.currentTarget;o.setPointerCapture(n.pointerId);let r=a=>Dzt(i,e,t,a),s=()=>{o.removeEventListener("pointermove",r)};o.addEventListener("pointermove",r),o.addEventListener("pointerup",s,{once:!0})}function Dzt(i,e,t,n){let o=e.children[t],r=e.direction==="column"?"height":"width",{separatorDetectionMargin:s}=i,a=(e.direction==="column"?n.offsetY:n.offsetX)-s,l=i.root.$refs[`container-${e.id}`].getBoundingClientRect()[r],c=a/l*100;i.resize(o,c)}var _zt=kzt;function VL(i,e){let t={ref:`container-${e.id}`,id:`container-${e.id}`,class:"areas-container",style:{height:"100%",display:"flex",flexDirection:e.direction}},n=i.getParent(e);if(n){let{width:s,height:a}=Zfe(i,n,e);t.style.width=s,t.style.height=a}let o=e.children.length-1,r=e.children.map((s,a)=>a<=o-1?[s.type==="zone"?UL(i,s):VL(i,s),_zt(i,e,a)]:s.type==="zone"?UL(i,s):VL(i,s));return i.vue.h("div",t,[r])}var Lzt=VL;function Fzt(i){let e=new Map,t=new Map,n=new Map;e.set("default",{component:{render(){return i.vue.h("div","Default component")}}});function o(r){return r&&!e.has(r)&&(console.warn(`[AREAS] Content with name ${r} is not registered, fallback to 'default'.`),r="default"),e.get(r)}return{registerContent(r,s){e.set(r,{name:r,component:s})},renderContent(r){return[...r].filter(s=>s.type==="zone").forEach(s=>{t.set(s.id,Object.assign({},o(s.content??"default"),{ref:i.vue.ref(null),options:{zoneId:s.id,...s.options,key:s.id},name:s.content??"default"}))}),i.vue.h("div",{style:{display:"none"}},[...t.values()].map(s=>i.vue.h(s.component,{...s.options,ref:s.ref})))},link(){[...n.entries()].forEach(([r,s])=>{let a=t.get(r);if(!a)return;let l=a.ref.value.$el,c=s.value;for(;c.lastChild;)c.removeChild(c.lastChild);c.appendChild(l)})},getElementZoneId(r){var s;for(let[a,l]of[...n.entries()])if((s=l.value)!=null&&s.contains(r))return a;return null},getRef(r){let s=n.get(r);return s||(s=i.vue.ref(null),n.set(r,s)),s},deleteZoneContent(r){t.delete(r),n.delete(r)},clean(){t.clear(),n.clear()}}}var Ozt=Fzt;function Nzt(i,e,t){let n=e.ref(0),o=e.ref(0),{separatorSize:r=2,separatorDetectionMargin:s=10,separatorDetectionZIndex:a=2,resizable:l=!0}=t??{},c=e.ref(!!l),u={vue:e,core:i,zones:e.ref([]),get resizable(){return c.value},set resizable(h){c.value=h},get width(){return n.value},get height(){return o.value},get separatorSize(){return r},get separatorDetectionMargin(){return s},get separatorDetectionZIndex(){return a},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==null?void 0: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(i.layout),e.watch(this.layout,h=>{this.zones.value=[...h].filter(f=>f.type==="zone")},{immediate:!0}),{created(){u.root=this},mounted(){let{width:h,height:f}=this.$el.getBoundingClientRect();n.value=h,o.value=f,u.resizeObserver=new ResizeObserver(A=>A.forEach(p=>{let{width:g,height:m}=p.target.getBoundingClientRect();n.value=g,o.value=m})),u.resizeObserver.observe(this.$el),u.contentManager.link()},render(){return e.h("div",{class:"areas-root"},[u.contentManager.renderContent(u.layout.value),d(u.layout.value)])}}}};u.contentManager=Ozt(u);function d(h){return h.type==="zone"?UL(u,h):Lzt(u,h)}return u}var Uzt=Nzt;function Vzt(i,e=null,t=null){let n=Pzt(e),o=Uzt(n,i,t);return Object.freeze({core:n,renderer:o,destroy(){o.destroy()},swap(r,s){return this.renderer.swap(r,s)},split(r,s,a,l,c){return this.renderer.split(r,s,a,l,c)},splitLayout(r,s,a,l){return this.renderer.splitLayout(r,s,a,l)},delete(r){return this.renderer.delete(r)},registerContent(r,s){this.renderer.contentManager.registerContent(r,s)},getElementZoneId(r){return this.renderer.contentManager.getElementZoneId(r)},get layout(){return Gfe(this.core.layout)},set layout(r){this.core.layout=r,this.renderer.contentManager.clean(),this.renderer.coreLayoutSync(!0)},get component(){return this.renderer.component},get resizable(){return this.renderer.resizable},set resizable(r){this.renderer.resizable=r}})}var Hzt=Vzt;function zzt(i){return Array.isArray(i==null?void 0:i.children)?Yfe(i):Xfe(i)}function Xfe(i,e=100){return{type:"zone",ratio:e,options:typeof i=="string"?{windowName:i}:i}}function Yfe(i,e=100){return{type:"container",ratio:e,direction:i.direction,children:i.children.map((t,n)=>Array.isArray(t==null?void 0:t.children)?Yfe(t,i.ratios[n]):Xfe(t,i.ratios[n]))}}function jzt(i,e,t=!0){return i.type==="zone"?$fe(i,e,t):e1e(i,e,t)}function $fe(i,e,t=!0){var r,s;const n=e.get(i.id);if(!n)throw new Error(`[Layout parser] Local context with id ${i.id} not found`);return{windowName:((r=n.window)==null?void 0:r.name)??null,windowState:{modelIds:n.loadedModelIds,viewpoint:(t||void 0)&&n.viewer&&n.getViewpoint(),storey:(s=n.selectedStorey)==null?void 0:s.key}}}function e1e(i,e,t=!0){return{direction:i.direction,ratios:i.children.map(n=>n.ratio),children:i.children.map(n=>n.type==="zone"?$fe(n,e,t):e1e(n,e,t))}}const Gzt={props:{text:{type:String,default:""}},emits:["close"]},qzt={class:"success-modal"},Qzt={class:"success-modal__close"},Kzt={class:"success-modal__title"},Jzt={class:"success-modal__title--icon"},Wzt={class:"success-modal__text"},Zzt={class:"success-modal__button"};function Xzt(i,e,t,n,o,r){const s=k("BIMDataIconClose"),a=k("BIMDataPieSpinner"),l=k("BIMDataIconSuccess"),c=k("BIMDataButton");return S(),F("div",qzt,[b("div",Qzt,[D(a,{delay:5,onStop:e[1]||(e[1]=u=>i.$emit("close"))},{default:U(()=>[D(s,{class:"icon-close",size:"xxxs",onClick:e[0]||(e[0]=u=>i.$emit("close"))})]),_:1})]),b("div",Kzt,[b("h2",null,K(i.$t("modal.success")),1),b("span",Jzt,[D(l,{class:"fill-primary"})])]),b("div",Wzt,K(t.text||i.$t("modal.success")),1),b("div",Zzt,[D(c,{class:"bimdata-btn__fill bimdata-btn__fill--primary bimdata-btn__radius",onClick:e[2]||(e[2]=u=>i.$emit("close"))},{default:U(()=>[it(K(i.$t("modal.button")),1)]),_:1})])])}const Yzt=V(Gzt,[["render",Xzt],["__scopeId","data-v-79d3a107"]]),t1e=Symbol("modal-mixin-id"),$zt={inject:["$viewer"],data(){return{modals:[]}},computed:{notBlocking(){var i;return((i=this.modal)==null?void 0:i.blocking)===!1},modal(){return this.modals.length?this.modals[0]:null},positionning(){var e;if(!((e=this.modal)!=null&&e.positions))return;const i=this.modal.positions;return{top:i.top?`${i.top}`:"0",right:i.right?`${i.right}`:"0",bottom:i.bottom?`${i.bottom} `:"0",left:i.left?`${i.left}`:"0"}}},created(){document.addEventListener("keydown",e=>{this.notBlocking&&e.key==="Escape"&&this.clearModal()});const i=this;this.mixin={[t1e]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=i.$plugin,this.$viewer=i.$viewer)}}},methods:{pushModal(i,e={},{display:t="full",positions:n,blocking:o=!0,exclusive:r=!1}={}){r&&(this.modals=[]),this.inject$viewerRecursively(i),this.modals.push({component:cr(i),props:e,display:t,positions:n,blocking:o})},clearModal(){this.modals.shift()},clearModals(){this.modals=[]},inject$viewerRecursively(i){NL(i,this.mixin,t1e),i.components&&Object.values(i.components).forEach(e=>this.inject$viewerRecursively(e))},getModal(i){const e={success:Yzt};if(Object.keys(e).includes(i))return e[i];console.warn(`Modal name unknown : ${i}`)}}},ejt={class:"bimdata-modal-manager__content"};function tjt(i,e,t,n,o,r){const s=di("click-away");return r.modal?(S(),F("div",{key:0,class:ce(["bimdata-modal-manager",{full:r.modal.display==="full",banner:r.modal.display==="banner"}]),style:ue(r.positionning),onClick:e[0]||(e[0]=ft(a=>r.notBlocking?r.clearModal():null,["self"]))},[At((S(),F("div",ejt,[(S(),Z(xn(r.modal.component),xs(r.modal.props,{onClose:r.clearModal}),null,16,["onClose"]))])),[[s,()=>r.notBlocking?r.clearModal():null,"mousedown"]])],6)):ne("",!0)}const i1e=V($zt,[["render",tjt],["__scopeId","data-v-2c579fcd"]]),ijt={props:{plugin:{type:Object,required:!0}},setup(i){const e=mt("$viewer"),{plugin:t}=i;fn("$plugin",t),n1e(t.component,e.localContext,t)}},HL=Symbol("plugin-mixin-id");function n1e(i,e,t,n=!0){var s;if(!!((s=i.mixins)!=null&&s.some(a=>a[HL])))return;const r={[HL]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=t,this.$viewer=e.$viewer),Object.defineProperties(this,{$isOpen:{get(){return t.isOpen}},$loading:{get(){return t.loading}},$shown:{get(){return t.shown}}}),n&&(t.componentInstance=this,t.isViewer&&(e.viewer=this))},methods:{$open(...a){t.open(...a)},$close(...a){t.close(...a)},$show(){t.show()},$hide(){t.hide()}}};n&&(r.props={plugin:{type:Object,required:!0}},r.provide={pluginInstance:t},r.created=function(){e.hub.emit("plugin-created",{name:t.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-created",{name:t.name,plugin:this})},r.unmounted=function(){e.hub.emit("plugin-destroyed",{name:t.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-destroyed",{name:t.name,plugin:this})}),NL(i,r,HL),i.components&&Object.values(i.components).forEach(a=>n1e(a,e,t,!1))}function njt(i,e,t,n,o,r){return At((S(),Z(xn(t.plugin.component),{class:"plugin-component-instance-container",plugin:t.plugin},null,8,["plugin"])),[[Gt,t.plugin.shown]])}const T5=V(ijt,[["render",njt]]),ojt={components:{PluginComponentInstanceContainer:T5},props:{plugin:{type:Object,required:!0,validator(i){return i.sidePanel.width?typeof i.sidePanel.width=="number":i.sidePanel}}}};function sjt(i,e,t,n,o,r){const s=k("PluginComponentInstanceContainer");return At((S(),F("div",{class:"side-panel",style:ue(`
|
|
5522
5522
|
--side-panel-width: ${t.plugin.sidePanelWidth}px;
|
|
5523
5523
|
${t.plugin.sidePanel.position==="left"?"border-right":"border-left"}: 1px solid var(--color-silver);
|
|
5524
|
-
`)},[D(s,{plugin:t.plugin,style:{height:"100%"}},null,8,["plugin"])],4)),[[Gt,t.plugin.shown]])}const rjt=V(ojt,[["render",sjt],["__scopeId","data-v-ced3f116"]]),ajt={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}`}}},ljt=["width","height","viewBox","aria-labelledby","fill"],cjt=["innerHTML"];function ujt(i,e,t,n,o,r){return S(),F("svg",{xmlns:"http://www.w3.org/2000/svg",width:t.width,height:t.height,viewBox:r.viewBox,"aria-labelledby":t.name,fill:t.color,role:"presentation"},[b("g",{innerHTML:t.content},null,8,cjt)],8,ljt)}const djt=V(ajt,[["render",ujt]]),hjt=["src"],pjt={__name:"PluginIcon",props:{plugin:{type:Object,required:!0},isOpen:{type:Boolean,required:!0}},setup(i){const e=i,t=on(null);return qa(()=>{e.isOpen&&e.plugin.button.iconOpen?t.value=e.plugin.button.iconOpen:e.plugin.button.icon?t.value=e.plugin.button.icon:t.value={component:"BIMDataIcon",options:{name:"default",size:"m"}}}),(n,o)=>t.value.imgUri?(S(),F("img",{key:0,src:t.value.imgUri,style:{"max-width":"40px","max-height":"40px"}},null,8,hjt)):t.value.svgPath?(S(),Z(djt,xs({key:1},t.value.options,{content:t.value.svgPath}),null,16,["content"])):t.value.component?(S(),Z(xn(t.value.component),_r(xs({key:2},t.value.options)),null,16)):ne("",!0)}},fjt={key:0,class:"tools-menu__info"},Ajt={class:"window"},mjt={class:"plugins-as-button__content"},gjt={class:"plugins-as-button__panel__header"},vjt={class:"panel__content"},yjt=V({__name:"PluginAsButton",props:{plugin:{type:Object,required:!0},active:{type:Boolean,required:!0},position:{type:String,required:!0,validator(i){return["right","left"].includes(i)}}},emits:["focus"],setup(i,{emit:e}){const t=e,n=mt("$viewer"),{localContext:o}=n,r=i,{active:s}=cv(r),a=r.plugin,l=$e(()=>a.isOpen),c=$e(()=>a.buttonText),u=$e(()=>r.active?2:1);function d(){l.value&&t("focus")}function h(){l.value?a.close():a.open()}function f(){vn(()=>{l.value&&!a.button.keepOpen&&!a.loading&&a.close()})}return(A,p)=>{const g=k("BIMDataSpinner"),m=k("BIMDataButton"),w=k("BIMDataTooltip"),y=di("click-away");return At((S(),F("div",{class:"plugins-as-button",style:ue({zIndex:u.value,position:wt(a).button.content==="simple"?"relative":null})},[b("div",{class:"tools-menu m-b-12",onMouseenter:d},[D(w,{ref:"tooltip",class:ce({open:l.value}),text:wt(a).button.tooltip?A.$t(wt(a).button.tooltip):wt(a).name,position:i.position==="left"?"right":"left",disabled:l.value},{default:U(()=>[D(m,{width:"45px",height:"45px",fill:"",icon:"",color:"default",class:ce({focus:wt(s)}),"data-test":`plugin-${wt(a).name}`,onClick:p[0]||(p[0]=v=>h())},{default:U(()=>[c.value?(S(),F("span",fjt,K(wt(XZe)(c.value,wt(a).button.truncateSize||4)),1)):ne("",!0),wt(a).loading?(S(),Z(g,{key:1})):(S(),Z(pjt,{key:2,plugin:wt(a),"is-open":l.value},null,8,["plugin","is-open"]))]),_:1},8,["class","data-test"])]),_:1},8,["class","text","position","disabled"])],32),b("div",Ajt,[D(mi,{name:`slide-fade-${i.position}`},{default:U(()=>[At(b("span",mjt,[wt(a).button.content==="panel"?(S(),F("div",{key:0,class:ce(["plugins-as-button__submenu",`plugins-as-button__submenu--${i.position==="right"?"left":"right"}__panel`])},[b("div",gjt,K(wt(a).button.tooltip?A.$t(wt(a).button.tooltip):wt(a).name),1),b("div",vjt,[D(T5,{plugin:wt(a)},null,8,["plugin"])])],2)):(S(),Z(T5,{key:1,class:ce(["plugins-as-button__submenu",`plugins-as-button__submenu--${i.position==="right"?"left":"right"}__${wt(a).button.content||"free"}`]),plugin:wt(a)},null,8,["class","plugin"]))],512),[[Gt,l.value]])]),_:1},8,["name"])])],4)),[[y,f]])}}},[["__scopeId","data-v-72f2ce01"]]),wjt=V({__name:"SideColumn",props:{plugins:{type:Array,default:()=>[]},position:{type:String,required:!0,validator(i){return["right","left"].includes(i)}}},setup(i){const e=i,t=on(null);return(n,o)=>(S(),F("div",{class:ce(["side-column",`side-column--${e.position}`])},[(S(!0),F(ct,null,Bt(e.plugins,r=>(S(),F(ct,{key:r.name},[r.button.content==="none"?(S(),Z(T5,{key:0,plugin:r,onMouseenter:s=>t.value=r},null,8,["plugin","onMouseenter"])):At((S(),Z(yjt,{key:1,plugin:r,position:e.position,active:t.value===r,onFocus:s=>t.value=r},null,8,["plugin","position","active","onFocus"])),[[Gt,r.shown]])],64))),128))],2))}},[["__scopeId","data-v-f11ec0c8"]]),Cjt={},bjt={width:"23",height:"22",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function xjt(i,e){return S(),F("svg",bjt,e[0]||(e[0]=[b("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),b("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),b("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),b("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 Mjt=V(Cjt,[["render",xjt]]),Ejt={props:{color:{type:String,default:"currentColor"},size:{type:Number,default:1}}},Bjt=["width","height"],Ijt=["fill"];function Sjt(i,e,t,n,o,r){return S(),F("svg",{width:23*t.size,height:28*t.size,viewBox:"0 0 23 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[b("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:t.color},null,8,Ijt)],8,Bjt)}const o1e=V(Ejt,[["render",Sjt]]),Pjt="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=",zL=document.createElement("img");zL.src=Pjt,zL.style.cursor="grabbing";function Tjt({dataTransferType:i="areas_zone-id",getData:e=()=>null,onDropCB:t=()=>{}}={}){const n=Ae(!1),o=Ae(!1);function r(d){d.dataTransfer.types.includes(i)&&(d.preventDefault(),d.dataTransfer.dropEffect="move")}function s(){o.value=!1}function a(d){n.value=!0,d.dataTransfer.setData(i,e()),d.dataTransfer.effectAllowed="move",d.dataTransfer.setDragImage(zL,45,45)}function l(){n.value=!1}function c(d){o.value=!1;const h=parseInt(d.dataTransfer.getData(i),10);t==null||t(h)}function u(d){d.dataTransfer.types.includes(i)&&(o.value=!0)}return{dragging:n,dragover:o,onDragOver:r,onDragLeave:s,onDragStart:a,onDragEnd:l,onDrop:c,onDragEnter:u}}const kjt=["draggable"],Rjt={class:"layout-settings__header"},Djt={key:0,class:"layout-settings__swap"},_jt={key:1,class:"layout-settings__split"},Ljt={class:"layout-settings__split__text"},Fjt={class:"layout-settings__split__text"},Ojt={key:2,class:"layout-settings__buttons"},Njt=V({__name:"LayoutSettings",setup(i){const e=mt("$viewer"),{localContext:t}=e,n=$e(()=>t.window),o=$e(()=>e.globalContext.localContexts.length>1),r=$e(()=>e.layout.settings.swap),s=$e(()=>e.layout.settings.full);function a(){e.layout.settings.swap=!e.layout.settings.swap}function l(){t.loadWindow(null),e.layout.settings.edit=!1}function c(){t.close()}function u(M="row"){e.globalContext.open({localContextId:t.id,ratio:50,direction:M})}function d(){u(),e.layout.settings.edit=!1}function h(){u("column"),e.layout.settings.edit=!1}gt(()=>e.globalContext.localContexts.length,M=>{var I;M===1&&e.layout.settings.edit&&((I=e.globalContext.localContexts[0].window)==null?void 0:I.header)===!1&&(e.layout.settings.edit=!1)});const{dragging:f,dragover:A,onDragOver:p,onDragLeave:g,onDragStart:m,onDragEnd:w,onDrop:y,onDragEnter:v}=Tjt({getData:()=>String(t.id),onDropCB:M=>{Number.isNaN(M)||e.globalContext.swap(M,t.id)}}),x=$e(()=>e.layout.settings.swap);return(M,I)=>{const E=k("BIMDataIconWindowRight"),B=k("BIMDataButton"),T=k("BIMDataIconWindowBottom"),P=k("BIMDataIconDelete"),R=k("BIMDataTooltip");return S(),F("div",{class:ce(["layout-settings",{"layout-settings--swap":r.value,"layout-settings--dragging":wt(f),"layout-settings--dragover":wt(A)}]),draggable:x.value,onDragover:I[0]||(I[0]=(...L)=>wt(p)&&wt(p)(...L)),onDragleave:I[1]||(I[1]=(...L)=>wt(g)&&wt(g)(...L)),onDragenter:I[2]||(I[2]=(...L)=>wt(v)&&wt(v)(...L)),onDragstart:I[3]||(I[3]=ft((...L)=>wt(m)&&wt(m)(...L),["self"])),onDrop:I[4]||(I[4]=(...L)=>wt(y)&&wt(y)(...L)),onDragend:I[5]||(I[5]=(...L)=>wt(w)&&wt(w)(...L))},[b("div",Rjt,K(M.$t(r.value?"window-manager.swap":"window-manager.description"))+". ",1),r.value?(S(),F("div",Djt,[D(o1e,{color:"#ffffff",size:2})])):(S(),F("div",_jt,[D(B,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:d},{default:U(()=>[D(E),b("span",Ljt,K(M.$t("window-manager.vertical")),1)]),_:1}),D(B,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:h},{default:U(()=>[D(T),b("span",Fjt,K(M.$t("window-manager.horizontal")),1)]),_:1})])),s.value?(S(),F("div",Ojt,[o.value?(S(),Z(R,{key:0,text:M.$t("global.delete"),position:"left"},{default:U(()=>[D(B,{disabled:r.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:c},{default:U(()=>[D(P,{fill:"",color:"high"})]),_:1},8,["disabled"])]),_:1},8,["text"])):ne("",!0),o.value?(S(),Z(R,{key:1,text:M.$t("window-manager.swap_tooltip"),position:"left"},{default:U(()=>[D(B,{fill:"",square:"",icon:"",color:r.value?"secondary":"default",width:"50px",height:"50px",onClick:a},{default:U(()=>[D(o1e)]),_:1},8,["color"])]),_:1},8,["text"])):ne("",!0),n.value?(S(),Z(R,{key:2,text:M.$t("window-manager.change"),position:"left"},{default:U(()=>[D(B,{disabled:r.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:l},{default:U(()=>[D(Mjt)]),_:1},8,["disabled"])]),_:1},8,["text"])):ne("",!0)])):ne("",!0)],42,kjt)}}},[["__scopeId","data-v-d37dfd4d"]]);function Ujt(i,e=()=>{}){const t=Ae(0),n=Ae(0),o=Ae(0),r=Ae(0),s=l=>{l.forEach(c=>{const{width:u,height:d,x:h,y:f}=c.target.getBoundingClientRect();t.value=u,n.value=d,o.value=h,r.value=f,e==null||e({width:t.value,height:n.value,x:o.value,y:r.value})})},a=new ResizeObserver(s);return Bi(()=>{a.observe(i.value)}),pn(()=>a.disconnect()),{width:t,height:n,x:o,y:r}}class Vjt extends SH{constructor(e){super(e);const{width:t,height:n,x:o,y:r}=Ujt(this.templateRef,s=>this.hub.emit("context-resize",s));this._resolution=Ae(1),this._width=t,this._height=n,this._x=o,this._y=r}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 Hjt extends Vjt{constructor(e){super(e),this.viewer=null,this._annotationMode=Ae(!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,t){if(!this.viewer)throw new Error("[localContext.setViewpoint] Error: no viewer registered in this localContext.");this.viewer.setViewpoint(e,t)}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 vn()}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(([t])=>!e.includes(t)).forEach(([,t])=>t.$hide()),this.viewer.hideUI(),await vn()}}class zjt extends Hjt{constructor(e){super(e),this.modelTypes=null,this.multiModel=!0,this._loadedModels=on([]),this._loadingModelIds=Ae([]),this._selectedStorey=on(null),this._shownPlans=on([]),this._loadedModelIds=$e(()=>this._loadedModels.value.map(t=>t.id)),this._automaticFirstModelsLoading=!1,this._globalContextSubscription=null,pn(()=>{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,t={}){var a;const n=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 o=[],r=[];for(const l of e)this.loadedModelIds.includes(l)||(n.state.modelsMap.has(l)?o.push(n.state.modelsMap.get(l)):r.push(l));o.push(...await n.state.loadModels(r)),this._loadingModelIds.value=this.loadingModelIds.filter(l=>!e.includes(l));const s=o.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((a=this.viewer)==null?void 0:a.loadModels(s,t)),this.hub.emit("models-loaded",{models:s}),n.globalContext.hub.emit("models-loaded",{models:s,emitter:this})),t!=null&&t.viewpoint&&this.viewer&&this.setViewpoint(t.viewpoint),t!=null&&t.storey){const l=s.flatMap(c=>c.storeys).find(c=>c.key===t.storey);l&&this.selectStorey(l)}return s}unloadModels(e){var r;const{loadedModels:t,$viewer:n}=this;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] unloadModels requires an array of ids.");const o=e.map(s=>n.state.modelsMap.get(s)).filter(Boolean);return o.length===0?!1:(this._loadedModels.value=t.filter(s=>!o.includes(s)),(r=this.viewer)==null||r.unloadModels(o),this.selectedStorey&&o.some(s=>s.storeys.some(a=>a.key===this.selectedStorey.key))&&this.selectStorey(null),this.hub.emit("models-unloaded",{models:o}),n.globalContext.hub.emit("models-unloaded",{models:o,emitter:this}),o)}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:t,$viewer:n}=this,o=n.globalContext.loadedModels.filter(a=>{var l;return((l=this.modelTypes)==null?void 0:l.includes(a.type))??!0});o.length>0&&this.loadModels(o.map(a=>a.id)),n.globalContext.hub.off(this._globalContextSubscription);const r=a=>{a=a.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0}),a.length>0&&e.value.length===0&&t.value.length===0&&this.loadModels(a.map(l=>l.id))};await vn();let s=!0;this._globalContextSubscription=n.globalContext.hub.on("models-loaded",({models:a,emitter:l})=>{!s&&l===this||r(a)},{getLastEvent:!0}),s=!1}selectStorey(e,t=!0){this._selectedStorey.value=e,this.shownPlans.length>0&&this.shownPlans.forEach(n=>this.hidePlan(n)),t&&(e==null?void 0:e.plans.length)>0&&e.plans.forEach(n=>this.showPlan(n)),this.hub.emit("storey-selected",{storey:e})}get shownPlans(){return this._shownPlans.value}showPlan(e){return this._shownPlans.value.some(t=>t.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(t=>t.key===e.key)?(this._shownPlans.value=this._shownPlans.value.filter(t=>t.key!==e.key),this.hub.emit("plan-hidden",{plan:e}),!0):!1}}class jjt extends zjt{constructor(e,t){super(e),this.id=t,this._window=on(null),this.pluginInstances=new Map,pn(()=>{this.unloadWindow()})}get $viewer(){const e=this;return new Proxy(this._$viewer,{get(t,n,o){return n==="localContext"?e:Reflect.get(t,n,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,t=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:t,localContext:this}),!0}async loadWindow(e=null,t=null){const n=!!this.window;if(this.unloadWindow(),e===null)return null;if(n&&await vn(),!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:r,viewpoint:s,storey:a}=t??{};return this.window.noModel!==!0&&((r==null?void 0:r.length)>0?(this.automaticFirstModelsLoading=!1,this.loadModels(r,{viewpoint:s,storey:a})):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 Gjt={name:"WindowContainer",components:{PluginComponentInstanceContainer:T5,LayoutSettings:Njt,SidePanel:rjt,SideColumn:wjt,ModalManager:i1e},inject:["$viewer"],props:{windowName:{type:String,default:null},windowState:{type:Object,default:null},zoneId:{type:Number,required:!0}},setup(i){const e=mt("$viewer"),{globalContext:t}=e,n=new jjt(e,i.zoneId);fn("$viewer",n.$viewer);const{templateRef:o}=n,r=()=>{o.value&&(o.value.scrollTop=0,o.value.scrollLeft=0)};Bi(()=>{o.value.addEventListener("scroll",r,{passive:!0})});const s=()=>{t.activeLocalContext=n},a=()=>{t.activeLocalContext===n&&(t.activeLocalContext=null)},l=$e(()=>{var g;const u=[];let d=null,h=null;const f=[],A=[],p=[];return n.window?p.push(...n.pluginInstances.values()):((g=e.windowManager.defaultWindow)==null?void 0:g.plugins.length)>0&&p.push(...e.windowManager.defaultWindow.plugins.map(m=>e.pluginManager.getPluginInstance(m,this)).filter(Boolean).sort(({button:{stance:m=0}={}},{button:{stance:w=0}={}})=>m-w)),p.forEach(m=>{!m.button&&!m.sidePanel?m.isViewer?u.unshift(m):u.push(m):m.sidePanel?m.sidePanel.position==="left"?(d&&console.warn(`[BIMDataViewer - WindowContainer] Window ${n.window.name}, Multiple left side panels are not supported. Only the last one will be displayed.`),d=m):m.sidePanel.position==="right"&&(h&&console.warn(`[BIMDataViewer - WindowContainer] Window ${n.window.name}, Multiple right side panels are not supported. Only the last one will be displayed.`),h=m):m.button.position==="left"?f.push(m):m.button.position==="right"&&A.push(m)}),u.reverse(),{free:u,leftSidePanel:d,rightSidePanel:h,leftButtonColumn:f,rightButtonColumn:A}});n.loadWindow(i.windowName,i.windowState);const c=$e(()=>{const u=l.value.leftSidePanel,d=u!=null&&u.shown?u.sidePanel.width:0,h=l.value.rightSidePanel,f=h!=null&&h.shown?h.sidePanel.width:0;return n.width-d-f});return{onMouseEnter:s,onMouseLeave:a,templateRef:o,modalManagerTemplateRef:n.modalManagerTemplateRef,windowPlugins:l,layoutSettingsDisplayed:$e(()=>e.layout.settings.edit),spinner:$e(()=>n.spinner),loading:$e(()=>n.loading),width:$e(()=>n.width),height:$e(()=>n.height),resolution:$e(()=>n.resolution),localContext:n,centerWidth:c}},created(){this.$viewer.windowManager.windowContainers.push(this)},unmounted(){const i=this.$viewer.windowManager.windowContainers.indexOf(this);i!==-1&&this.$viewer.windowManager.windowContainers.splice(i,1)}},qjt={class:"window-container__content"},Qjt={class:"window-container__content__center"},Kjt={key:0,class:"bimdata-context-loading-overlay",style:{"z-index":"2"}},Jjt={key:1,class:"window-container__layout-settings",style:{"z-index":"5"}};function Wjt(i,e,t,n,o,r){const s=k("ModalManager"),a=k("SidePanel"),l=k("PluginComponentInstanceContainer"),c=k("SideColumn"),u=k("BIMDataSpinner"),d=k("LayoutSettings");return S(),F("div",{ref:"templateRef",class:"window-container",style:ue(`
|
|
5524
|
+
`)},[D(s,{plugin:t.plugin,style:{height:"100%"}},null,8,["plugin"])],4)),[[Gt,t.plugin.shown]])}const rjt=V(ojt,[["render",sjt],["__scopeId","data-v-ced3f116"]]),ajt={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}`}}},ljt=["width","height","viewBox","aria-labelledby","fill"],cjt=["innerHTML"];function ujt(i,e,t,n,o,r){return S(),F("svg",{xmlns:"http://www.w3.org/2000/svg",width:t.width,height:t.height,viewBox:r.viewBox,"aria-labelledby":t.name,fill:t.color,role:"presentation"},[b("g",{innerHTML:t.content},null,8,cjt)],8,ljt)}const djt=V(ajt,[["render",ujt]]),hjt=["src"],pjt={__name:"PluginIcon",props:{plugin:{type:Object,required:!0},isOpen:{type:Boolean,required:!0}},setup(i){const e=i,t=on(null);return qa(()=>{e.isOpen&&e.plugin.button.iconOpen?t.value=e.plugin.button.iconOpen:e.plugin.button.icon?t.value=e.plugin.button.icon:t.value={component:"BIMDataIcon",options:{name:"default",size:"m"}}}),(n,o)=>t.value.imgUri?(S(),F("img",{key:0,src:t.value.imgUri,style:{"max-width":"40px","max-height":"40px"}},null,8,hjt)):t.value.svgPath?(S(),Z(djt,xs({key:1},t.value.options,{content:t.value.svgPath}),null,16,["content"])):t.value.component?(S(),Z(xn(t.value.component),_r(xs({key:2},t.value.options)),null,16)):ne("",!0)}},fjt={key:0,class:"tools-menu__info"},Ajt={class:"window"},mjt={class:"plugins-as-button__content"},gjt={class:"plugins-as-button__panel__header"},vjt={class:"panel__content"},yjt=V({__name:"PluginAsButton",props:{plugin:{type:Object,required:!0},active:{type:Boolean,required:!0},position:{type:String,required:!0,validator(i){return["right","left"].includes(i)}}},emits:["focus"],setup(i,{emit:e}){const t=e,n=mt("$viewer"),{localContext:o}=n,r=i,{active:s}=cv(r),a=r.plugin,l=$e(()=>a.isOpen),c=$e(()=>a.buttonText),u=$e(()=>r.active?2:1);function d(){l.value&&t("focus")}function h(){l.value?a.close():a.open()}function f(){vn(()=>{l.value&&!a.button.keepOpen&&!a.loading&&a.close()})}return(A,p)=>{const g=k("BIMDataSpinner"),m=k("BIMDataButton"),w=k("BIMDataTooltip"),y=di("click-away");return At((S(),F("div",{class:"plugins-as-button",style:ue({zIndex:u.value,position:wt(a).button.content==="simple"?"relative":null})},[b("div",{class:"tools-menu m-b-12",onMouseenter:d},[D(w,{ref:"tooltip",class:ce({open:l.value}),text:wt(a).button.tooltip?A.$t(wt(a).button.tooltip):wt(a).name,position:i.position==="left"?"right":"left",disabled:l.value},{default:U(()=>[D(m,{width:"45px",height:"45px",fill:"",icon:"",color:"default",class:ce({focus:wt(s)}),"data-test":`plugin-${wt(a).name}`,onClick:p[0]||(p[0]=v=>h())},{default:U(()=>[c.value?(S(),F("span",fjt,K(wt(XZe)(c.value,wt(a).button.truncateSize||4)),1)):ne("",!0),wt(a).loading?(S(),Z(g,{key:1})):(S(),Z(pjt,{key:2,plugin:wt(a),"is-open":l.value},null,8,["plugin","is-open"]))]),_:1},8,["class","data-test"])]),_:1},8,["class","text","position","disabled"])],32),b("div",Ajt,[D(mi,{name:`slide-fade-${i.position}`},{default:U(()=>[At(b("span",mjt,[wt(a).button.content==="panel"?(S(),F("div",{key:0,class:ce(["plugins-as-button__submenu",`plugins-as-button__submenu--${i.position==="right"?"left":"right"}__panel`])},[b("div",gjt,K(wt(a).button.tooltip?A.$t(wt(a).button.tooltip):wt(a).name),1),b("div",vjt,[D(T5,{plugin:wt(a)},null,8,["plugin"])])],2)):(S(),Z(T5,{key:1,class:ce(["plugins-as-button__submenu",`plugins-as-button__submenu--${i.position==="right"?"left":"right"}__${wt(a).button.content||"free"}`]),plugin:wt(a)},null,8,["class","plugin"]))],512),[[Gt,l.value]])]),_:1},8,["name"])])],4)),[[y,f]])}}},[["__scopeId","data-v-72f2ce01"]]),wjt=V({__name:"SideColumn",props:{plugins:{type:Array,default:()=>[]},position:{type:String,required:!0,validator(i){return["right","left"].includes(i)}}},setup(i){const e=i,t=on(null);return(n,o)=>(S(),F("div",{class:ce(["side-column",`side-column--${e.position}`])},[(S(!0),F(ct,null,Bt(e.plugins,r=>(S(),F(ct,{key:r.name},[r.button.content==="none"?(S(),Z(T5,{key:0,plugin:r,onMouseenter:s=>t.value=r},null,8,["plugin","onMouseenter"])):At((S(),Z(yjt,{key:1,plugin:r,position:e.position,active:t.value===r,onFocus:s=>t.value=r},null,8,["plugin","position","active","onFocus"])),[[Gt,r.shown]])],64))),128))],2))}},[["__scopeId","data-v-f11ec0c8"]]),Cjt={},bjt={width:"23",height:"22",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function xjt(i,e){return S(),F("svg",bjt,e[0]||(e[0]=[b("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),b("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),b("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),b("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 Mjt=V(Cjt,[["render",xjt]]),Ejt={props:{color:{type:String,default:"currentColor"},size:{type:Number,default:1}}},Bjt=["width","height"],Ijt=["fill"];function Sjt(i,e,t,n,o,r){return S(),F("svg",{width:23*t.size,height:28*t.size,viewBox:"0 0 23 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[b("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:t.color},null,8,Ijt)],8,Bjt)}const o1e=V(Ejt,[["render",Sjt]]),Pjt="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=",zL=document.createElement("img");zL.src=Pjt,zL.style.cursor="grabbing";function Tjt({dataTransferType:i="areas_zone-id",getData:e=()=>null,onDropCB:t=()=>{}}={}){const n=Ae(!1),o=Ae(!1);function r(d){d.dataTransfer.types.includes(i)&&(d.preventDefault(),d.dataTransfer.dropEffect="move")}function s(){o.value=!1}function a(d){n.value=!0,d.dataTransfer.setData(i,e()),d.dataTransfer.effectAllowed="move",d.dataTransfer.setDragImage(zL,45,45)}function l(){n.value=!1}function c(d){o.value=!1;const h=parseInt(d.dataTransfer.getData(i),10);t==null||t(h)}function u(d){d.dataTransfer.types.includes(i)&&(o.value=!0)}return{dragging:n,dragover:o,onDragOver:r,onDragLeave:s,onDragStart:a,onDragEnd:l,onDrop:c,onDragEnter:u}}const kjt=["draggable"],Rjt={class:"layout-settings__header"},Djt={key:0,class:"layout-settings__swap"},_jt={key:1,class:"layout-settings__split"},Ljt={class:"layout-settings__split__text"},Fjt={class:"layout-settings__split__text"},Ojt={key:2,class:"layout-settings__buttons"},Njt=V({__name:"LayoutSettings",setup(i){const e=mt("$viewer"),{localContext:t}=e,n=$e(()=>t.window),o=$e(()=>e.globalContext.localContexts.length>1),r=$e(()=>e.layout.settings.swap),s=$e(()=>e.layout.settings.full);function a(){e.layout.settings.swap=!e.layout.settings.swap}function l(){t.loadWindow(null),e.layout.settings.edit=!1}function c(){t.close()}function u(M="row"){e.globalContext.open({localContextId:t.id,ratio:50,direction:M})}function d(){u(),e.layout.settings.edit=!1}function h(){u("column"),e.layout.settings.edit=!1}gt(()=>e.globalContext.localContexts.length,M=>{var I;M===1&&e.layout.settings.edit&&((I=e.globalContext.localContexts[0].window)==null?void 0:I.header)===!1&&(e.layout.settings.edit=!1)});const{dragging:f,dragover:A,onDragOver:p,onDragLeave:g,onDragStart:m,onDragEnd:w,onDrop:y,onDragEnter:v}=Tjt({getData:()=>String(t.id),onDropCB:M=>{Number.isNaN(M)||e.globalContext.swap(M,t.id)}}),x=$e(()=>e.layout.settings.swap);return(M,I)=>{const E=k("BIMDataIconWindowRight"),B=k("BIMDataButton"),T=k("BIMDataIconWindowBottom"),P=k("BIMDataIconDelete"),R=k("BIMDataTooltip");return S(),F("div",{class:ce(["layout-settings",{"layout-settings--swap":r.value,"layout-settings--dragging":wt(f),"layout-settings--dragover":wt(A)}]),draggable:x.value,onDragover:I[0]||(I[0]=(...L)=>wt(p)&&wt(p)(...L)),onDragleave:I[1]||(I[1]=(...L)=>wt(g)&&wt(g)(...L)),onDragenter:I[2]||(I[2]=(...L)=>wt(v)&&wt(v)(...L)),onDragstart:I[3]||(I[3]=ft((...L)=>wt(m)&&wt(m)(...L),["self"])),onDrop:I[4]||(I[4]=(...L)=>wt(y)&&wt(y)(...L)),onDragend:I[5]||(I[5]=(...L)=>wt(w)&&wt(w)(...L))},[b("div",Rjt,K(M.$t(r.value?"window-manager.swap":"window-manager.description"))+". ",1),r.value?(S(),F("div",Djt,[D(o1e,{color:"#ffffff",size:2})])):(S(),F("div",_jt,[D(B,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:d},{default:U(()=>[D(E),b("span",Ljt,K(M.$t("window-manager.vertical")),1)]),_:1}),D(B,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:h},{default:U(()=>[D(T),b("span",Fjt,K(M.$t("window-manager.horizontal")),1)]),_:1})])),s.value?(S(),F("div",Ojt,[o.value?(S(),Z(R,{key:0,text:M.$t("global.delete"),position:"left"},{default:U(()=>[D(B,{disabled:r.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:c},{default:U(()=>[D(P,{fill:"",color:"high"})]),_:1},8,["disabled"])]),_:1},8,["text"])):ne("",!0),o.value?(S(),Z(R,{key:1,text:M.$t("window-manager.swap_tooltip"),position:"left"},{default:U(()=>[D(B,{fill:"",square:"",icon:"",color:r.value?"secondary":"default",width:"50px",height:"50px",onClick:a},{default:U(()=>[D(o1e)]),_:1},8,["color"])]),_:1},8,["text"])):ne("",!0),n.value?(S(),Z(R,{key:2,text:M.$t("window-manager.change"),position:"left"},{default:U(()=>[D(B,{disabled:r.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:l},{default:U(()=>[D(Mjt)]),_:1},8,["disabled"])]),_:1},8,["text"])):ne("",!0)])):ne("",!0)],42,kjt)}}},[["__scopeId","data-v-d37dfd4d"]]);function Ujt(i,e=()=>{}){const t=Ae(0),n=Ae(0),o=Ae(0),r=Ae(0),s=l=>{l.forEach(c=>{const{width:u,height:d,x:h,y:f}=c.target.getBoundingClientRect();t.value=u,n.value=d,o.value=h,r.value=f,e==null||e({width:t.value,height:n.value,x:o.value,y:r.value})})},a=new ResizeObserver(s);return Bi(()=>{a.observe(i.value)}),pn(()=>a.disconnect()),{width:t,height:n,x:o,y:r}}class Vjt extends SH{constructor(e){super(e);const{width:t,height:n,x:o,y:r}=Ujt(this.templateRef,s=>this.hub.emit("context-resize",s));this._resolution=Ae(1),this._width=t,this._height=n,this._x=o,this._y=r}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 Hjt extends Vjt{constructor(e){super(e),this.viewer=null,this._annotationMode=Ae(!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,t){if(!this.viewer)throw new Error("[localContext.setViewpoint] Error: no viewer registered in this localContext.");this.viewer.setViewpoint(e,t)}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 vn()}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(([t])=>!e.includes(t)).forEach(([,t])=>t.$hide()),this.viewer.hideUI(),await vn()}}class zjt extends Hjt{constructor(e){super(e),this.modelTypes=null,this.multiModel=!0,this._loadedModels=on([]),this._loadingModelIds=Ae([]),this._selectedStorey=on(null),this._shownPlans=on([]),this._loadedModelIds=$e(()=>this._loadedModels.value.map(t=>t.id)),this._automaticFirstModelsLoading=!1,this._globalContextSubscription=null,pn(()=>{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,t={}){var a;const n=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 o=[],r=[];for(const l of e)this.loadedModelIds.includes(l)||(n.state.modelsMap.has(l)?o.push(n.state.modelsMap.get(l)):r.push(l));o.push(...await n.state.loadModels(r)),this._loadingModelIds.value=this.loadingModelIds.filter(l=>!e.includes(l));const s=o.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((a=this.viewer)==null?void 0:a.loadModels(s,t)),this.hub.emit("models-loaded",{models:s}),n.globalContext.hub.emit("models-loaded",{models:s,emitter:this})),t!=null&&t.viewpoint&&this.viewer&&this.setViewpoint(t.viewpoint),t!=null&&t.storey){const l=s.flatMap(c=>c.storeys).find(c=>c.key===t.storey);l&&this.selectStorey(l)}return s}unloadModels(e){var r;const{loadedModels:t,$viewer:n}=this;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] unloadModels requires an array of ids.");const o=e.map(s=>n.state.modelsMap.get(s)).filter(Boolean);return o.length===0?!1:(this._loadedModels.value=t.filter(s=>!o.includes(s)),(r=this.viewer)==null||r.unloadModels(o),this.selectedStorey&&o.some(s=>s.storeys.some(a=>a.key===this.selectedStorey.key))&&this.selectStorey(null),this.hub.emit("models-unloaded",{models:o}),n.globalContext.hub.emit("models-unloaded",{models:o,emitter:this}),o)}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:t,$viewer:n}=this,o=n.globalContext.loadedModels.filter(a=>{var l;return((l=this.modelTypes)==null?void 0:l.includes(a.type))??!0});o.length>0&&this.loadModels(o.map(a=>a.id)),n.globalContext.hub.off(this._globalContextSubscription);const r=a=>{a=a.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0}),a.length>0&&e.value.length===0&&t.value.length===0&&this.loadModels(a.map(l=>l.id))};await vn();let s=!0;this._globalContextSubscription=n.globalContext.hub.on("models-loaded",({models:a,emitter:l})=>{!s&&l===this||r(a)},{getLastEvent:!0}),s=!1}selectStorey(e,t=!0){this._selectedStorey.value=e,this.shownPlans.length>0&&this.shownPlans.forEach(n=>this.hidePlan(n)),t&&(e==null?void 0:e.plans.length)>0&&e.plans.forEach(n=>this.showPlan(n)),this.hub.emit("storey-selected",{storey:e})}get shownPlans(){return this._shownPlans.value}showPlan(e){return this._shownPlans.value.some(t=>t.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(t=>t.key===e.key)?(this._shownPlans.value=this._shownPlans.value.filter(t=>t.key!==e.key),this.hub.emit("plan-hidden",{plan:e}),!0):!1}}class jjt extends zjt{constructor(e,t){super(e),this.id=t,this._window=on(null),this.pluginInstances=new Map,pn(()=>{this.unloadWindow()})}get $viewer(){const e=this;return new Proxy(this._$viewer,{get(t,n,o){return n==="localContext"?e:Reflect.get(t,n,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,t=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:t,localContext:this}),!0}async loadWindow(e=null,t=null){const n=!!this.window;if(this.unloadWindow(),e===null)return null;if(n&&await vn(),!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:r,viewpoint:s,storey:a}=t??{};return this.window.noModel!==!0&&((r==null?void 0:r.length)>0?(this.automaticFirstModelsLoading=!1,this.loadModels(r,{viewpoint:s,storey:a})):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 Gjt={name:"WindowContainer",components:{PluginComponentInstanceContainer:T5,LayoutSettings:Njt,SidePanel:rjt,SideColumn:wjt,ModalManager:i1e},inject:["$viewer"],props:{windowName:{type:String,default:null},windowState:{type:Object,default:null},zoneId:{type:Number,required:!0}},setup(i){const e=mt("$viewer"),{globalContext:t}=e,n=new jjt(e,i.zoneId);fn("$viewer",n.$viewer);const{templateRef:o}=n,r=()=>{o.value&&(o.value.scrollTop=0,o.value.scrollLeft=0)};Bi(()=>{o.value.addEventListener("scroll",r,{passive:!0})});const s=()=>{t.activeLocalContext=n},a=()=>{t.activeLocalContext===n&&(t.activeLocalContext=null)},l=$e(()=>{var g;const u=[];let d=null,h=null;const f=[],A=[],p=[];return n.window?p.push(...n.pluginInstances.values()):((g=e.windowManager.defaultWindow)==null?void 0:g.plugins.length)>0&&p.push(...e.windowManager.defaultWindow.plugins.map(m=>e.pluginManager.getPluginInstance(m,this)).filter(Boolean).sort(({button:{stance:m=0}={}},{button:{stance:w=0}={}})=>m-w)),p.forEach(m=>{!m.button&&!m.sidePanel?m.isViewer?u.unshift(m):u.push(m):m.sidePanel?m.sidePanel.position==="left"?(d&&console.warn(`[BIMDataViewer - WindowContainer] Window ${n.window.name}, Multiple left side panels are not supported. Only the last one will be displayed.`),d=m):m.sidePanel.position==="right"&&(h&&console.warn(`[BIMDataViewer - WindowContainer] Window ${n.window.name}, Multiple right side panels are not supported. Only the last one will be displayed.`),h=m):m.button.position==="left"?f.push(m):m.button.position==="right"&&A.push(m)}),{free:u,leftSidePanel:d,rightSidePanel:h,leftButtonColumn:f,rightButtonColumn:A}});n.loadWindow(i.windowName,i.windowState);const c=$e(()=>{const u=l.value.leftSidePanel,d=u!=null&&u.shown?u.sidePanel.width:0,h=l.value.rightSidePanel,f=h!=null&&h.shown?h.sidePanel.width:0;return n.width-d-f});return{onMouseEnter:s,onMouseLeave:a,templateRef:o,modalManagerTemplateRef:n.modalManagerTemplateRef,windowPlugins:l,layoutSettingsDisplayed:$e(()=>e.layout.settings.edit),spinner:$e(()=>n.spinner),loading:$e(()=>n.loading),width:$e(()=>n.width),height:$e(()=>n.height),resolution:$e(()=>n.resolution),localContext:n,centerWidth:c}},created(){this.$viewer.windowManager.windowContainers.push(this)},unmounted(){const i=this.$viewer.windowManager.windowContainers.indexOf(this);i!==-1&&this.$viewer.windowManager.windowContainers.splice(i,1)}},qjt={class:"window-container__content"},Qjt={class:"window-container__content__center"},Kjt={key:0,class:"bimdata-context-loading-overlay",style:{"z-index":"2"}},Jjt={key:1,class:"window-container__layout-settings",style:{"z-index":"5"}};function Wjt(i,e,t,n,o,r){const s=k("ModalManager"),a=k("SidePanel"),l=k("PluginComponentInstanceContainer"),c=k("SideColumn"),u=k("BIMDataSpinner"),d=k("LayoutSettings");return S(),F("div",{ref:"templateRef",class:"window-container",style:ue(`
|
|
5525
5525
|
--bimdata-local-context-height: ${n.height}px;
|
|
5526
5526
|
--bimdata-local-context-width: ${n.width}px;
|
|
5527
5527
|
--bimdata-local-context-center-width: ${n.centerWidth}px;
|
|
5528
5528
|
--bimdata-local-context-resolution: ${n.resolution};
|
|
5529
|
-
`),onMouseenter:e[0]||(e[0]=(...h)=>n.onMouseEnter&&n.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>n.onMouseLeave&&n.onMouseLeave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),b("div",qjt,[n.windowPlugins.leftSidePanel?(S(),Z(a,{key:0,plugin:n.windowPlugins.leftSidePanel},null,8,["plugin"])):ne("",!0),b("div",Qjt,[(S(!0),F(ct,null,Bt(n.windowPlugins.free,h=>(S(),Z(l,{key:h.name,class:ce({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:n.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:n.windowPlugins.rightButtonColumn},null,8,["plugins"])]),n.windowPlugins.rightSidePanel?(S(),Z(a,{key:1,plugin:n.windowPlugins.rightSidePanel},null,8,["plugin"])):ne("",!0)]),n.loading?(S(),F("div",Kjt,[n.spinner&&n.spinner.component?(S(),Z(xn(n.spinner.component),_r(xs({key:0},n.spinner.props)),null,16)):(S(),Z(u,{key:1,size:"20px",border:"3px"}))])):ne("",!0),n.layoutSettingsDisplayed?(S(),F("div",Jjt,[D(d)])):ne("",!0)],36)}const Zjt=V(Gjt,[["render",Wjt],["__scopeId","data-v-8a549a80"]]);class Xjt{constructor(e=!0){const t=Hzt(cH,null,{resizable:e});t.registerContent("default",Zjt),this.settings=$o({edit:!1,swap:!1,full:!1}),this.areas=t}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?zzt(e):null}copy(e,t=!0){return jzt(this.areas.layout,e,t)}open({ratio:e,direction:t,insertAfter:n,windowName:o=null,windowState:r=null,localContextId:s=null}={}){const a=o?{options:{windowName:o,windowState:r}}:null;return s===null?this.areas.splitLayout(e,t,n,a):this.areas.split(s,e,t,n,a)}swap(e,t){return this.areas.swap(e,t)}close(e){return this.areas.delete(e)}compare(e,t){var n,o;if(!e&&!t)return!0;if(!e||!t)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="string"||typeof t=="string")return!1;if(e.windowName&&t.windowName){if(e.windowName!==t.windowName)return!1;const r=new Set((n=e.windowState)==null?void 0:n.modelIds),s=new Set((o=t.windowState)==null?void 0:o.modelIds);return r.size===s.size&&[...r].every(l=>s.has(l))}return e.windowName||t.windowName||e.direction!==t.direction||e.children.length!==t.children.length?!1:e.children.every((r,s)=>this.compare(r,t.children[s]))}}const Yjt={version:"2.11.0"};class $jt{constructor({plugins:e,api:t,ui:n,locale:o="fr"}){this.pluginManager=new hUt(e),this.windowManager=new fUt,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new GHt(t),this.globalContext=new N4e(this),this.state=rzt(this),this.shortcutManager=xAe(this.state),this.uiSettings=n||{},this.i18n=new F4e(o),this._contextMenu=null,this.layout=new Xjt(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return Yjt.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||CAe}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 eGt(i,e={}){e.backgroundColor&&(i.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&i.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&i.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&i.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&i.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&i.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&i.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&i.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&i.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&i.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&i.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&i.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&i.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&i.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&i.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&i.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&i.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&i.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&i.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&i.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&i.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&i.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&i.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&i.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&i.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&i.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&i.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&i.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&i.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&i.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),i.style.setProperty("--areas-background-color","transparent")}const tGt=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Nm=Object.freeze({READ:"read",WRITE:"write"});function s1e(i){const e={};return i.forEach(t=>{const[n,o]=t.split(":");e[n]?e[n].push(o):e[n]=[o]}),e}const iGt={token_scopes:[],usable_scopes:[],user_role:25};function r1e(i=iGt){var n,o,r,s,a,l;const e=s1e(i.token_scopes),t=s1e(i.usable_scopes);return{...Zq(i),tokenScopes:e,usableScopes:t,userRole:tGt[i.user_role],user:i.user?Zq(i.user):null,hasBcfReadPermission:((n=t.bcf)==null?void 0:n.includes(Nm.READ))??!1,hasBcfWritePermission:((o=t.bcf)==null?void 0:o.includes(Nm.WRITE))??!1,hasModelReadPermission:((r=t.model)==null?void 0:r.includes(Nm.READ))??!1,hasModelWritePermission:((s=t.model)==null?void 0:s.includes(Nm.WRITE))??!1,hasDocReadPermission:((a=t.document)==null?void 0:a.includes(Nm.READ))??!1,hasDocWritePermission:((l=t.document)==null?void 0:l.includes(Nm.WRITE))??!1}}const nGt={de:{BcfComponents:{BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorität",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zurücksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zurück",title:"BCF-Parameter",text:"Erstellen, füllen und listen Sie die BCF-Einstellungen auf, die Sie für dieses Projekt haben möchten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"Fügen Sie Fragen hinzu, um zugehörige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorität",PriorityNotDefined:"Keine Priorität",PriorityTitle:"Prioritäten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorität:",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ählen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"Fügen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"Fälligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Bestätigen",updateButton:"Änderungen übernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte Änderungen.",cancelButton:"Änderungen verwerfen",continueButton:"Änderungen 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 öffnen",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älligkeitsdatum",noDueDate:"Kein Fälligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorität",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar veröffentlichen",deleteText:"Sie löschen jetzt {Name}",deleteBcfButton:"Dieses BCF löschen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorität",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öffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar löschen?",deleteButton:"Löschen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzufügen",cancelButton:"Abbrechen",validateButton:"Bestätigen",deleteExtensionText:"Diesen Parameter löschen",deleteButton:"Löschen",title:{Priority:"Prioritäten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorität hinzufügen",Label:"Ein neues Etikett hinzufügen",Status:"Einen neuen Status hinzufügen",Type:"Einen neuen Typ hinzufügen",Stage:"Eine neue Phase hinzufügen"},text:{Priority:"Liste der Prioritäten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}}},en:{BcfComponents:{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"}}}},es:{BcfComponents:{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ón"},BcfSettings:{goBackButton:"Volver",title:"Parámetros del BCF",text:"Cree, rellene y enumere los parámetros del BCF que desea tener en este proyecto",validateButton:"Validar los parámetros del BCF"},BcfStatistics:{emptyText:"Añada preguntas para ver las estadísticas asociadas aquí.",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ón",annotationButtonTooltip:"Actualmente este tema no posee ningún punto de vista",addPictureButton:"Añadir una imagen",titlePlaceholder:"Título *",titleErrorMessage:"Falta el título",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripción",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Está a punto de salir de la edición 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ía",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ningún modelo listo para la visualización",elements:"{count} Elementos",noElements:"Ningún elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripción",noDescriptionProvided:"No hay descripción",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Información",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ás a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"Título",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:"¿Borrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"añadir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuración",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"Añadir una nueva prioridad",Label:"Añadir una nueva etiqueta",Status:"Añadir un nuevo estado",Type:"Añadir un nuevo tipo",Stage:"Añadir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}}},fr:{BcfComponents:{BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",creatorsLabel:"Créé par",tagsLabel:"Tags",resetButton:"Réinitialiser",searchButton:"Rechercher",undefined:"Non défini",datePlaceholder:"Date de création"},BcfSettings:{goBackButton:"Retour",title:"Paramètres BCF",text:"Créez, renseignez et listez les paramètres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les paramètres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associées ici.",issues:"problèmes",extension:{Priority:"Priorité",PriorityNotDefined:"Aucune priorité",PriorityTitle:"Priorités",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorité : ",noPriority:"Aucune",assignedTo:"Assigné à : ",elements:"{n} Élements",notSpecified:"Non défini",see:"Voir"},BcfTopicCreationCard:{text:"Créer un nouveau topic BCF",createBcfSideTitle:"Signaler un problème"},BcfTopicForm:{dragDropImageText:"Veuillez sélectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne possède actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",dueDateLabel:"Date d'échéance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous êtes sur le point de quitter l'édition de l'issue {name} mais il y'a des modifications non enregistrées.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un problème",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de résultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun modèle prêt pour une visualisation",elements:"{count} Élements",noElements:"Aucun élément concerné",type:"Type",noTypeSpecified:"Pas de type spécifié",description:"Description",noDescriptionProvided:"Pas de description renseignée",assignedTo:"Assigné à",notAssigned:"Non assigné",dueDate:"Échéance",noDueDate:"Pas de date d'échéance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut spécifié",stage:"Phase",noStageProvided:"Pas de phase renseignée",priority:"Priorité",priorityNotDefined:"Non défini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous êtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorité",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 élément",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce paramètre",deleteButton:"Supprimer",title:{Priority:"Priorités",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorité",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és",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}}},it:{BcfComponents:{BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorità",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à",PriorityNotDefined:"Nessuna priorità",PriorityTitle:"Priorità",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorità:",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à",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à",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à",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à",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorità",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à",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}}}},oGt=({apiClient:i,fetchUsers:e,i18nPlugin:t}={})=>({install(n){i?sn.setup({apiClient:i,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),t?Object.entries(nGt).forEach(([o,r])=>{t.global.mergeLocaleMessage(o,r)}):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(Aye).forEach(([o,r])=>{n.component(o,r)})}}),sGt={de:{BuildingMaker:{title:"Building Maker",back:"Zurück",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"Löschen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",input:"Name des Gebäudes",error:"Ungültiger Name",createButton:"Erstellen",updateButton:"Bestätigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Bestätigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ungültiger Name",cancelButton:"Abbrechen",submitButton:"Bestätigen"}},FileManager:{creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gelöscht",newFileSuccess:"Datei hinzugefügt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gelöscht",nameInputErrorMessage:"Ungültiger name",cancel:"Abbrechen",submit:"Bestätigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"Löschen",deleteTitle:"Dateien löschen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endgültig zu löschen"}},en:{BIMDataComponents:{t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},BuildingMaker:{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"}},FileManager:{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"},MetaBuildingStructure:{title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},PhotosphereBuilding:{title:"Photosphere Building"}},es:{BuildingMaker:{title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos después cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos después cargue los PDF.",input:"Nombre del edificio",error:"Nombre no válido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no válido",cancelButton:"Anular",submitButton:"Validar"}},FileManager:{creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta está vacía",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inválida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Está a punto de eliminar permanentemente los siguientes archivos / carpetas"}},fr:{BIMDataComponents:{t:{back:"Retour",cancel:"Annuler",create:"Créer",delete:"Supprimer",download:"Télécharger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"Étage",validate:"Valider"}},BuildingMaker:{title:"Building Maker",list:{text:"Créez et éditez les étages puis téléchagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du bâtiment",error:"Nom invalide"},view:{addStorey:"Ajouter un Étage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel étage",input:"Nom",error:"Nom invalide"}},FileManager:{creationFormTitle:"Créer un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier créé",renameFolderSuccess:"Dossier renommé",deleteFolderSuccess:"Dossier supprimé",newFileSuccess:"Fichier ajouté",renameFileSuccess:"Fichier renommé",deleteFileSuccess:"Fichier supprimé",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous êtes sur le point de supprimer définitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"Sélectionner une page"},MetaBuildingStructure:{title:"Structure Méta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Équipements"},StoreySelector:{placeholder:"Sélectionner un étage"}},PhotosphereBuilding:{title:"Photosphère Building"}},it:{BuildingMaker:{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"}},FileManager:{creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella è 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"}}},rGt=({i18nPlugin:i}={})=>({install(e){i?Object.entries(sGt).forEach(([t,n])=>{i.global.mergeLocaleMessage(t,n)}):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(DEt).forEach(([t,n])=>{e.component(t,n)})}}),aGt=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Xa,BIMDataClickInputAway:{beforeMount(i,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);i.clickAwayHandler=t=>{(t.path||t.composedPath&&t.composedPath()).find(o=>o===i)||e.value()},window.addEventListener("mousedown",i.clickAwayHandler,!0)},unmounted(i){window.removeEventListener("mousedown",i.clickAwayHandler,!0),delete i.clickAwayHandler}}},Symbol.toStringTag,{value:"Module"})),lGt=i=>({install(e){Object.entries(MGe).forEach(([t,n])=>{e.component(t,n)}),Object.entries(aGt).forEach(([t,n])=>e.directive(t.split("BIMData")[1],n))}}),cGt={name:"LiWrapper",render(){return Wn("li",this.$slots.default())}};function uGt(i,e){var t=new Set([]);return i.forEach(n=>{e.has(n)||t.add(n)}),t}const Il=Zo("id"),dGt=({contextMenu:i,objects:e=[],state:t=i.$viewer.state,pictos:n})=>[{name:"selectAll",get group(){return i.groupPositions.select},position:1,get label(){return i.$t("context_menu.select_all")},get picto(){return n.get(this.name)},execute:()=>t.selectObjects(e.filter(Na(Ei("visible"),bd("selected"))).map(Il)),predicate:()=>e.some(Na(Ei("visible"),bd("selected")))},{name:"deselectAll",get group(){return i.groupPositions.select},position:2,get label(){return i.$t("context_menu.deselect_all")},get picto(){return n.get(this.name)},execute:()=>t.deselectObjects(e.filter(Ei("selected")).map(Il)),predicate:()=>e.some(Ei("selected"))},{name:"selectSimilar",get group(){return i.groupPositions.select},position:3,get label(){return i.$t("context_menu.select_similar")},get picto(){return n.get(this.name)},execute(){const o=e.filter(r=>r.visible&&r.type===this.selectedObject.type&&r.id!==this.selectedObject.id).map(Il);t.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Na(Ei("visible"),Ei("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return i.$t("context_menu.reverse_selection")},get group(){return i.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Ei("selected")).map(Il)),r=new Set(e.filter(Ei("visible")).map(Il));t.selectObjects(Array.from(uGt(r,o)),{exclusive:!0})},predicate:()=>e.some(Na(bd("selected"),Ei("visible")))&&e.some(Na(Ei("selected"),Ei("visible")))},{name:"showAll",get group(){return i.groupPositions.visibility},position:1,get label(){return i.$t("context_menu.show_all")},get picto(){return n.get(this.name)},execute:()=>t.showObjects(e.filter(bd("visible")).map(Il)),predicate:()=>e.some(bd("visible"))},{name:"hide",get group(){return i.groupPositions.visibility},position:2,get label(){return i.$t("context_menu.hide")},get picto(){return n.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Ei("selected"));o.length>0&&t.deselectObjects(o.map(Il)),t.hideObjects(this.objectsToHide.map(Il))},predicate(){return this.objectsToHide=e.filter(Na(Ei("selected"),Ei("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return i.groupPositions.visibility},position:3,get label(){return i.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Ei("visible"));o.some(Ei("selected"))&&t.deselectObjects(o.filter(Ei("selected")).map(Il)),t.hideObjects(o.map(Il))},predicate:()=>e.some(Ei("visible"))}].filter(o=>o.predicate()),hGt={components:{LiWrapper:cGt},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(i){i?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(i){i.key==="Escape"&&this.away()},setPosition(i){const t=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=i.clientX-t.left,this.top=i.clientY-t.top,this.left+this.width>t.width&&(this.left=this.left-this.width),i.clientY>t.top+t.height/2?(this.bottom=t.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(i={}){let e=null;if((!i.execute||typeof i.execute!="function")&!i.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),i.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return i.id=this.nextCommandId++,i},open(i){this.currentCommands=[],this.setPosition(i),this.originEvent=i,i.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 i=>{if(typeof i.predicate=="function"){const e=i.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(i);else if(typeof(e==null?void 0:e.then)=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const t=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,t===!0&&this.currentCommands.push(i))}}else this.currentCommands.push(i)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:i=[],state:e=this.$viewer.state,context:t=null}){const n=new Map;return t&&this.$viewer.shortcutManager.getShortcuts(t).forEach(o=>n.set(o.name,o.key)),dGt({contextMenu:this,objects:i,state:e,pictos:n})},executeCommand(i){if(i.execute&&(i.execute(this.originEvent),this.displayed=!1),i.component&&!i.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const i=new Map;this.currentCommands.forEach(n=>{(n.group===null||n.group===void 0)&&(n.group=0),i.has(n.group)?i.get(n.group).push(n):i.set(n.group,[n])}),i.forEach(n=>n.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const t=[...i.keys()].sort((n,o)=>n-o).map(n=>i.get(n)).flat();this.currentCommands=t},isGroupIntersection(i){if(i===0)return!1;const e=this.currentCommands[i-1],t=this.currentCommands[i];return e.group<t.group},registerContextCommand(i){const e=this.typeCheckCommand(i);return this.contextCommands.push(e),i.id},registerCommand(i){const e=this.typeCheckCommand(i);return this.registeredCommands.push(e),i.id},unregisterCommand(i){return this.registeredCommands.find(e=>e.id===i)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==i),!0):!1},preventDefault(){this.defaultPrevented=!0}}},pGt={key:0,class:"separator"},fGt={class:"menu-text"},AGt={key:1,class:"menu-picto"},mGt={key:0,class:"context-menu__spinner"};function gGt(i,e,t,n,o,r){const s=k("BIMDataIconChevron"),a=k("LiWrapper"),l=k("BIMDataSpinner"),c=di("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?At((S(),F("ul",{key:0,class:"bimdata-list context-menu",style:ue(r.position)},[(S(!0),F(ct,null,Bt(o.currentCommands,(u,d)=>(S(),Z(a,{key:u.label,class:"context-menu__element",onClick:h=>r.executeCommand(u)},{default:U(()=>[r.isGroupIntersection(d)?(S(),F("div",pGt)):ne("",!0),b("div",fGt,K(u.label),1),!u.component&&u.picto?(S(),F("span",AGt,K(u.picto),1)):u.component?(S(),Z(s,{key:2,size:"xxs",class:"fill-primary"})):ne("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(S(),F("li",mGt,[D(l)])):ne("",!0)],4)),[[c,r.away]]):ne("",!0)}const vGt=V(hGt,[["render",gGt],["__scopeId","data-v-5b87d4a3"]]),yGt={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const i=mt("$viewer"),e=$o(new Map),t=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)},n=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:i.uiSettings.bimdataLogo!==!1,version:i.uiSettings.version!==!1?i.version:null,headerContent:e,headerRightContentComponents:$e(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,r)=>o.order-r.order).map(o=>o.component)),headerLeftContentComponents:$e(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,r)=>o.order-r.order).map(o=>o.component)),addContent:t,removeContent:n}}},wGt={class:"viewer-header"},CGt={class:"viewer-header__content"},bGt={class:"viewer-header__content__left"},xGt={class:"viewer-header__content__right"},MGt={key:0,class:"m-l-6 flex items-center"},EGt={key:1,class:"viewer-header__version"};function BGt(i,e,t,n,o,r){const s=k("BIMDataIllustration");return At((S(),F("div",wGt,[b("div",CGt,[b("div",bGt,[(S(!0),F(ct,null,Bt(n.headerLeftContentComponents,a=>(S(),Z(xn(a),{key:a.name}))),128))]),b("div",xGt,[(S(!0),F(ct,null,Bt(n.headerRightContentComponents,a=>(S(),Z(xn(a),{key:a.name}))),128))])]),n.logo||n.version?(S(),F("div",MGt,[n.logo?(S(),Z(s,{key:0,name:"logo",width:"30px",height:"30px"})):ne("",!0),n.version?(S(),F("div",EGt,K(n.version),1)):ne("",!0)])):ne("",!0)],512)),[[Gt,t.visible]])}const IGt=V(yGt,[["render",BGt],["__scopeId","data-v-5c9ea6b6"]]),SGt={emits:["resize"],setup(i,{emit:e}){return{onResizerMousedown:n=>{n.preventDefault();let o=n.clientX;const r=a=>{a.preventDefault();const l=a.clientX-o;o=a.clientX,e("resize",l)},s=a=>{a.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},PGt={class:"bimdata-separator"};function TGt(i,e,t,n,o,r){return S(),F("div",PGt,[e[1]||(e[1]=b("div",{class:"bimdata-separator__line"},null,-1)),b("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>n.onResizerMousedown&&n.onResizerMousedown(...s))},null,32)])}const kGt={components:{Separator:V(SGt,[["render",TGt],["__scopeId","data-v-79a3b3af"]])},props:{position:{type:String,required:!0,validator(i){return["left","right"].includes(i)}},sidePanel:{type:Object,required:!0,validator(i){if(i.width&&(typeof i.width!="number"||i.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof i.width}`),!1;const e=typeof(i==null?void 0:i.component)=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(i){const e=Ae(null),t=Ae(i.sidePanel.width??400),n=(o,r=1)=>{const s=t.value+o*r;t.value=Math.max(0,s)};return gt(()=>i.sidePanel,()=>{Object.defineProperty(i.sidePanel,"width",{get(){return t.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}t.value=o}}),Object.defineProperty(i.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:t,onResize:n}}},RGt={class:"bimdata-global-side-panel__component"};function DGt(i,e,t,n,o,r){const s=k("Separator");return S(),F("div",{class:"bimdata-global-side-panel",style:ue(`width: ${n.width}px`)},[t.sidePanel.resizable&&t.position==="right"?(S(),Z(s,{key:0,onResize:e[0]||(e[0]=a=>n.onResize(a,-1))})):ne("",!0),b("div",RGt,[(S(),Z(xn(t.sidePanel.component),{ref:"componentInstance"},null,512))]),t.sidePanel.resizable&&t.position==="left"?(S(),Z(s,{key:1,onResize:e[1]||(e[1]=a=>n.onResize(a))})):ne("",!0)],4)}const _Gt={name:"BimdataViewer",components:{ContextMenu:vGt,ViewerHeader:IGt,ModalManager:i1e,GlobalSidePanel:V(kGt,[["render",DGt],["__scopeId","data-v-82d0d4cb"]])},setup(){const i=mt("$viewer"),{globalContext:e,shortcutManager:t}=i;pn(()=>{t&&t.destroy(),e.hub.clear()}),Bi(()=>{i.pluginManager.runPluginsScripts(i)});const n=$e(()=>{var f;return i.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((f=e.localContexts[0].window)==null?void 0:f.logoAndVersion))}),o=$e(()=>{var f;return i.uiSettings.version!==!1&&(e.localContexts.length!==1||(f=e.localContexts[0].window)!=null&&f.logoAndVersion)?i.version:null}),r=$e(()=>e.leftSidePanel),s=$e(()=>e.rightSidePanel),a=$e(()=>{var g;const f=i.uiSettings.header!==!1,A=e.localContexts.length===1&&((g=e.localContexts[0].window)==null?void 0:g.header)===!1,p=!!(r.value||s.value);return f&&(!A||p)}),l=i.uiSettings.contextMenu!==!1,c=Ae(null);function u(f){l&&c.value.open(f)}function d(){i.shortcutManager.active=!0}function h(){i.shortcutManager.active=!1}return{Layout:i.layout.areas.component,onContextMenu:u,onMouseenter:d,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:n,viewerVersionOnSingleWindow:o,version:i.version,loading:$e(()=>e.loading),spinner:$e(()=>e.spinner),leftSidePanel:r,rightSidePanel:s}}},LGt={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},FGt={key:2,class:"viewer__logo"},OGt={key:1,class:"version m-t-6"};function NGt(i,e,t,n,o,r){const s=k("ModalManager"),a=k("ContextMenu"),l=k("ViewerHeader"),c=k("GlobalSidePanel"),u=k("BIMDataSpinner"),d=k("BIMDataIllustration");return S(),F("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>n.onContextMenu&&n.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>n.onMouseenter&&n.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>n.onMouseleave&&n.onMouseleave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),n.contextMenuEnabled?(S(),Z(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):ne("",!0),D(l,{ref:"headerTemplateRef",visible:n.isHeaderVisible},null,8,["visible"]),b("div",{class:"bimdata-viewer__content",style:ue(n.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[n.leftSidePanel?(S(),Z(c,{key:0,"side-panel":n.leftSidePanel,position:"left"},null,8,["side-panel"])):ne("",!0),(S(),Z(xn(n.Layout),{style:"height: 100%; flex-grow: 1;"})),n.rightSidePanel?(S(),Z(c,{key:1,"side-panel":n.rightSidePanel,position:"right"},null,8,["side-panel"])):ne("",!0)],4),n.loading?(S(),F("div",LGt,[n.spinner&&n.spinner.component?(S(),Z(xn(n.spinner.component),_r(xs({key:0},n.spinner.props)),null,16)):(S(),Z(u,{key:1,size:"40px",border:"5px"}))])):ne("",!0),!n.isHeaderVisible&&(n.bimdataLogoOnSingleWindow||n.viewerVersionOnSingleWindow)?(S(),F("div",FGt,[n.bimdataLogoOnSingleWindow?(S(),Z(d,{key:0,name:"logo"})):ne("",!0),n.viewerVersionOnSingleWindow?(S(),F("div",OGt,K(n.version),1)):ne("",!0)])):ne("",!0)],544)}const UGt=V(_Gt,[["render",NGt],["__scopeId","data-v-0c1c941a"]]),VGt=["src"],HGt={class:"bimdata-models__header"},zGt={key:0,class:"bimdata-models__header__loader"},jGt={class:"bimdata-models__header__picto"},GGt={class:"bimdata-models__header__name"},qGt={key:0,class:"bimdata-models__header__name--empty"},QGt={key:1,class:"bimdata-models__header__name--empty"},KGt={key:3},JGt=["onMousemove","onClick"],a1e=V({__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=mt("$viewer"),n=Ae(),o=Ae(0),r=Ae(0),s=Ae(),a=on([]),l=Ae(!1),c=$e(()=>t.localContext.loadedModels),u=$e(()=>t.localContext.loadedModelIds),d=$e(()=>t.localContext.loadingModelIds),h=$e(()=>t.localContext.multiModel),f=$e(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(I=>c.value.find(E=>{var B;return((B=E.document)==null?void 0:B.head_id)!=null&&E.document.head_id===I.document.id})??I)),A=M=>u.value.includes(M),p=M=>d.value.includes(M),g=$e(()=>{var E;const{x:M,y:I}=((E=s.value)==null?void 0:E.getBoundingClientRect())??{x:0,y:0};return`top:${r.value-I}px; left:${o.value-M}px;`}),m=M=>{!h.value&&A(M.id)||d.value.length>0||(t.localContext.loadedModelIds.includes(M.id)?t.localContext.unloadModels([M.id]):t.localContext.loadModels([M.id]))},w=M=>{switch(M){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(M,I)=>{M!=null&&M.viewer_360_file&&(o.value=I.clientX,r.value=I.clientY),n.value=M==null?void 0:M.viewer_360_file},v=async M=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,M)).filter(E=>t.state.models.some(B=>B.archived)||!E.archived).sort(ec("updated_at",!1))}catch(I){console.error("[Models] Cannot get project models. Error: ",I)}finally{l.value=!1}return[]},x=M=>{var I;return((I=M.children)==null?void 0:I.some(E=>A(E.id)))??!1};return v(t.localContext.modelTypes).then(M=>{a.value=M}),(M,I)=>{const E=k("BIMDataSpinner"),B=k("BIMDataIconModel3D"),T=k("BIMDataTextbox"),P=k("BIMDataCheckbox"),R=k("BIMDataRadio"),L=k("BIMDataIcon"),N=k("BIMDataDropdownList");return S(),F("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-models",{"bimdata-models--window-positioning":i.windowPositioning}])},[n.value?(S(),F("div",{key:0,class:"bimdata-models__preview",style:ue(g.value)},[b("img",{src:n.value},null,8,VGt)],4)):ne("",!0),D(N,{style:ue(`--bimdata-models-width: ${i.width};`),width:i.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:U(({isOpen:z})=>[b("div",HGt,[l.value||d.value.length>0?(S(),F("div",zGt,[D(E)])):(S(),F(ct,{key:1},[b("div",jGt,[D(B)]),b("div",{class:ce(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":u.value.length===0}])},[b("span",null,K(u.value.length),1)],2),b("div",GGt,[f.value.length===0?(S(),F("span",qGt,K(M.$t("model.no_model")),1)):u.value.length===0?(S(),F("span",QGt,K(M.$t("model.no_loaded_model")),1)):u.value.length===1?(S(),Z(T,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):u.value.length>1?(S(),F("span",KGt,K(M.$t("model.selected_models")),1)):ne("",!0)])],64))])]),element:U(({element:z,close:H})=>[b("div",{class:"bimdata-models__model",onMousemove:q=>i.preview&&y(z,q),onMouseout:I[0]||(I[0]=q=>i.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&H()}},[h.value?(S(),Z(P,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])):(S(),Z(R,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])),D(L,{margin:"0 calc(var(--spacing-unit) / 2)",name:w(z.status),size:"xs",class:ce({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),D(T,{class:ce({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||d.value.length>0}),text:z.name,width:`calc(100% -
|
|
5529
|
+
`),onMouseenter:e[0]||(e[0]=(...h)=>n.onMouseEnter&&n.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>n.onMouseLeave&&n.onMouseLeave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),b("div",qjt,[n.windowPlugins.leftSidePanel?(S(),Z(a,{key:0,plugin:n.windowPlugins.leftSidePanel},null,8,["plugin"])):ne("",!0),b("div",Qjt,[(S(!0),F(ct,null,Bt(n.windowPlugins.free,h=>(S(),Z(l,{key:h.name,class:ce({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:n.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:n.windowPlugins.rightButtonColumn},null,8,["plugins"])]),n.windowPlugins.rightSidePanel?(S(),Z(a,{key:1,plugin:n.windowPlugins.rightSidePanel},null,8,["plugin"])):ne("",!0)]),n.loading?(S(),F("div",Kjt,[n.spinner&&n.spinner.component?(S(),Z(xn(n.spinner.component),_r(xs({key:0},n.spinner.props)),null,16)):(S(),Z(u,{key:1,size:"20px",border:"3px"}))])):ne("",!0),n.layoutSettingsDisplayed?(S(),F("div",Jjt,[D(d)])):ne("",!0)],36)}const Zjt=V(Gjt,[["render",Wjt],["__scopeId","data-v-4d6af796"]]);class Xjt{constructor(e=!0){const t=Hzt(cH,null,{resizable:e});t.registerContent("default",Zjt),this.settings=$o({edit:!1,swap:!1,full:!1}),this.areas=t}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?zzt(e):null}copy(e,t=!0){return jzt(this.areas.layout,e,t)}open({ratio:e,direction:t,insertAfter:n,windowName:o=null,windowState:r=null,localContextId:s=null}={}){const a=o?{options:{windowName:o,windowState:r}}:null;return s===null?this.areas.splitLayout(e,t,n,a):this.areas.split(s,e,t,n,a)}swap(e,t){return this.areas.swap(e,t)}close(e){return this.areas.delete(e)}compare(e,t){var n,o;if(!e&&!t)return!0;if(!e||!t)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="string"||typeof t=="string")return!1;if(e.windowName&&t.windowName){if(e.windowName!==t.windowName)return!1;const r=new Set((n=e.windowState)==null?void 0:n.modelIds),s=new Set((o=t.windowState)==null?void 0:o.modelIds);return r.size===s.size&&[...r].every(l=>s.has(l))}return e.windowName||t.windowName||e.direction!==t.direction||e.children.length!==t.children.length?!1:e.children.every((r,s)=>this.compare(r,t.children[s]))}}const Yjt={version:"2.11.1-beta.1"};class $jt{constructor({plugins:e,api:t,ui:n,locale:o="fr"}){this.pluginManager=new hUt(e),this.windowManager=new fUt,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new GHt(t),this.globalContext=new N4e(this),this.state=rzt(this),this.shortcutManager=xAe(this.state),this.uiSettings=n||{},this.i18n=new F4e(o),this._contextMenu=null,this.layout=new Xjt(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return Yjt.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||CAe}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 eGt(i,e={}){e.backgroundColor&&(i.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&i.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&i.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&i.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&i.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&i.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&i.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&i.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&i.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&i.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&i.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&i.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&i.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&i.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&i.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&i.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&i.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&i.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&i.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&i.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&i.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&i.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&i.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&i.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&i.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&i.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&i.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&i.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&i.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&i.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),i.style.setProperty("--areas-background-color","transparent")}const tGt=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Nm=Object.freeze({READ:"read",WRITE:"write"});function s1e(i){const e={};return i.forEach(t=>{const[n,o]=t.split(":");e[n]?e[n].push(o):e[n]=[o]}),e}const iGt={token_scopes:[],usable_scopes:[],user_role:25};function r1e(i=iGt){var n,o,r,s,a,l;const e=s1e(i.token_scopes),t=s1e(i.usable_scopes);return{...Zq(i),tokenScopes:e,usableScopes:t,userRole:tGt[i.user_role],user:i.user?Zq(i.user):null,hasBcfReadPermission:((n=t.bcf)==null?void 0:n.includes(Nm.READ))??!1,hasBcfWritePermission:((o=t.bcf)==null?void 0:o.includes(Nm.WRITE))??!1,hasModelReadPermission:((r=t.model)==null?void 0:r.includes(Nm.READ))??!1,hasModelWritePermission:((s=t.model)==null?void 0:s.includes(Nm.WRITE))??!1,hasDocReadPermission:((a=t.document)==null?void 0:a.includes(Nm.READ))??!1,hasDocWritePermission:((l=t.document)==null?void 0:l.includes(Nm.WRITE))??!1}}const nGt={de:{BcfComponents:{BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorität",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zurücksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zurück",title:"BCF-Parameter",text:"Erstellen, füllen und listen Sie die BCF-Einstellungen auf, die Sie für dieses Projekt haben möchten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"Fügen Sie Fragen hinzu, um zugehörige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorität",PriorityNotDefined:"Keine Priorität",PriorityTitle:"Prioritäten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorität:",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ählen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"Fügen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"Fälligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Bestätigen",updateButton:"Änderungen übernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte Änderungen.",cancelButton:"Änderungen verwerfen",continueButton:"Änderungen 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 öffnen",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älligkeitsdatum",noDueDate:"Kein Fälligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorität",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar veröffentlichen",deleteText:"Sie löschen jetzt {Name}",deleteBcfButton:"Dieses BCF löschen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorität",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öffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar löschen?",deleteButton:"Löschen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzufügen",cancelButton:"Abbrechen",validateButton:"Bestätigen",deleteExtensionText:"Diesen Parameter löschen",deleteButton:"Löschen",title:{Priority:"Prioritäten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorität hinzufügen",Label:"Ein neues Etikett hinzufügen",Status:"Einen neuen Status hinzufügen",Type:"Einen neuen Typ hinzufügen",Stage:"Eine neue Phase hinzufügen"},text:{Priority:"Liste der Prioritäten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}}},en:{BcfComponents:{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"}}}},es:{BcfComponents:{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ón"},BcfSettings:{goBackButton:"Volver",title:"Parámetros del BCF",text:"Cree, rellene y enumere los parámetros del BCF que desea tener en este proyecto",validateButton:"Validar los parámetros del BCF"},BcfStatistics:{emptyText:"Añada preguntas para ver las estadísticas asociadas aquí.",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ón",annotationButtonTooltip:"Actualmente este tema no posee ningún punto de vista",addPictureButton:"Añadir una imagen",titlePlaceholder:"Título *",titleErrorMessage:"Falta el título",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripción",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Está a punto de salir de la edición 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ía",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ningún modelo listo para la visualización",elements:"{count} Elementos",noElements:"Ningún elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripción",noDescriptionProvided:"No hay descripción",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Información",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ás a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"Título",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:"¿Borrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"añadir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuración",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"Añadir una nueva prioridad",Label:"Añadir una nueva etiqueta",Status:"Añadir un nuevo estado",Type:"Añadir un nuevo tipo",Stage:"Añadir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}}},fr:{BcfComponents:{BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",creatorsLabel:"Créé par",tagsLabel:"Tags",resetButton:"Réinitialiser",searchButton:"Rechercher",undefined:"Non défini",datePlaceholder:"Date de création"},BcfSettings:{goBackButton:"Retour",title:"Paramètres BCF",text:"Créez, renseignez et listez les paramètres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les paramètres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associées ici.",issues:"problèmes",extension:{Priority:"Priorité",PriorityNotDefined:"Aucune priorité",PriorityTitle:"Priorités",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorité : ",noPriority:"Aucune",assignedTo:"Assigné à : ",elements:"{n} Élements",notSpecified:"Non défini",see:"Voir"},BcfTopicCreationCard:{text:"Créer un nouveau topic BCF",createBcfSideTitle:"Signaler un problème"},BcfTopicForm:{dragDropImageText:"Veuillez sélectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne possède actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",dueDateLabel:"Date d'échéance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous êtes sur le point de quitter l'édition de l'issue {name} mais il y'a des modifications non enregistrées.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un problème",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de résultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun modèle prêt pour une visualisation",elements:"{count} Élements",noElements:"Aucun élément concerné",type:"Type",noTypeSpecified:"Pas de type spécifié",description:"Description",noDescriptionProvided:"Pas de description renseignée",assignedTo:"Assigné à",notAssigned:"Non assigné",dueDate:"Échéance",noDueDate:"Pas de date d'échéance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut spécifié",stage:"Phase",noStageProvided:"Pas de phase renseignée",priority:"Priorité",priorityNotDefined:"Non défini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous êtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorité",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 élément",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce paramètre",deleteButton:"Supprimer",title:{Priority:"Priorités",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorité",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és",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}}},it:{BcfComponents:{BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorità",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à",PriorityNotDefined:"Nessuna priorità",PriorityTitle:"Priorità",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorità:",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à",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à",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à",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à",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorità",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à",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}}}},oGt=({apiClient:i,fetchUsers:e,i18nPlugin:t}={})=>({install(n){i?sn.setup({apiClient:i,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),t?Object.entries(nGt).forEach(([o,r])=>{t.global.mergeLocaleMessage(o,r)}):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(Aye).forEach(([o,r])=>{n.component(o,r)})}}),sGt={de:{BuildingMaker:{title:"Building Maker",back:"Zurück",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"Löschen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",input:"Name des Gebäudes",error:"Ungültiger Name",createButton:"Erstellen",updateButton:"Bestätigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Bestätigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ungültiger Name",cancelButton:"Abbrechen",submitButton:"Bestätigen"}},FileManager:{creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gelöscht",newFileSuccess:"Datei hinzugefügt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gelöscht",nameInputErrorMessage:"Ungültiger name",cancel:"Abbrechen",submit:"Bestätigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"Löschen",deleteTitle:"Dateien löschen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endgültig zu löschen"}},en:{BIMDataComponents:{t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},BuildingMaker:{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"}},FileManager:{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"},MetaBuildingStructure:{title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},PhotosphereBuilding:{title:"Photosphere Building"}},es:{BuildingMaker:{title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos después cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos después cargue los PDF.",input:"Nombre del edificio",error:"Nombre no válido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no válido",cancelButton:"Anular",submitButton:"Validar"}},FileManager:{creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta está vacía",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inválida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Está a punto de eliminar permanentemente los siguientes archivos / carpetas"}},fr:{BIMDataComponents:{t:{back:"Retour",cancel:"Annuler",create:"Créer",delete:"Supprimer",download:"Télécharger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"Étage",validate:"Valider"}},BuildingMaker:{title:"Building Maker",list:{text:"Créez et éditez les étages puis téléchagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du bâtiment",error:"Nom invalide"},view:{addStorey:"Ajouter un Étage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel étage",input:"Nom",error:"Nom invalide"}},FileManager:{creationFormTitle:"Créer un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier créé",renameFolderSuccess:"Dossier renommé",deleteFolderSuccess:"Dossier supprimé",newFileSuccess:"Fichier ajouté",renameFileSuccess:"Fichier renommé",deleteFileSuccess:"Fichier supprimé",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous êtes sur le point de supprimer définitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"Sélectionner une page"},MetaBuildingStructure:{title:"Structure Méta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Équipements"},StoreySelector:{placeholder:"Sélectionner un étage"}},PhotosphereBuilding:{title:"Photosphère Building"}},it:{BuildingMaker:{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"}},FileManager:{creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella è 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"}}},rGt=({i18nPlugin:i}={})=>({install(e){i?Object.entries(sGt).forEach(([t,n])=>{i.global.mergeLocaleMessage(t,n)}):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(DEt).forEach(([t,n])=>{e.component(t,n)})}}),aGt=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Xa,BIMDataClickInputAway:{beforeMount(i,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);i.clickAwayHandler=t=>{(t.path||t.composedPath&&t.composedPath()).find(o=>o===i)||e.value()},window.addEventListener("mousedown",i.clickAwayHandler,!0)},unmounted(i){window.removeEventListener("mousedown",i.clickAwayHandler,!0),delete i.clickAwayHandler}}},Symbol.toStringTag,{value:"Module"})),lGt=i=>({install(e){Object.entries(MGe).forEach(([t,n])=>{e.component(t,n)}),Object.entries(aGt).forEach(([t,n])=>e.directive(t.split("BIMData")[1],n))}}),cGt={name:"LiWrapper",render(){return Wn("li",this.$slots.default())}};function uGt(i,e){var t=new Set([]);return i.forEach(n=>{e.has(n)||t.add(n)}),t}const Il=Zo("id"),dGt=({contextMenu:i,objects:e=[],state:t=i.$viewer.state,pictos:n})=>[{name:"selectAll",get group(){return i.groupPositions.select},position:1,get label(){return i.$t("context_menu.select_all")},get picto(){return n.get(this.name)},execute:()=>t.selectObjects(e.filter(Na(Ei("visible"),bd("selected"))).map(Il)),predicate:()=>e.some(Na(Ei("visible"),bd("selected")))},{name:"deselectAll",get group(){return i.groupPositions.select},position:2,get label(){return i.$t("context_menu.deselect_all")},get picto(){return n.get(this.name)},execute:()=>t.deselectObjects(e.filter(Ei("selected")).map(Il)),predicate:()=>e.some(Ei("selected"))},{name:"selectSimilar",get group(){return i.groupPositions.select},position:3,get label(){return i.$t("context_menu.select_similar")},get picto(){return n.get(this.name)},execute(){const o=e.filter(r=>r.visible&&r.type===this.selectedObject.type&&r.id!==this.selectedObject.id).map(Il);t.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Na(Ei("visible"),Ei("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return i.$t("context_menu.reverse_selection")},get group(){return i.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Ei("selected")).map(Il)),r=new Set(e.filter(Ei("visible")).map(Il));t.selectObjects(Array.from(uGt(r,o)),{exclusive:!0})},predicate:()=>e.some(Na(bd("selected"),Ei("visible")))&&e.some(Na(Ei("selected"),Ei("visible")))},{name:"showAll",get group(){return i.groupPositions.visibility},position:1,get label(){return i.$t("context_menu.show_all")},get picto(){return n.get(this.name)},execute:()=>t.showObjects(e.filter(bd("visible")).map(Il)),predicate:()=>e.some(bd("visible"))},{name:"hide",get group(){return i.groupPositions.visibility},position:2,get label(){return i.$t("context_menu.hide")},get picto(){return n.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Ei("selected"));o.length>0&&t.deselectObjects(o.map(Il)),t.hideObjects(this.objectsToHide.map(Il))},predicate(){return this.objectsToHide=e.filter(Na(Ei("selected"),Ei("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return i.groupPositions.visibility},position:3,get label(){return i.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Ei("visible"));o.some(Ei("selected"))&&t.deselectObjects(o.filter(Ei("selected")).map(Il)),t.hideObjects(o.map(Il))},predicate:()=>e.some(Ei("visible"))}].filter(o=>o.predicate()),hGt={components:{LiWrapper:cGt},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(i){i?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(i){i.key==="Escape"&&this.away()},setPosition(i){const t=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=i.clientX-t.left,this.top=i.clientY-t.top,this.left+this.width>t.width&&(this.left=this.left-this.width),i.clientY>t.top+t.height/2?(this.bottom=t.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(i={}){let e=null;if((!i.execute||typeof i.execute!="function")&!i.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),i.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return i.id=this.nextCommandId++,i},open(i){this.currentCommands=[],this.setPosition(i),this.originEvent=i,i.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 i=>{if(typeof i.predicate=="function"){const e=i.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(i);else if(typeof(e==null?void 0:e.then)=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const t=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,t===!0&&this.currentCommands.push(i))}}else this.currentCommands.push(i)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:i=[],state:e=this.$viewer.state,context:t=null}){const n=new Map;return t&&this.$viewer.shortcutManager.getShortcuts(t).forEach(o=>n.set(o.name,o.key)),dGt({contextMenu:this,objects:i,state:e,pictos:n})},executeCommand(i){if(i.execute&&(i.execute(this.originEvent),this.displayed=!1),i.component&&!i.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const i=new Map;this.currentCommands.forEach(n=>{(n.group===null||n.group===void 0)&&(n.group=0),i.has(n.group)?i.get(n.group).push(n):i.set(n.group,[n])}),i.forEach(n=>n.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const t=[...i.keys()].sort((n,o)=>n-o).map(n=>i.get(n)).flat();this.currentCommands=t},isGroupIntersection(i){if(i===0)return!1;const e=this.currentCommands[i-1],t=this.currentCommands[i];return e.group<t.group},registerContextCommand(i){const e=this.typeCheckCommand(i);return this.contextCommands.push(e),i.id},registerCommand(i){const e=this.typeCheckCommand(i);return this.registeredCommands.push(e),i.id},unregisterCommand(i){return this.registeredCommands.find(e=>e.id===i)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==i),!0):!1},preventDefault(){this.defaultPrevented=!0}}},pGt={key:0,class:"separator"},fGt={class:"menu-text"},AGt={key:1,class:"menu-picto"},mGt={key:0,class:"context-menu__spinner"};function gGt(i,e,t,n,o,r){const s=k("BIMDataIconChevron"),a=k("LiWrapper"),l=k("BIMDataSpinner"),c=di("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?At((S(),F("ul",{key:0,class:"bimdata-list context-menu",style:ue(r.position)},[(S(!0),F(ct,null,Bt(o.currentCommands,(u,d)=>(S(),Z(a,{key:u.label,class:"context-menu__element",onClick:h=>r.executeCommand(u)},{default:U(()=>[r.isGroupIntersection(d)?(S(),F("div",pGt)):ne("",!0),b("div",fGt,K(u.label),1),!u.component&&u.picto?(S(),F("span",AGt,K(u.picto),1)):u.component?(S(),Z(s,{key:2,size:"xxs",class:"fill-primary"})):ne("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(S(),F("li",mGt,[D(l)])):ne("",!0)],4)),[[c,r.away]]):ne("",!0)}const vGt=V(hGt,[["render",gGt],["__scopeId","data-v-5b87d4a3"]]),yGt={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const i=mt("$viewer"),e=$o(new Map),t=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)},n=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:i.uiSettings.bimdataLogo!==!1,version:i.uiSettings.version!==!1?i.version:null,headerContent:e,headerRightContentComponents:$e(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,r)=>o.order-r.order).map(o=>o.component)),headerLeftContentComponents:$e(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,r)=>o.order-r.order).map(o=>o.component)),addContent:t,removeContent:n}}},wGt={class:"viewer-header"},CGt={class:"viewer-header__content"},bGt={class:"viewer-header__content__left"},xGt={class:"viewer-header__content__right"},MGt={key:0,class:"m-l-6 flex items-center"},EGt={key:1,class:"viewer-header__version"};function BGt(i,e,t,n,o,r){const s=k("BIMDataIllustration");return At((S(),F("div",wGt,[b("div",CGt,[b("div",bGt,[(S(!0),F(ct,null,Bt(n.headerLeftContentComponents,a=>(S(),Z(xn(a),{key:a.name}))),128))]),b("div",xGt,[(S(!0),F(ct,null,Bt(n.headerRightContentComponents,a=>(S(),Z(xn(a),{key:a.name}))),128))])]),n.logo||n.version?(S(),F("div",MGt,[n.logo?(S(),Z(s,{key:0,name:"logo",width:"30px",height:"30px"})):ne("",!0),n.version?(S(),F("div",EGt,K(n.version),1)):ne("",!0)])):ne("",!0)],512)),[[Gt,t.visible]])}const IGt=V(yGt,[["render",BGt],["__scopeId","data-v-5c9ea6b6"]]),SGt={emits:["resize"],setup(i,{emit:e}){return{onResizerMousedown:n=>{n.preventDefault();let o=n.clientX;const r=a=>{a.preventDefault();const l=a.clientX-o;o=a.clientX,e("resize",l)},s=a=>{a.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},PGt={class:"bimdata-separator"};function TGt(i,e,t,n,o,r){return S(),F("div",PGt,[e[1]||(e[1]=b("div",{class:"bimdata-separator__line"},null,-1)),b("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>n.onResizerMousedown&&n.onResizerMousedown(...s))},null,32)])}const kGt={components:{Separator:V(SGt,[["render",TGt],["__scopeId","data-v-79a3b3af"]])},props:{position:{type:String,required:!0,validator(i){return["left","right"].includes(i)}},sidePanel:{type:Object,required:!0,validator(i){if(i.width&&(typeof i.width!="number"||i.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof i.width}`),!1;const e=typeof(i==null?void 0:i.component)=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(i){const e=Ae(null),t=Ae(i.sidePanel.width??400),n=(o,r=1)=>{const s=t.value+o*r;t.value=Math.max(0,s)};return gt(()=>i.sidePanel,()=>{Object.defineProperty(i.sidePanel,"width",{get(){return t.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}t.value=o}}),Object.defineProperty(i.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:t,onResize:n}}},RGt={class:"bimdata-global-side-panel__component"};function DGt(i,e,t,n,o,r){const s=k("Separator");return S(),F("div",{class:"bimdata-global-side-panel",style:ue(`width: ${n.width}px`)},[t.sidePanel.resizable&&t.position==="right"?(S(),Z(s,{key:0,onResize:e[0]||(e[0]=a=>n.onResize(a,-1))})):ne("",!0),b("div",RGt,[(S(),Z(xn(t.sidePanel.component),{ref:"componentInstance"},null,512))]),t.sidePanel.resizable&&t.position==="left"?(S(),Z(s,{key:1,onResize:e[1]||(e[1]=a=>n.onResize(a))})):ne("",!0)],4)}const _Gt={name:"BimdataViewer",components:{ContextMenu:vGt,ViewerHeader:IGt,ModalManager:i1e,GlobalSidePanel:V(kGt,[["render",DGt],["__scopeId","data-v-82d0d4cb"]])},setup(){const i=mt("$viewer"),{globalContext:e,shortcutManager:t}=i;pn(()=>{t&&t.destroy(),e.hub.clear()}),Bi(()=>{i.pluginManager.runPluginsScripts(i)});const n=$e(()=>{var f;return i.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((f=e.localContexts[0].window)==null?void 0:f.logoAndVersion))}),o=$e(()=>{var f;return i.uiSettings.version!==!1&&(e.localContexts.length!==1||(f=e.localContexts[0].window)!=null&&f.logoAndVersion)?i.version:null}),r=$e(()=>e.leftSidePanel),s=$e(()=>e.rightSidePanel),a=$e(()=>{var g;const f=i.uiSettings.header!==!1,A=e.localContexts.length===1&&((g=e.localContexts[0].window)==null?void 0:g.header)===!1,p=!!(r.value||s.value);return f&&(!A||p)}),l=i.uiSettings.contextMenu!==!1,c=Ae(null);function u(f){l&&c.value.open(f)}function d(){i.shortcutManager.active=!0}function h(){i.shortcutManager.active=!1}return{Layout:i.layout.areas.component,onContextMenu:u,onMouseenter:d,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:n,viewerVersionOnSingleWindow:o,version:i.version,loading:$e(()=>e.loading),spinner:$e(()=>e.spinner),leftSidePanel:r,rightSidePanel:s}}},LGt={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},FGt={key:2,class:"viewer__logo"},OGt={key:1,class:"version m-t-6"};function NGt(i,e,t,n,o,r){const s=k("ModalManager"),a=k("ContextMenu"),l=k("ViewerHeader"),c=k("GlobalSidePanel"),u=k("BIMDataSpinner"),d=k("BIMDataIllustration");return S(),F("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>n.onContextMenu&&n.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>n.onMouseenter&&n.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>n.onMouseleave&&n.onMouseleave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),n.contextMenuEnabled?(S(),Z(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):ne("",!0),D(l,{ref:"headerTemplateRef",visible:n.isHeaderVisible},null,8,["visible"]),b("div",{class:"bimdata-viewer__content",style:ue(n.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[n.leftSidePanel?(S(),Z(c,{key:0,"side-panel":n.leftSidePanel,position:"left"},null,8,["side-panel"])):ne("",!0),(S(),Z(xn(n.Layout),{style:"height: 100%; flex-grow: 1;"})),n.rightSidePanel?(S(),Z(c,{key:1,"side-panel":n.rightSidePanel,position:"right"},null,8,["side-panel"])):ne("",!0)],4),n.loading?(S(),F("div",LGt,[n.spinner&&n.spinner.component?(S(),Z(xn(n.spinner.component),_r(xs({key:0},n.spinner.props)),null,16)):(S(),Z(u,{key:1,size:"40px",border:"5px"}))])):ne("",!0),!n.isHeaderVisible&&(n.bimdataLogoOnSingleWindow||n.viewerVersionOnSingleWindow)?(S(),F("div",FGt,[n.bimdataLogoOnSingleWindow?(S(),Z(d,{key:0,name:"logo"})):ne("",!0),n.viewerVersionOnSingleWindow?(S(),F("div",OGt,K(n.version),1)):ne("",!0)])):ne("",!0)],544)}const UGt=V(_Gt,[["render",NGt],["__scopeId","data-v-0c1c941a"]]),VGt=["src"],HGt={class:"bimdata-models__header"},zGt={key:0,class:"bimdata-models__header__loader"},jGt={class:"bimdata-models__header__picto"},GGt={class:"bimdata-models__header__name"},qGt={key:0,class:"bimdata-models__header__name--empty"},QGt={key:1,class:"bimdata-models__header__name--empty"},KGt={key:3},JGt=["onMousemove","onClick"],a1e=V({__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=mt("$viewer"),n=Ae(),o=Ae(0),r=Ae(0),s=Ae(),a=on([]),l=Ae(!1),c=$e(()=>t.localContext.loadedModels),u=$e(()=>t.localContext.loadedModelIds),d=$e(()=>t.localContext.loadingModelIds),h=$e(()=>t.localContext.multiModel),f=$e(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(I=>c.value.find(E=>{var B;return((B=E.document)==null?void 0:B.head_id)!=null&&E.document.head_id===I.document.id})??I)),A=M=>u.value.includes(M),p=M=>d.value.includes(M),g=$e(()=>{var E;const{x:M,y:I}=((E=s.value)==null?void 0:E.getBoundingClientRect())??{x:0,y:0};return`top:${r.value-I}px; left:${o.value-M}px;`}),m=M=>{!h.value&&A(M.id)||d.value.length>0||(t.localContext.loadedModelIds.includes(M.id)?t.localContext.unloadModels([M.id]):t.localContext.loadModels([M.id]))},w=M=>{switch(M){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(M,I)=>{M!=null&&M.viewer_360_file&&(o.value=I.clientX,r.value=I.clientY),n.value=M==null?void 0:M.viewer_360_file},v=async M=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,M)).filter(E=>t.state.models.some(B=>B.archived)||!E.archived).sort(ec("updated_at",!1))}catch(I){console.error("[Models] Cannot get project models. Error: ",I)}finally{l.value=!1}return[]},x=M=>{var I;return((I=M.children)==null?void 0:I.some(E=>A(E.id)))??!1};return v(t.localContext.modelTypes).then(M=>{a.value=M}),(M,I)=>{const E=k("BIMDataSpinner"),B=k("BIMDataIconModel3D"),T=k("BIMDataTextbox"),P=k("BIMDataCheckbox"),R=k("BIMDataRadio"),L=k("BIMDataIcon"),N=k("BIMDataDropdownList");return S(),F("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-models",{"bimdata-models--window-positioning":i.windowPositioning}])},[n.value?(S(),F("div",{key:0,class:"bimdata-models__preview",style:ue(g.value)},[b("img",{src:n.value},null,8,VGt)],4)):ne("",!0),D(N,{style:ue(`--bimdata-models-width: ${i.width};`),width:i.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:U(({isOpen:z})=>[b("div",HGt,[l.value||d.value.length>0?(S(),F("div",zGt,[D(E)])):(S(),F(ct,{key:1},[b("div",jGt,[D(B)]),b("div",{class:ce(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":u.value.length===0}])},[b("span",null,K(u.value.length),1)],2),b("div",GGt,[f.value.length===0?(S(),F("span",qGt,K(M.$t("model.no_model")),1)):u.value.length===0?(S(),F("span",QGt,K(M.$t("model.no_loaded_model")),1)):u.value.length===1?(S(),Z(T,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):u.value.length>1?(S(),F("span",KGt,K(M.$t("model.selected_models")),1)):ne("",!0)])],64))])]),element:U(({element:z,close:H})=>[b("div",{class:"bimdata-models__model",onMousemove:q=>i.preview&&y(z,q),onMouseout:I[0]||(I[0]=q=>i.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&H()}},[h.value?(S(),Z(P,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])):(S(),Z(R,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])),D(L,{margin:"0 calc(var(--spacing-unit) / 2)",name:w(z.status),size:"xs",class:ce({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),D(T,{class:ce({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||d.value.length>0}),text:z.name,width:`calc(100% -
|
|
5530
5530
|
${h.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),z.document&&!z.document.is_head_version?(S(),Z(L,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):ne("",!0)],40,JGt),p(z.id)?(S(),Z(E,{key:0,class:"bimdata-models__model__spinner"})):ne("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},[["__scopeId","data-v-34c2cf79"]]),WGt="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",ZGt=["src"],XGt={key:0,class:"bimdata-multi-model-loader__header-container"},YGt={key:0,class:"bimdata-multi-model-loader__header__loader"},$Gt={class:"bimdata-multi-model-loader__header__picto"},eqt=["src"],tqt={class:"bimdata-multi-model-loader__header__name"},iqt={key:0,class:"bimdata-multi-model-loader__header__name--empty"},nqt={key:1,class:"bimdata-multi-model-loader__header__name--empty"},oqt={key:3},sqt={key:1,class:"bimdata-multi-model-loader__main"},rqt=["onMousemove","onClick"],aqt=V({__name:"BIMDataMultiModelLoader",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=mt("$viewer"),n=Ae(),o=Ae(0),r=Ae(0),s=Ae(),a=on([]),l=Ae(!1),c=Ae(!0),u=L=>{L.key==="Escape"?c.value=!0:L.key==="Enter"&&E()};gt(c,L=>{L?(window.removeEventListener("keydown",u),y.clear(),w.clear(),n.value=null):window.addEventListener("keydown",u)});const d=$e(()=>t.localContext.loadedModels),h=$e(()=>t.localContext.loadedModelIds),f=$e(()=>t.localContext.loadingModelIds),A=$e(()=>t.localContext.multiModel),p=$e(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(N=>d.value.find(z=>{var H;return((H=z.document)==null?void 0:H.head_id)!=null&&z.document.head_id===N.document.id})??N)),g=L=>h.value.includes(L),m=L=>f.value.includes(L),w=$o(new Set),y=$o(new Set),v=L=>{var N;return((N=L.children)==null?void 0:N.some(z=>g(z.id)))??!1},x=L=>(g(L.id)||v(L)||w.has(L))&&!y.has(L),M=$e(()=>{const{x:L,y:N}=s.value.getBoundingClientRect();return`top:${r.value-N}px; left:${o.value-L}px;`}),I=L=>{L.status==="C"&&(!A.value&&g(L.id)||(g(L.id)?y.has(L)?y.delete(L):y.add(L):w.has(L)?w.delete(L):w.add(L)))},E=()=>{w.size>0&&t.localContext.loadModels(Array.from(w).map(L=>L.id)),y.size>0&&t.localContext.unloadModels(Array.from(y).map(L=>L.id)),c.value=!0},B=L=>{switch(L){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},T=L=>L.document&&!L.document.is_head_version,P=(L,N)=>{!e.preview||c.value||(L!=null&&L.viewer_360_file&&(o.value=N.clientX,r.value=N.clientY),n.value=L==null?void 0:L.viewer_360_file)};return(async L=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,L)).filter(z=>t.state.models.some(H=>H.archived)||!z.archived).sort(ec("updated_at",!1))}catch(N){console.error("[Models] Cannot get project models. Error: ",N)}finally{l.value=!1}return[]})(t.localContext.modelTypes).then(L=>{a.value=L}),(L,N)=>{const z=k("BIMDataSpinner"),H=k("BIMDataTextbox"),q=k("BIMDataIconChevron"),J=k("BIMDataButton"),te=k("BIMDataIconFileIfcPolychrome"),se=k("BIMDataCheckbox"),Se=k("BIMDataRadio"),ye=k("BIMDataIcon"),Ne=k("BIMDataPaginatedList"),we=di("click-away");return S(),F("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-multi-model-loader",{"bimdata-multi-model-loader--window-positioning":i.windowPositioning}])},[n.value?(S(),F("div",{key:0,class:"bimdata-multi-model-loader__preview",style:ue(M.value)},[b("img",{src:n.value},null,8,ZGt)],4)):ne("",!0),D(mi,{name:"fade",mode:"out-in"},{default:U(()=>[c.value?(S(),F("div",XGt,[ht(L.$slots,"left",{},void 0,!0),b("div",{class:"bimdata-multi-model-loader__header",onClick:N[0]||(N[0]=Me=>c.value=!1)},[l.value||f.value.length>0?(S(),F("div",YGt,[D(z)])):(S(),F(ct,{key:1},[b("div",$Gt,[b("img",{src:wt(WGt),alt:"file icon"},null,8,eqt)]),b("div",{class:ce(["bimdata-multi-model-loader__header__number bimdata-info-length",{"bimdata-multi-model-loader__header__number--empty":h.value.length===0}])},[b("span",null,K(h.value.length),1)],2),b("div",tqt,[p.value.length===0?(S(),F("span",iqt,K(L.$t("model.no_model")),1)):h.value.length===0?(S(),F("span",nqt,K(L.$t("model.no_loaded_model")),1)):h.value.length===1?(S(),Z(H,{key:2,text:d.value[0].name,tooltip:c.value,width:"233px"},null,8,["text","tooltip"])):h.value.length>1?(S(),F("span",oqt,K(L.$t("model.selected_models")),1)):ne("",!0)]),D(J,{color:"default",icon:"",radius:"",fill:"",width:"21px",height:"21px"},{default:U(()=>[D(q,{size:"xxxs"})]),_:1})],64))]),ht(L.$slots,"right",{},void 0,!0)])):At((S(),F("div",sqt,[D(Ne,{list:p.value,"per-page":10},{element:U(({element:Me})=>[b("div",{class:ce(["bimdata-multi-model-loader__main__model",{"bimdata-multi-model-loader__main__model--disabled":Me.status!=="C"}]),onMousemove:Oe=>P(Me,Oe),onMouseout:N[1]||(N[1]=Oe=>P()),onClick:Oe=>I(Me)},[D(te,{fill:"",color:"default",size:"xs"}),A.value?(S(),Z(se,{key:0,"model-value":x(Me),disabled:Me.status!=="C"},null,8,["model-value","disabled"])):(S(),Z(Se,{key:1,"model-value":x(Me),disabled:Me.status!=="C"},null,8,["model-value","disabled"])),D(H,{class:ce({"bimdata-multi-model-loader__main__model__name":!0,"bimdata-multi-model-loader__main__model__name--disabled":Me.status!=="C"}),text:Me.name,width:T(Me)?"333px":"363px"},null,8,["class","text","width"]),T(Me)?(S(),Z(ye,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):ne("",!0),m(Me.id)?(S(),Z(z,{key:3,class:"bimdata-multi-model-loader__main__model__spinner"})):(S(),Z(ye,{key:4,name:B(Me.status),size:"xs",class:ce({"fill-success":Me.status==="C","fill-high":Me.status==="E"})},null,8,["name","class"]))],42,rqt)]),_:1},8,["list"]),D(J,{class:"bimdata-multi-model-loader__main__validate",width:"93px",color:"primary",fill:"",radius:"",disabled:wt(w).size===0&&wt(y).size===0,onClick:E},{default:U(()=>[it(K(L.$t("global.validate")),1)]),_:1},8,["disabled"])])),[[we,()=>c.value=!0]])]),_:3})],2)}}},[["__scopeId","data-v-44e6af66"]]),lqt={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function cqt(i,e,t,n,o,r){const s=k("BIMDataIllustration");return S(),F("div",{class:"bimdata__no-model",style:ue({"--no-model--opacity":o.shown?1:0})},[D(s,{name:"emptyViewer",x:"90",y:"90"}),b("span",null,K(i.$t("model.select_model")),1)],4)}const l1e=V(lqt,[["render",cqt],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=cH;class uqt{constructor(e={}){var o,r;const{api:t={},ui:n}=e;this.uiCfg=n,t.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),t.apiUrl="https://api.bimdata.io"),t.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),t.archiveUrl="https://archive.bimdata.io"),t.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),t.pdfBackendUrl="https://pdf-backend.bimdata.io"),t.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),t.modelIds===void 0&&(t.modelIds=t.ifcIds)),t.modelIds||(t.modelIds=[]),(o=t.offline)!=null&&o.dataFile&&(t.offline.data=t.offline.dataFile),this.$viewer=new $jt(e),(r=t.offline)!=null&&r.enabled?this.$viewer.api.enableOfflineMode(t.offline.data,t.offline.options).then(()=>this.state.loadModels(t.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(t.modelIds).finally(()=>this.$viewer.globalContext.loadingProcessEnd())),this.vueApp=null}get state(){return this.$viewer.state}get api(){return this.$viewer.api}async mount(e,t="3d"){var u;const{$viewer:n}=this;await n.api.ready;try{const d=await n.api.apiClient.collaborationApi.checkProjectAccess(n.api.cloudId,n.api.projectId);n.api.permissions=r1e(d)}catch{n.api.permissions=r1e()}const o=this.api.accessToken,{i18n:r}=n;r.registerTranslations(n.pluginManager.pluginTranslations),n.layout.apply(t);const s={i18n:r.i18nVuePlugin,data(){return{accessToken:o}},render(){return Wn(UGt,{style:"height: 100%"})}},a=Ag(s).use(r.i18nVuePlugin).use(lGt()).use(rGt({i18nPlugin:r.i18nVuePlugin})).use(oGt({apiClient:n.api.apiClient,i18nPlugin:r.i18nVuePlugin}));a.provide("$viewer",n),a.component("BIMDataModelLoader",a1e),a.component("BIMDataMultiModelLoader",aqt),a.component("BIMDataNoModelWindowPlaceHolder",l1e),a.component("BIMDataStoreySelector",lI),a.component("ModelsLoader",a1e),a.component("NoModelWindowPlaceHolder",l1e);const l=e instanceof HTMLElement?e:document.querySelector(e);l&&(l.style.height="100%");const c=a.mount(e);return c.$viewer=n,eGt(c.$el,(u=this.uiCfg)==null?void 0:u.style),typeof window<"u"&&(window.bimdataViewer=c),this.vueApp=a,c}destroy(){var e;(e=this.vueApp)==null||e.unmount()}setLocale(e){if(!IH.includes(e))throw new Error(`Viewer available locales are ${IH.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 t=await this.state.loadModels(e);return this.$viewer.globalContext.loadingProcessEnd(),t}loadIfcs(e){return console.warn("[BIMData Viewer] DEPRECATED - Viewer - please use the loadModels method instead of loadIfcs."),this.loadModels(e)}}const c1e=(i={})=>new uqt(i);return window.makeBIMDataViewer=c1e,c1e});
|