@vcmap/ui 5.0.0-rc.8 → 5.0.0-rc.9

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.
Files changed (178) hide show
  1. package/README.md +69 -22
  2. package/build/build.js +0 -3
  3. package/build/buildHelpers.js +0 -1
  4. package/build/commonViteConfig.js +1 -1
  5. package/config/dev.config.json +4 -4
  6. package/dist/assets/{cesium.6b5bb6.js → cesium.4e40f4.js} +0 -0
  7. package/dist/assets/cesium.js +1 -1
  8. package/dist/assets/core.edcf5e.js +4 -0
  9. package/dist/assets/core.js +1 -1
  10. package/dist/assets/{index.0be2842f.js → index.889d0f3a.js} +1 -1
  11. package/dist/assets/{ol.0561aa.js → ol.246fd4.js} +0 -0
  12. package/dist/assets/ol.js +1 -1
  13. package/dist/assets/ui.df4f6d.css +1 -0
  14. package/dist/assets/ui.df4f6d.js +43 -0
  15. package/dist/assets/ui.js +1 -1
  16. package/dist/assets/{vue-composition-api.f926fa.js → vue-composition-api.a520f3.js} +1 -1
  17. package/dist/assets/vue-composition-api.js +2 -2
  18. package/dist/assets/{vue.ddcb6b.js → vue.2cee44.js} +0 -0
  19. package/dist/assets/vue.js +1 -1
  20. package/dist/assets/{vuetify.d21163.css → vuetify.cc817b.css} +0 -0
  21. package/dist/assets/{vuetify.d21163.js → vuetify.cc817b.js} +1 -1
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +1 -1
  24. package/index.js +39 -1
  25. package/package.json +2 -3
  26. package/plugins/@vcmap/pluginExample/index.js +5 -5
  27. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +1 -1
  28. package/plugins/@vcmap/project-selector/ContextsListComponent.vue +1 -1
  29. package/plugins/@vcmap/project-selector/index.js +5 -5
  30. package/plugins/@vcmap/project-selector/package.json +1 -2
  31. package/plugins/@vcmap/theme-changer/index.js +6 -6
  32. package/plugins/buttonExamples/ButtonExamples.vue +1 -1
  33. package/plugins/buttonExamples/index.js +5 -4
  34. package/plugins/categoryTest/Categories.vue +1 -1
  35. package/plugins/categoryTest/Category.vue +1 -1
  36. package/plugins/categoryTest/index.js +5 -5
  37. package/plugins/example/index.js +33 -14
  38. package/plugins/test/allIconsComponent.vue +34 -0
  39. package/plugins/test/editor.vue +1 -1
  40. package/plugins/test/index.js +40 -17
  41. package/plugins/test/toolbox-data.js +106 -26
  42. package/plugins/test/windowManagerExample.vue +1 -2
  43. package/src/actions/actionHelper.js +2 -1
  44. package/src/actions/styleSelector.vue +1 -1
  45. package/src/application/Navbar.vue +18 -6
  46. package/src/application/VcsApp.vue +34 -28
  47. package/src/assets/logo-mobile.svg +9 -0
  48. package/src/assets/logo.svg +23 -23
  49. package/src/components/buttons/VcsActionButtonList.vue +99 -0
  50. package/src/components/buttons/VcsButton.vue +201 -0
  51. package/src/components/form-inputs-controls/VcsCheckbox.vue +73 -0
  52. package/src/components/form-inputs-controls/VcsColorPicker.vue +81 -0
  53. package/src/components/form-inputs-controls/VcsFormSection.vue +46 -0
  54. package/src/components/form-inputs-controls/VcsLabel.vue +38 -0
  55. package/src/components/form-inputs-controls/VcsSelect.vue +97 -0
  56. package/src/components/form-inputs-controls/VcsTextArea.vue +130 -0
  57. package/src/components/form-inputs-controls/VcsTextField.vue +129 -0
  58. package/src/components/form-output/VcsFormattedNumber.vue +103 -0
  59. package/src/components/lists/VcsActionList.vue +100 -0
  60. package/src/components/lists/VcsTreeview.vue +109 -0
  61. package/src/components/lists/VcsTreeviewLeaf.vue +105 -0
  62. package/src/components/lists/VcsTreeviewSearchbar.vue +156 -0
  63. package/src/components/notification/VcsBadge.vue +27 -0
  64. package/src/components/notification/VcsTooltip.vue +154 -0
  65. package/src/components/notification/validation.js +19 -0
  66. package/src/contentTree/LayerTree.vue +1 -1
  67. package/src/contentTree/contentTreeCollection.js +6 -2
  68. package/src/icons/+all.js +359 -0
  69. package/src/icons/2DAreaIcon.vue +21 -0
  70. package/src/icons/2DDistanceIcon.vue +18 -0
  71. package/src/icons/3DAreaIcon.vue +21 -0
  72. package/src/icons/3DDistanceIcon.vue +18 -0
  73. package/src/icons/3DHeightIcon.vue +18 -0
  74. package/src/icons/AngleIcon.vue +8 -0
  75. package/src/icons/AssociationsIcon.vue +34 -0
  76. package/src/icons/AxisIcon.vue +10 -0
  77. package/src/icons/BoundingBoxIcon.vue +15 -0
  78. package/src/icons/CheckboxCheckedIcon.vue +16 -0
  79. package/src/icons/CheckboxIcon.vue +23 -0
  80. package/src/icons/CheckboxIndeterminateIcon.vue +24 -0
  81. package/src/icons/CircleIcon.vue +10 -0
  82. package/src/icons/ColorSwatchIcon.vue +17 -0
  83. package/src/icons/CommentIcon.vue +19 -0
  84. package/src/icons/CompassIcon.vue +8 -0
  85. package/src/icons/ComponentsIcon.vue +7 -0
  86. package/src/icons/ConeIcon.vue +11 -0
  87. package/src/icons/DimensionsHouseIcon.vue +14 -0
  88. package/src/icons/ElevationProfileIcon.vue +111 -0
  89. package/src/icons/ExportAreaIcon.vue +7 -0
  90. package/src/icons/ExportFlightIcon.vue +7 -0
  91. package/src/icons/ExportIcon.vue +8 -0
  92. package/src/icons/ExternalLinkIcon.vue +10 -0
  93. package/src/icons/EyeIcon.vue +7 -0
  94. package/src/icons/FastForwardIcon.vue +7 -0
  95. package/src/icons/FilterIcon.vue +8 -0
  96. package/src/icons/GlobeNatureIcon.vue +14 -0
  97. package/src/icons/HealthCareIndustriesIcon.vue +118 -0
  98. package/src/icons/HelpIcon.vue +7 -0
  99. package/src/icons/HomePointIcon.vue +8 -0
  100. package/src/icons/HospitalsIcon.vue +237 -0
  101. package/src/icons/HouseIcon.vue +25 -0
  102. package/src/icons/ImportIcon.vue +8 -0
  103. package/src/icons/InfoIcon.vue +10 -0
  104. package/src/icons/KebabIcon.vue +36 -0
  105. package/src/icons/LabelIcon.vue +7 -0
  106. package/src/icons/LayersIcon.vue +26 -0
  107. package/src/icons/LegendIcon.vue +65 -0
  108. package/src/icons/LineIcon.vue +7 -0
  109. package/src/icons/LinkIcon.vue +7 -0
  110. package/src/icons/MapIcon.vue +8 -0
  111. package/src/icons/MenuIcon.vue +34 -0
  112. package/src/icons/MinusIcon.vue +8 -0
  113. package/src/icons/ObjectAttributeIcon.vue +18 -0
  114. package/src/icons/ObjectSelectIcon.vue +8 -0
  115. package/src/icons/ObliqueViewIcon.vue +13 -0
  116. package/src/icons/PdfIcon.vue +10 -0
  117. package/src/icons/PedestrianIcon.vue +8 -0
  118. package/src/icons/PenIcon.vue +14 -0
  119. package/src/icons/PlayCircleIcon.vue +10 -0
  120. package/src/icons/PlusIcon.vue +9 -0
  121. package/src/icons/PoiIcon.vue +7 -0
  122. package/src/icons/PointSelectIcon.vue +7 -0
  123. package/src/icons/PolygonIcon.vue +38 -0
  124. package/src/icons/PresentationModeIcon.vue +7 -0
  125. package/src/icons/ProgressIcon.vue +24 -0
  126. package/src/icons/QueryIcon.vue +15 -0
  127. package/src/icons/RectangleIcon.vue +9 -0
  128. package/src/icons/ReturnIcon.vue +7 -0
  129. package/src/icons/RewindIcon.vue +6 -0
  130. package/src/icons/SearchIcon.vue +8 -0
  131. package/src/icons/ShadowIcon.vue +9 -0
  132. package/src/icons/ShapesIcon.vue +28 -0
  133. package/src/icons/ShareIcon.vue +22 -0
  134. package/src/icons/SimpleCircleFilledIcon.vue +15 -0
  135. package/src/icons/SimpleCircleHalfFilledIcon.vue +12 -0
  136. package/src/icons/SimpleCircleOutlinedIcon.vue +15 -0
  137. package/src/icons/SkipNextIcon.vue +7 -0
  138. package/src/icons/SkipPreviousIcon.vue +9 -0
  139. package/src/icons/SplitViewIcon.vue +19 -0
  140. package/src/icons/TextStyleIcon.vue +14 -0
  141. package/src/icons/ThreeDimensionsIcon.vue +7 -0
  142. package/src/icons/ToolsIcon.vue +35 -0
  143. package/src/icons/TouchIcon.vue +8 -0
  144. package/src/icons/TrashCanIcon.vue +7 -0
  145. package/src/icons/TriangleIcon.vue +15 -0
  146. package/src/icons/TwoDimensionsIcon.vue +8 -0
  147. package/src/icons/UploadIcon.vue +14 -0
  148. package/src/icons/VideoRecorderIcon.vue +14 -0
  149. package/src/icons/WalkingIcon.vue +7 -0
  150. package/src/icons/WallIcon.vue +14 -0
  151. package/src/manager/buttonManager.js +5 -53
  152. package/src/manager/navbarManager.js +81 -0
  153. package/src/manager/toolbox/ToolboxGroupComponent.vue +128 -0
  154. package/src/manager/toolbox/ToolboxManager.vue +119 -76
  155. package/src/manager/toolbox/toolboxManager.js +204 -0
  156. package/src/manager/window/WindowComponentHeader.vue +1 -1
  157. package/src/manager/window/WindowManager.vue +18 -1
  158. package/src/manager/window/windowManager.js +3 -5
  159. package/src/navigation/mapNavigation.vue +9 -5
  160. package/src/navigation/orientationToolsButton.vue +1 -1
  161. package/src/navigation/tiltSlider.vue +1 -1
  162. package/src/styles/_theming.scss +10 -0
  163. package/src/styles/main.scss +3 -0
  164. package/src/styles/variables.scss +70 -0
  165. package/src/styles/vcsFont.scss +5 -0
  166. package/src/styles/vcsGrid.scss +4 -0
  167. package/src/vcsUiApp.js +4 -3
  168. package/src/vuePlugins/vuetify.js +1 -1
  169. package/dist/assets/core.98f9bb.js +0 -4
  170. package/dist/assets/ui.b7c1e3.css +0 -1
  171. package/dist/assets/ui.b7c1e3.js +0 -39
  172. package/dist/assets/uicomponents.682c5f.css +0 -1
  173. package/dist/assets/uicomponents.682c5f.js +0 -32
  174. package/dist/assets/uicomponents.js +0 -1
  175. package/lib/uicomponents.js +0 -1
  176. package/src/manager/toolbox/ToolboxMultiSelectButton.vue +0 -96
  177. package/src/manager/toolbox/ToolboxSingleSelectButton.vue +0 -98
  178. package/src/manager/toolbox/toolbox-manager.js +0 -203
package/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui.b7c1e3.js";
1
+ export * from "./ui.df4f6d.js";
@@ -1,4 +1,4 @@
1
- import un from"./vue.ddcb6b.js";var on=function(e){return Object.prototype.toString.call(e)};function Se(e){return typeof e=="function"&&/native code/.test(e.toString())}var be=typeof Symbol!="undefined"&&Se(Symbol)&&typeof Reflect!="undefined"&&Se(Reflect.ownKeys),I=function(e){return e};function y(e,n,r){var t=r.get,i=r.set;Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:t||I,set:i||I})}function J(e,n,r,t){Object.defineProperty(e,n,{value:r,enumerable:!!t,writable:!0,configurable:!0})}function C(e,n){return Object.hasOwnProperty.call(e,n)}function an(e,n){if(!e)throw new Error("[vue-composition-api] ".concat(n))}function S(e){return Array.isArray(e)}var fn=Object.prototype.toString,$e=function(e){return fn.call(e)},cn=function(e){return $e(e)==="[object Map]"},sn=function(e){return $e(e)==="[object Set]"},ln=4294967295;function me(e){var n=parseFloat(String(e));return n>=0&&Math.floor(n)===n&&isFinite(e)&&n<=ln}function F(e){return e!==null&&typeof e=="object"}function O(e){return on(e)==="[object Object]"}function $(e){return typeof e=="function"}function vn(e,n){un.util.warn(e,n)}function dn(e,n,r){if(typeof window!="undefined"&&typeof console!="undefined")console.error(e);else throw e}/*! *****************************************************************************
1
+ import un from"./vue.2cee44.js";var on=function(e){return Object.prototype.toString.call(e)};function Se(e){return typeof e=="function"&&/native code/.test(e.toString())}var be=typeof Symbol!="undefined"&&Se(Symbol)&&typeof Reflect!="undefined"&&Se(Reflect.ownKeys),I=function(e){return e};function y(e,n,r){var t=r.get,i=r.set;Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:t||I,set:i||I})}function J(e,n,r,t){Object.defineProperty(e,n,{value:r,enumerable:!!t,writable:!0,configurable:!0})}function C(e,n){return Object.hasOwnProperty.call(e,n)}function an(e,n){if(!e)throw new Error("[vue-composition-api] ".concat(n))}function S(e){return Array.isArray(e)}var fn=Object.prototype.toString,$e=function(e){return fn.call(e)},cn=function(e){return $e(e)==="[object Map]"},sn=function(e){return $e(e)==="[object Set]"},ln=4294967295;function me(e){var n=parseFloat(String(e));return n>=0&&Math.floor(n)===n&&isFinite(e)&&n<=ln}function F(e){return e!==null&&typeof e=="object"}function O(e){return on(e)==="[object Object]"}function $(e){return typeof e=="function"}function vn(e,n){un.util.warn(e,n)}function dn(e,n,r){if(typeof window!="undefined"&&typeof console!="undefined")console.error(e);else throw e}/*! *****************************************************************************
2
2
  Copyright (c) Microsoft Corporation.
3
3
 
4
4
  Permission to use, copy, modify, and/or distribute this software for any
@@ -1,2 +1,2 @@
1
- export * from "./vue-composition-api.f926fa.js";
2
- export { default } from "./vue-composition-api.f926fa.js";
1
+ export * from "./vue-composition-api.a520f3.js";
2
+ export { default } from "./vue-composition-api.a520f3.js";
File without changes
@@ -1 +1 @@
1
- export { default } from "./vue.ddcb6b.js";
1
+ export { default } from "./vue.2cee44.js";
@@ -10,7 +10,7 @@ function loadCss(href) {
10
10
  elem.onerror = reject;
11
11
  document.head.appendChild(elem);
12
12
  });
13
- } await loadCss('./assets/vuetify.d21163.css');var Qr=Object.defineProperty,Jr=Object.defineProperties;var ta=Object.getOwnPropertyDescriptors;var ae=Object.getOwnPropertySymbols;var Xi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Ui=(t,e,i)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,l=(t,e)=>{for(var i in e||(e={}))Xi.call(e,i)&&Ui(t,i,e[i]);if(ae)for(var i of ae(e))Ki.call(e,i)&&Ui(t,i,e[i]);return t},p=(t,e)=>Jr(t,ta(e));var Z=(t,e)=>{var i={};for(var s in t)Xi.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(t!=null&&ae)for(var s of ae(t))e.indexOf(s)<0&&Ki.call(t,s)&&(i[s]=t[s]);return i};import $ from"./vue.ddcb6b.js";var qu="";const Ye=$.extend().extend({name:"themeable",provide(){return{theme:this.themeableProvide}},inject:{theme:{default:{isDark:!1}}},props:{dark:{type:Boolean,default:null},light:{type:Boolean,default:null}},data(){return{themeableProvide:{isDark:!1}}},computed:{appIsDark(){return this.$vuetify.theme.dark||!1},isDark(){return this.dark===!0?!0:this.light===!0?!1:this.theme.isDark},themeClasses(){return{"theme--dark":this.isDark,"theme--light":!this.isDark}},rootIsDark(){return this.dark===!0?!0:this.light===!0?!1:this.appIsDark},rootThemeClasses(){return{"theme--dark":this.rootIsDark,"theme--light":!this.rootIsDark}}},watch:{isDark:{handler(t,e){t!==e&&(this.themeableProvide.isDark=this.isDark)},immediate:!0}}});var S=Ye;function qi(t){const e=l(l({},t.props),t.injections),i=Ye.options.computed.isDark.call(e);return Ye.options.computed.themeClasses.call({isDark:i})}function f(...t){return $.extend({mixins:t})}var ea=f(S).extend({name:"v-app",props:{dark:{type:Boolean,default:void 0},id:{type:String,default:"app"},light:{type:Boolean,default:void 0}},computed:{isDark(){return this.$vuetify.theme.dark}},beforeCreate(){if(!this.$vuetify||this.$vuetify===this.$root)throw new Error("Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object")},render(t){const e=t("div",{staticClass:"v-application--wrap"},this.$slots.default);return t("div",{staticClass:"v-application",class:l({"v-application--is-rtl":this.$vuetify.rtl,"v-application--is-ltr":!this.$vuetify.rtl},this.themeClasses),attrs:{"data-app":!0},domProps:{id:this.id}},[e])}}),Zu="",Qu="",Ju="";function Zi(t){return function(e,i){for(const s in i)Object.prototype.hasOwnProperty.call(e,s)||this.$delete(this.$data[t],s);for(const s in e)this.$set(this.$data[t],s,e[s])}}var wt=$.extend({data:()=>({attrs$:{},listeners$:{}}),created(){this.$watch("$attrs",Zi("attrs$"),{immediate:!0}),this.$watch("$listeners",Zi("listeners$"),{immediate:!0})}});function je(t,e={}){if(je.installed)return;je.installed=!0,$!==t&&X(`Multiple instances of Vue detected
13
+ } await loadCss('./assets/vuetify.cc817b.css');var Qr=Object.defineProperty,Jr=Object.defineProperties;var ta=Object.getOwnPropertyDescriptors;var ae=Object.getOwnPropertySymbols;var Xi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Ui=(t,e,i)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,l=(t,e)=>{for(var i in e||(e={}))Xi.call(e,i)&&Ui(t,i,e[i]);if(ae)for(var i of ae(e))Ki.call(e,i)&&Ui(t,i,e[i]);return t},p=(t,e)=>Jr(t,ta(e));var Z=(t,e)=>{var i={};for(var s in t)Xi.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(t!=null&&ae)for(var s of ae(t))e.indexOf(s)<0&&Ki.call(t,s)&&(i[s]=t[s]);return i};import $ from"./vue.2cee44.js";var qu="";const Ye=$.extend().extend({name:"themeable",provide(){return{theme:this.themeableProvide}},inject:{theme:{default:{isDark:!1}}},props:{dark:{type:Boolean,default:null},light:{type:Boolean,default:null}},data(){return{themeableProvide:{isDark:!1}}},computed:{appIsDark(){return this.$vuetify.theme.dark||!1},isDark(){return this.dark===!0?!0:this.light===!0?!1:this.theme.isDark},themeClasses(){return{"theme--dark":this.isDark,"theme--light":!this.isDark}},rootIsDark(){return this.dark===!0?!0:this.light===!0?!1:this.appIsDark},rootThemeClasses(){return{"theme--dark":this.rootIsDark,"theme--light":!this.rootIsDark}}},watch:{isDark:{handler(t,e){t!==e&&(this.themeableProvide.isDark=this.isDark)},immediate:!0}}});var S=Ye;function qi(t){const e=l(l({},t.props),t.injections),i=Ye.options.computed.isDark.call(e);return Ye.options.computed.themeClasses.call({isDark:i})}function f(...t){return $.extend({mixins:t})}var ea=f(S).extend({name:"v-app",props:{dark:{type:Boolean,default:void 0},id:{type:String,default:"app"},light:{type:Boolean,default:void 0}},computed:{isDark(){return this.$vuetify.theme.dark}},beforeCreate(){if(!this.$vuetify||this.$vuetify===this.$root)throw new Error("Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object")},render(t){const e=t("div",{staticClass:"v-application--wrap"},this.$slots.default);return t("div",{staticClass:"v-application",class:l({"v-application--is-rtl":this.$vuetify.rtl,"v-application--is-ltr":!this.$vuetify.rtl},this.themeClasses),attrs:{"data-app":!0},domProps:{id:this.id}},[e])}}),Zu="",Qu="",Ju="";function Zi(t){return function(e,i){for(const s in i)Object.prototype.hasOwnProperty.call(e,s)||this.$delete(this.$data[t],s);for(const s in e)this.$set(this.$data[t],s,e[s])}}var wt=$.extend({data:()=>({attrs$:{},listeners$:{}}),created(){this.$watch("$attrs",Zi("attrs$"),{immediate:!0}),this.$watch("$listeners",Zi("listeners$"),{immediate:!0})}});function je(t,e={}){if(je.installed)return;je.installed=!0,$!==t&&X(`Multiple instances of Vue detected
14
14
  See https://github.com/vuetifyjs/vuetify/issues/4068
15
15
 
16
16
  If you're seeing "$attrs is readonly", it's caused by this`);const i=e.components||{},s=e.directives||{};for(const n in s){const r=s[n];t.directive(n,r)}(function n(r){if(r){for(const a in r){const o=r[a];o&&!n(o.$_vuetify_subcomponents)&&t.component(a,o)}return!0}return!1})(i),!t.$_vuetify_installed&&(t.$_vuetify_installed=!0,t.mixin({beforeCreate(){const n=this.$options;n.vuetify?(n.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(n.vuetify.framework)):this.$vuetify=n.parent&&n.parent.$vuetify||this},beforeMount(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}class mt{constructor(){this.framework={}}init(e,i){}}class Qi extends mt{constructor(){super(...arguments);this.bar=0,this.top=0,this.left=0,this.insetFooter=0,this.right=0,this.bottom=0,this.footer=0,this.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}}}register(e,i,s){this.application[i][e]=s,this.update(i)}unregister(e,i){this.application[i][e]!=null&&(delete this.application[i][e],this.update(i))}update(e){this[e]=Object.values(this.application[e]).reduce((i,s)=>i+s,0)}}Qi.property="application";class Ne extends mt{constructor(e){super();this.xs=!1,this.sm=!1,this.md=!1,this.lg=!1,this.xl=!1,this.xsOnly=!1,this.smOnly=!1,this.smAndDown=!1,this.smAndUp=!1,this.mdOnly=!1,this.mdAndDown=!1,this.mdAndUp=!1,this.lgOnly=!1,this.lgAndDown=!1,this.lgAndUp=!1,this.xlOnly=!1,this.name="xs",this.height=0,this.width=0,this.mobile=!0,this.resizeTimeout=0;const{mobileBreakpoint:i,scrollBarWidth:s,thresholds:n}=e[Ne.property];this.mobileBreakpoint=i,this.scrollBarWidth=s,this.thresholds=n}init(){this.update(),typeof window!="undefined"&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}update(e=!1){const i=e?0:this.getClientHeight(),s=e?0:this.getClientWidth(),n=s<this.thresholds.xs,r=s<this.thresholds.sm&&!n,a=s<this.thresholds.md-this.scrollBarWidth&&!(r||n),o=s<this.thresholds.lg-this.scrollBarWidth&&!(a||r||n),h=s>=this.thresholds.lg-this.scrollBarWidth;switch(this.height=i,this.width=s,this.xs=n,this.sm=r,this.md=a,this.lg=o,this.xl=h,this.xsOnly=n,this.smOnly=r,this.smAndDown=(n||r)&&!(a||o||h),this.smAndUp=!n&&(r||a||o||h),this.mdOnly=a,this.mdAndDown=(n||r||a)&&!(o||h),this.mdAndUp=!(n||r)&&(a||o||h),this.lgOnly=o,this.lgAndDown=(n||r||a||o)&&!h,this.lgAndUp=!(n||r||a)&&(o||h),this.xlOnly=h,!0){case n:this.name="xs";break;case r:this.name="sm";break;case a:this.name="md";break;case o:this.name="lg";break;default:this.name="xl";break}if(typeof this.mobileBreakpoint=="number"){this.mobile=s<parseInt(this.mobileBreakpoint,10);return}const c={xs:0,sm:1,md:2,lg:3,xl:4},u=c[this.name],d=c[this.mobileBreakpoint];this.mobile=u<=d}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.update.bind(this),200)}getClientWidth(){return typeof document=="undefined"?0:Math.max(document.documentElement.clientWidth,window.innerWidth||0)}getClientHeight(){return typeof document=="undefined"?0:Math.max(document.documentElement.clientHeight,window.innerHeight||0)}}Ne.property="breakpoint";const ia=t=>t,sa=t=>t**2,na=t=>t*(2-t),ra=t=>t<.5?2*t**2:-1+(4-2*t)*t,aa=t=>t**3,oa=t=>--t**3+1,Ji=t=>t<.5?4*t**3:(t-1)*(2*t-2)*(2*t-2)+1,la=t=>t**4,ha=t=>1- --t**4,ca=t=>t<.5?8*t*t*t*t:1-8*--t*t*t*t,ua=t=>t**5,da=t=>1+--t**5,pa=t=>t<.5?16*t**5:1+16*--t**5;var fa=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",linear:ia,easeInQuad:sa,easeOutQuad:na,easeInOutQuad:ra,easeInCubic:aa,easeOutCubic:oa,easeInOutCubic:Ji,easeInQuart:la,easeOutQuart:ha,easeInOutQuart:ca,easeInQuint:ua,easeOutQuint:da,easeInOutQuint:pa});function Ge(t){if(typeof t=="number")return t;let e=es(t);if(!e)throw typeof t=="string"?new Error(`Target element "${t}" not found.`):new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${ts(t)} instead.`);let i=0;for(;e;)i+=e.offsetTop,e=e.offsetParent;return i}function ma(t){const e=es(t);if(e)return e;throw typeof t=="string"?new Error(`Container element "${t}" not found.`):new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${ts(t)} instead.`)}function ts(t){return t==null?t:t.constructor.name}function es(t){return typeof t=="string"?document.querySelector(t):t&&t._isVue?t.$el:t instanceof HTMLElement?t:null}function gt(t,e={}){const i=l({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),s=ma(i.container);if(i.appOffset&&gt.framework.application){const h=s.classList.contains("v-navigation-drawer"),c=s.classList.contains("v-navigation-drawer--clipped"),{bar:u,top:d}=gt.framework.application;i.offset+=u,(!h||c)&&(i.offset+=d)}const n=performance.now();let r;typeof t=="number"?r=Ge(t)-i.offset:r=Ge(t)-Ge(s)-i.offset;const a=s.scrollTop;if(r===a)return Promise.resolve(r);const o=typeof i.easing=="function"?i.easing:fa[i.easing];if(!o)throw new TypeError(`Easing function "${i.easing}" not found.`);return new Promise(h=>requestAnimationFrame(function c(u){const d=u-n,g=Math.abs(i.duration?Math.min(d/i.duration,1):1);s.scrollTop=Math.floor(a+(r-a)*o(g));const b=(s===document.body?document.documentElement.clientHeight:s.clientHeight)+s.scrollTop>=s.scrollHeight;if(g===1||r>s.scrollTop&&b)return h(r);requestAnimationFrame(c)}))}gt.framework={},gt.init=()=>{};class is extends mt{constructor(){super();return gt}}is.property="goTo";function N(t,e="div",i){return $.extend({name:i||t.replace(/__/g,"-"),functional:!0,props:{tag:{type:String,default:e}},render(s,{data:n,props:r,children:a}){return n.staticClass=`${t} ${n.staticClass||""}`.trim(),s(r.tag,n,a)}})}function Ue(t,e,i,s=!1){const n=r=>{i(r),t.removeEventListener(e,n,s)};t.addEventListener(e,n,s)}let vt=!1;try{if(typeof window!="undefined"){const t=Object.defineProperty({},"passive",{get:()=>{vt=!0}});window.addEventListener("testListener",t,t),window.removeEventListener("testListener",t,t)}}catch(t){console.warn(t)}function ga(t,e,i,s){t.addEventListener(e,i,vt?s:!1)}function Xe(t,e,i){const s=e.length-1;if(s<0)return t===void 0?i:t;for(let n=0;n<s;n++){if(t==null)return i;t=t[e[n]]}return t==null||t[e[s]]===void 0?i:t[e[s]]}function A(t,e){if(t===e)return!0;if(t instanceof Date&&e instanceof Date&&t.getTime()!==e.getTime()||t!==Object(t)||e!==Object(e))return!1;const i=Object.keys(t);return i.length!==Object.keys(e).length?!1:i.every(s=>A(t[s],e[s]))}function y(t,e,i){return t==null||!e||typeof e!="string"?i:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Xe(t,e.split("."),i))}function ot(t,e,i){if(e==null)return t===void 0?i:t;if(t!==Object(t))return i===void 0?t:i;if(typeof e=="string")return y(t,e,i);if(Array.isArray(e))return Xe(t,e,i);if(typeof e!="function")return i;const s=e(t,i);return typeof s=="undefined"?i:s}function et(t){return Array.from({length:t},(e,i)=>i)}function Ht(t){if(!t||t.nodeType!==Node.ELEMENT_NODE)return 0;const e=+window.getComputedStyle(t).getPropertyValue("z-index");return e||Ht(t.parentNode)}const va={"&":"&amp;","<":"&lt;",">":"&gt;"};function Ft(t){return t.replace(/[&<>]/g,e=>va[e]||e)}function ya(t,e){const i={};for(let s=0;s<e.length;s++){const n=e[s];typeof t[n]!="undefined"&&(i[n]=t[n])}return i}function m(t,e="px"){if(!(t==null||t===""))return isNaN(+t)?String(t):`${Number(t)}${e}`}function oe(t){return(t||"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function ss(t){return t!==null&&typeof t=="object"}const v=Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34,shift:16});function ba(t,e){const i=t.$vuetify.icons.component;if(e.startsWith("$")){const s=`$vuetify.icons.values.${e.split("$").pop().split(".").pop()}`,n=y(t,s,e);if(typeof n=="string")e=n;else return n}return i==null?e:{component:i,props:{icon:e}}}function le(t){return Object.keys(t)}const $a=/-(\w)/g,ns=t=>t.replace($a,(e,i)=>i?i.toUpperCase():"");function Sa(t,e){const i=[];for(let s=0;s<e.length;s++)t.indexOf(e[s])<0&&i.push(e[s]);return i}function he(t){return t.charAt(0).toUpperCase()+t.slice(1)}function xa(t,e,i){const s=e[0],n=[];let r;for(let a=0;a<t.length;a++){const o=t[a],h=y(o,s,null);r!==h&&(r=h,n.push({name:h!=null?h:"",items:[]})),n[n.length-1].items.push(o)}return n}function O(t){return t!=null?Array.isArray(t)?t:[t]:[]}function Ca(t,e,i,s,n){if(e===null||!e.length)return t;const r=new Intl.Collator(s,{sensitivity:"accent",usage:"sort"});return t.sort((a,o)=>{for(let h=0;h<e.length;h++){const c=e[h];let u=y(a,c),d=y(o,c);if(i[h]&&([u,d]=[d,u]),n&&n[c]){const g=n[c](u,d);if(!g)continue;return g}if(!(u===null&&d===null)){if(u instanceof Date&&d instanceof Date)return u.getTime()-d.getTime();if([u,d]=[u,d].map(g=>(g||"").toString().toLocaleLowerCase()),u!==d)return!isNaN(u)&&!isNaN(d)?Number(u)-Number(d):r.compare(u,d)}}return 0})}function Ke(t,e,i){return t!=null&&e!=null&&typeof t!="boolean"&&t.toString().toLocaleLowerCase().indexOf(e.toLocaleLowerCase())!==-1}function wa(t,e){return!e||(e=e.toString().toLowerCase(),e.trim()==="")?t:t.filter(i=>Object.keys(i).some(s=>Ke(y(i,s),e)))}function rs(t,e,i){if(t.$slots.hasOwnProperty(e)&&t.$scopedSlots.hasOwnProperty(e)&&t.$scopedSlots[e].name)return i?"v-slot":"scoped";if(t.$slots.hasOwnProperty(e))return"normal";if(t.$scopedSlots.hasOwnProperty(e))return"scoped"}function ka(t,e){let i=0;return(...s)=>{clearTimeout(i),i=setTimeout(()=>t(...s),e)}}function Ia(t,e){let i=!1;return(...s)=>{if(!i)return i=!0,setTimeout(()=>i=!1,e),t(...s)}}function ce(t,e){return Object.keys(e).filter(i=>i.startsWith(t)).reduce((i,s)=>(i[s.replace(t,"")]=e[s],i),{})}function x(t,e="default",i,s=!1){if(t.$scopedSlots.hasOwnProperty(e))return t.$scopedSlots[e](i instanceof Function?i():i);if(t.$slots.hasOwnProperty(e)&&(!i||s))return t.$slots[e]}function qe(t,e=0,i=1){return Math.max(e,Math.min(i,t))}function Ze(t,e,i="0"){return t+i.repeat(Math.max(0,e-t.length))}function Ta(t,e=1){const i=[];let s=0;for(;s<t.length;)i.push(t.substr(s,e)),s+=e;return i}function as(t,e=!1){const i=e?1024:1e3;if(t<i)return`${t} B`;const s=e?["Ki","Mi","Gi"]:["k","M","G"];let n=-1;for(;Math.abs(t)>=i&&n<s.length-1;)t/=i,++n;return`${t.toFixed(1)} ${s[n]}B`}function os(t){return t?Object.keys(t).reduce((e,i)=>(e[ns(i)]=t[i],e),{}):{}}function Nt(t={},e={}){for(const i in e){const s=t[i],n=e[i];if(ss(s)&&ss(n)){t[i]=Nt(s,n);continue}t[i]=n}return t}function ls(t,e){return Array(t).fill(e)}function hs(t){if(t.composedPath)return t.composedPath();const e=[];let i=t.target;for(;i;){if(e.push(i),i.tagName==="HTML")return e.push(document),e.push(window),e;i=i.parentElement}return e}const _a={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"};var Aa=_a;const Da={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"};var Ba=Da;const Ea={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"};var Ma=Ea;const Va={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"};var cs=Va;const La={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"};var Oa=La;function Pa(t,e){const i={};for(const s in e)i[s]={component:t,props:{icon:e[s].split(" fa-")}};return i}var Ha=Pa("font-awesome-icon",cs),Fa=Object.freeze({mdiSvg:Aa,md:Ba,mdi:Ma,fa:cs,fa4:Oa,faSvg:Ha});class We extends mt{constructor(e){super();const{iconfont:i,values:s,component:n}=e[We.property];this.component=n,this.iconfont=i,this.values=Nt(Fa[i],s)}}We.property="icons";const us="$vuetify.",ds=Symbol("Lang fallback");function ps(t,e,i=!1,s){const n=e.replace(us,"");let r=y(t,n,ds);return r===ds&&(i?(X(`Translation key "${n}" not found in fallback`),r=e):(V(`Translation key "${n}" not found, falling back to default`),r=ps(s,e,!0,s))),r}class ze extends mt{constructor(e){super();this.defaultLocale="en";const{current:i,locales:s,t:n}=e[ze.property];this.current=i,this.locales=s,this.translator=n||this.defaultTranslator}currentLocale(e){const i=this.locales[this.current],s=this.locales[this.defaultLocale];return ps(i,e,!1,s)}t(e,...i){return e.startsWith(us)?this.translator(e,...i):this.replace(e,i)}defaultTranslator(e,...i){return this.replace(this.currentLocale(e),i)}replace(e,i){return e.replace(/\{(\d+)\}/g,(s,n)=>String(i[+n]))}}ze.property="lang";var td="",Na={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}};const Wa={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:Na},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}};class fs extends mt{constructor(e,i){super();const s=Nt({},Wa),{userPreset:n}=i,o=n,{preset:r={}}=o,a=Z(o,["preset"]);r.preset!=null&&V("Global presets do not support the **preset** option, it can be safely omitted"),i.preset=Nt(Nt(s,r),a)}}fs.property="presets";const za=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],Ra=t=>t<=.0031308?t*12.92:1.055*t**(1/2.4)-.055,Ya=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],ja=t=>t<=.04045?t/12.92:((t+.055)/1.055)**2.4;function ms(t){const e=Array(3),i=Ra,s=za;for(let n=0;n<3;++n)e[n]=Math.round(qe(i(s[n][0]*t[0]+s[n][1]*t[1]+s[n][2]*t[2]))*255);return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function ue(t){const e=[0,0,0],i=ja,s=Ya,n=i((t>>16&255)/255),r=i((t>>8&255)/255),a=i((t>>0&255)/255);for(let o=0;o<3;++o)e[o]=s[o][0]*n+s[o][1]*r+s[o][2]*a;return e}function gs(t){return!!t&&!!t.match(/^(#|var\(--|(rgb|hsl)a?\()/)}function Qe(t){let e;if(typeof t=="number")e=t;else if(typeof t=="string"){let i=t[0]==="#"?t.substring(1):t;i.length===3&&(i=i.split("").map(s=>s+s).join("")),i.length!==6&&V(`'${t}' is not a valid rgb color`),e=parseInt(i,16)}else throw new TypeError(`Colors can only be numbers or strings, recieved ${t==null?t:t.constructor.name} instead`);return e<0?(V(`Colors cannot be negative: '${t}'`),e=0):(e>16777215||isNaN(e))&&(V(`'${t}' is not a valid rgb color`),e=16777215),e}function Wt(t){let e=t.toString(16);return e.length<6&&(e="0".repeat(6-e.length)+e),"#"+e}function Ga(t){return Wt(Qe(t))}function de(t){const{h:e,s:i,v:s,a:n}=t,r=o=>{const h=(o+e/60)%6;return s-s*i*Math.max(Math.min(h,4-h,1),0)},a=[r(5),r(3),r(1)].map(o=>Math.round(o*255));return{r:a[0],g:a[1],b:a[2],a:n}}function vs(t){if(!t)return{h:0,s:1,v:1,a:1};const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),r=Math.min(e,i,s);let a=0;n!==r&&(n===e?a=60*(0+(i-s)/(n-r)):n===i?a=60*(2+(s-e)/(n-r)):n===s&&(a=60*(4+(e-i)/(n-r)))),a<0&&(a=a+360);const o=n===0?0:(n-r)/n,h=[a,o,n];return{h:h[0],s:h[1],v:h[2],a:t.a}}function Je(t){const{h:e,s:i,v:s,a:n}=t,r=s-s*i/2,a=r===1||r===0?0:(s-r)/Math.min(r,1-r);return{h:e,s:a,l:r,a:n}}function Ua(t){const{h:e,s:i,l:s,a:n}=t,r=s+i*Math.min(s,1-s),a=r===0?0:2-2*s/r;return{h:e,s:a,v:r,a:n}}function ys(t){return`rgba(${t.r}, ${t.g}, ${t.b}, ${t.a})`}function Xa(t){return ys(p(l({},t),{a:1}))}function bs(t){const e=i=>{const s=Math.round(i).toString(16);return("00".substr(0,2-s.length)+s).toUpperCase()};return`#${[e(t.r),e(t.g),e(t.b),e(Math.round(t.a*255))].join("")}`}function Ka(t){const e=Ta(t.slice(1),2).map(i=>parseInt(i,16));return{r:e[0],g:e[1],b:e[2],a:Math.round(e[3]/255*100)/100}}function qa(t){const e=Ka(t);return vs(e)}function $s(t){return bs(de(t))}function ti(t){return t.startsWith("#")&&(t=t.slice(1)),t=t.replace(/([^0-9a-f])/gi,"F"),(t.length===3||t.length===4)&&(t=t.split("").map(e=>e+e).join("")),t.length===6?t=Ze(t,8,"F"):t=Ze(Ze(t,6),8,"F"),`#${t}`.toUpperCase().substr(0,9)}function Ss(t){return(t.r<<16)+(t.g<<8)+t.b}function xs(t,e){const[,i]=ue(Ss(t)),[,s]=ue(Ss(e));return(Math.max(i,s)+.05)/(Math.min(i,s)+.05)}const pe=.20689655172413793,Za=t=>t>pe**3?Math.cbrt(t):t/(3*pe**2)+4/29,Qa=t=>t>pe?t**3:3*pe**2*(t-4/29);function Cs(t){const e=Za,i=e(t[1]);return[116*i-16,500*(e(t[0]/.95047)-i),200*(i-e(t[2]/1.08883))]}function ws(t){const e=Qa,i=(t[0]+16)/116;return[e(i+t[1]/500)*.95047,e(i),e(i-t[2]/200)*1.08883]}function ks(t,e=!1,i=!0){const o=t,{anchor:s}=o,n=Z(o,["anchor"]),r=Object.keys(n),a={};for(let h=0;h<r.length;++h){const c=r[h],u=t[c];u!=null&&(i?e?(c==="base"||c.startsWith("lighten")||c.startsWith("darken"))&&(a[c]=Ga(u)):typeof u=="object"?a[c]=ks(u,!0,i):a[c]=io(c,Qe(u)):a[c]={base:Wt(Qe(u))})}return e||(a.anchor=s||a.base||a.primary.base),a}const Ja=(t,e)=>`
@@ -1,2 +1,2 @@
1
- export * from "./vuetify.d21163.js";
2
- export { default } from "./vuetify.d21163.js";
1
+ export * from "./vuetify.cc817b.js";
2
+ export { default } from "./vuetify.cc817b.js";
package/dist/index.html CHANGED
@@ -7,7 +7,7 @@
7
7
  rel="stylesheet"
8
8
  href="https://fonts.googleapis.com/css?family=Titillium+Web"
9
9
  />
10
- <script type="module" crossorigin src="./assets/index.0be2842f.js"></script>
10
+ <script type="module" crossorigin src="./assets/index.889d0f3a.js"></script>
11
11
  <link rel="stylesheet" href="./assets/index.60dea538.css">
12
12
  </head>
13
13
  <body style="height: 100vH;">
package/index.js CHANGED
@@ -43,7 +43,8 @@ export { default as WindowComponentHeader } from './src/manager/window/WindowCom
43
43
  export { default as VcsWindowManager } from './src/manager/window/WindowManager.vue';
44
44
  export { WindowManager, WindowSlot, WindowPositions } from './src/manager/window/windowManager.js';
45
45
 
46
- export { default as ButtonManager, ButtonLocation, getActionsByLocation } from './src/manager/buttonManager.js';
46
+ export { ButtonManager } from './src/manager/buttonManager.js';
47
+ export { NavbarManager, ButtonLocation, getActionsByLocation } from './src/manager/navbarManager.js';
47
48
 
48
49
  export { default as MapNavCompass } from './src/navigation/mapNavCompass.vue';
49
50
  export { default as MapNavigation } from './src/navigation/mapNavigation.vue';
@@ -67,4 +68,41 @@ export {
67
68
  deserializePlugin,
68
69
  } from './src/pluginHelper.js';
69
70
  export { default as VcsUiApp } from './src/vcsUiApp.js';
71
+ export { default as Icons } from './src/icons/+all.js';
70
72
 
73
+ export { default as VcsButton } from './src/components/buttons/VcsButton.vue';
74
+ export { default as VcsActionButtonList } from './src/components/buttons/VcsActionButtonList.vue';
75
+ export { default as VcsTooltip } from './src/components/notification/VcsTooltip.vue';
76
+
77
+ // export { default as VcsConfirmationDialog } from './src/components/dialogs/VcsConfirmationDialog.vue';
78
+
79
+ export { default as VcsLabel } from './src/components/form-inputs-controls/VcsLabel.vue';
80
+ export { default as VcsCheckbox } from './src/components/form-inputs-controls/VcsCheckbox.vue';
81
+ // export { default as VcsColorPicker } from './src/components/form-inputs-controls/VcsColorPicker.vue';
82
+ export { default as VcsFormSection } from './src/components/form-inputs-controls/VcsFormSection.vue';
83
+ // export { default as VcsInputColumnCoordinates } from './src/components/form-inputs-controls/VcsInputColumnCoordinates.vue';
84
+ // export { default as VcsInputColumnDimensions } from './src/components/form-inputs-controls/VcsInputColumnDimensions.vue';
85
+ // export { default as VcsMinimalCheckbox } from './src/components/form-inputs-controls/VcsMinimalCheckbox.vue';
86
+ export { default as VcsSelect } from './src/components/form-inputs-controls/VcsSelect.vue';
87
+ export { default as VcsTextField } from './src/components/form-inputs-controls/VcsTextField.vue';
88
+ export { default as VcsTextArea } from './src/components/form-inputs-controls/VcsTextArea.vue';
89
+
90
+ export { default as VcsFormattedNumber } from './src/components/form-output/VcsFormattedNumber.vue';
91
+
92
+ export { default as VcsActionList, validateActions } from './src/components/lists/VcsActionList.vue';
93
+ // export { default as VcsEndlessList } from './src/components/lists/VcsEndlessList.vue';
94
+ export { default as VcsTreeview } from './src/components/lists/VcsTreeview.vue';
95
+ export { default as VcsTreeviewLeaf } from './src/components/lists/VcsTreeviewLeaf.vue';
96
+ // export { default as VcsTreeviewSearchbar } from './src/components/lists/VcsTreeviewSearchbar.vue';
97
+
98
+ // export { default as VcsMediaControls } from './src/components/media-controls/VcsMediaControls.vue';
99
+
100
+ // export { default as VcsContextMenu } from './src/components/menus/VcsContextMenu.vue';
101
+ // export { default as VcsMenu } from './src/components/menus/VcsMenu.vue';
102
+ // export { default as VcsOverflowMenu } from './src/components/menus/VcsOverflowMenu.vue';
103
+
104
+
105
+ // export { default as VcsBadge } from './src/components/notification/VcsBadge.vue';
106
+
107
+ // export { default as VcsFileNamePopover } from './src/components/popovers/VcsFileNamePopover.vue';
108
+ // export { default as VcsTexturePopover } from './src/components/popovers/VcsTexturePopover.vue';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "5.0.0-rc.8",
3
+ "version": "5.0.0-rc.9",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -42,8 +42,7 @@
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@vcmap/cesium": "~1.93.1",
45
- "@vcmap/core": "^5.0.0-rc.11",
46
- "@vcsuite/ui-components": "~0.1.15",
45
+ "@vcmap/core": "^5.0.0-rc.12",
47
46
  "@vue/composition-api": "~1.4.5",
48
47
  "ol": "~6.13.0",
49
48
  "vue": "~2.6.14",
@@ -166,11 +166,11 @@ export default function (config) {
166
166
  app.windowManager,
167
167
  packageJSON.name,
168
168
  );
169
- app.navbarManager.add({
170
- id: 'pluginExample',
171
- location: ButtonLocation.TOOL,
172
- action,
173
- }, packageJSON.name);
169
+ app.navbarManager.add(
170
+ { id: 'pluginExample', action },
171
+ packageJSON.name,
172
+ ButtonLocation.TOOL,
173
+ );
174
174
  this._destroyAction = destroy;
175
175
  },
176
176
  toJSON: async () => {
@@ -308,7 +308,7 @@
308
308
  VcsFormattedNumber,
309
309
  VcsFormSection,
310
310
  VcsLabel,
311
- } from '@vcsuite/ui-components';
311
+ } from '@vcmap/ui';
312
312
  import { isValidText, conditionalTest, isValidEmail } from './validation.js';
313
313
 
314
314
  export default {
@@ -32,7 +32,7 @@
32
32
  </template>
33
33
 
34
34
  <script>
35
- import { VcsTooltip } from '@vcsuite/ui-components';
35
+ import { VcsTooltip } from '@vcmap/ui';
36
36
 
37
37
  export default {
38
38
  name: 'ContextsListComponent',
@@ -224,11 +224,11 @@ export default async function projectSelector(config) {
224
224
  app.windowManager,
225
225
  packageJSON.name,
226
226
  );
227
- app.navbarManager.add({
228
- id: 'project-selector',
229
- location: ButtonLocation.PROJECT,
230
- action,
231
- }, packageJSON.name);
227
+ app.navbarManager.add(
228
+ { id: 'project-selector', action },
229
+ packageJSON.name,
230
+ ButtonLocation.PROJECT,
231
+ );
232
232
  this._destroyAction = destroy;
233
233
 
234
234
  pluginConfig.contexts.value.forEach(c => addContextFromOptions(c));
@@ -7,8 +7,7 @@
7
7
  "@vcsuite/logger": "^1.0.1"
8
8
  },
9
9
  "peerDependencies": {
10
- "@vcmap/ui": "5.0.0-rc.2",
11
- "@vcsuite/ui-components": "~0.1.8",
10
+ "@vcmap/ui": "^5.0.0-rc.11",
12
11
  "@vcmap/core": "^5.0.0-rc.5",
13
12
  "@vue/composition-api": "^1.4.5"
14
13
  }
@@ -1,6 +1,6 @@
1
1
  import { ref } from '@vue/composition-api';
2
2
  import { check } from '@vcsuite/check';
3
- import { createToggleAction, ButtonLocation, vuetify } from '@vcmap/ui';
3
+ import { ButtonLocation, createToggleAction, vuetify } from '@vcmap/ui';
4
4
  import ThemeChangerComponent from './ThemeChangerComponent.vue';
5
5
  import packageJSON from './package.json';
6
6
  import defaultConfig from './config.json';
@@ -85,11 +85,11 @@ export default async function themeChanger(config) {
85
85
  app.windowManager,
86
86
  packageJSON.name,
87
87
  );
88
- app.navbarManager.add({
89
- id: 'theme-changer',
90
- location: ButtonLocation.MENU,
91
- action,
92
- }, packageJSON.name);
88
+ app.navbarManager.add(
89
+ { id: 'theme-changer', action },
90
+ packageJSON.name,
91
+ ButtonLocation.MENU,
92
+ );
93
93
  this._destroyAction = destroy;
94
94
  },
95
95
  destroy() {
@@ -170,7 +170,7 @@
170
170
  </v-card>
171
171
  </template>
172
172
  <script>
173
- import { VcsButton, VcsActionButtonList } from '@vcsuite/ui-components';
173
+ import { VcsButton, VcsActionButtonList } from '@vcmap/ui';
174
174
 
175
175
  export default {
176
176
  name: 'ButtonExamples',
@@ -24,10 +24,11 @@ export default async function buttonExamples() {
24
24
  app.windowManager,
25
25
  'buttonExamples',
26
26
  );
27
- app.navbarManager.add({
28
- location: ButtonLocation.TOOL,
29
- action,
30
- }, 'buttonExamples');
27
+ app.navbarManager.add(
28
+ { action },
29
+ 'buttonExamples',
30
+ ButtonLocation.TOOL,
31
+ );
31
32
  this._destroyAction = destroy;
32
33
  },
33
34
  destroy() {
@@ -57,7 +57,7 @@
57
57
 
58
58
  <script>
59
59
  import { inject, ref, onUnmounted } from '@vue/composition-api';
60
- import { VcsButton } from '@vcsuite/ui-components';
60
+ import { VcsButton } from '@vcmap/ui';
61
61
  import Category from './Category.vue';
62
62
 
63
63
  export default {
@@ -49,7 +49,7 @@
49
49
 
50
50
  <script>
51
51
  import { inject, nextTick, ref } from '@vue/composition-api';
52
- import { VcsButton } from '@vcsuite/ui-components';
52
+ import { VcsButton } from '@vcmap/ui';
53
53
  import { getObjectFromClassRegistry } from '@vcmap/core';
54
54
 
55
55
  export default {
@@ -24,11 +24,11 @@ export default async function categoryTest() {
24
24
  app.windowManager,
25
25
  '@vcmap/categoryTest',
26
26
  );
27
- app.navbarManager.add({
28
- id: 'category-editor',
29
- location: ButtonLocation.TOOL,
30
- action,
31
- }, '@vcmap/categoryTest');
27
+ app.navbarManager.add(
28
+ { id: 'category-editor', action },
29
+ '@vcmap/categoryTest',
30
+ ButtonLocation.TOOL,
31
+ );
32
32
  this._destroyAction = destroy;
33
33
  },
34
34
  destroy() {
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-console */
2
- import { ButtonLocation, createToggleAction, WindowPositions, WindowSlot } from '@vcmap/ui';
2
+ import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
3
3
  import mySuperComponent from './mySuperComponent.vue';
4
4
 
5
5
  /**
@@ -19,6 +19,7 @@ export default async function (config) {
19
19
  const { action, destroy } = createToggleAction(
20
20
  {
21
21
  name: 'Example',
22
+ icon: '$vcsPointSelect',
22
23
  },
23
24
  {
24
25
  id: '228',
@@ -32,19 +33,37 @@ export default async function (config) {
32
33
  '@vcmap/example',
33
34
  );
34
35
  this._destroyAction = destroy;
35
- app.navbarManager.add({
36
- location: ButtonLocation.TOOL,
37
- action,
38
- }, '@vcmap/example');
39
- // app.toolboxManager.addToolboxGroup(
40
- // {
41
- // type: 'toggleButton',
42
- // icon: '$vcsPointSelect',
43
- // id: 15,
44
- // active: true,
45
- // },
46
- // 15,
47
- // );
36
+ app.navbarManager.add(
37
+ {
38
+ action,
39
+ },
40
+ '@vcmap/example',
41
+ ButtonLocation.TOOL,
42
+ );
43
+ const buttonComponents = [
44
+ {
45
+ id: 'distance3D',
46
+ action: {
47
+ name: 'distance3D',
48
+ title: '3D distance',
49
+ icon: '$vcs3dDistance',
50
+ active: false,
51
+ callback() { this.active = !this.active; },
52
+ },
53
+ },
54
+ {
55
+ id: 'area3D',
56
+ action: {
57
+ name: 'area3D',
58
+ title: '3D area',
59
+ icon: '$vcs3dArea',
60
+ active: false,
61
+ callback() { this.active = !this.active; },
62
+ },
63
+ },
64
+ ];
65
+ const measurementGroup = app.toolboxManager.requestGroup('measurement');
66
+ buttonComponents.forEach(c => measurementGroup.buttonManager.add(c, '@vcmap/example'));
48
67
  },
49
68
  destroy() {
50
69
  if (this._destroyAction) {
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <v-sheet class="overflow-auto icons-window">
3
+ <v-list>
4
+ <v-list-item
5
+ v-for="icon in icons"
6
+ :key="icon"
7
+ >
8
+ <v-list-item-title>{{ icon }}</v-list-item-title>
9
+ <v-list-item-icon>
10
+ <v-icon>{{ icon }}</v-icon>
11
+ </v-list-item-icon>
12
+ </v-list-item>
13
+ </v-list>
14
+ </v-sheet>
15
+ </template>
16
+
17
+ <script>
18
+ import { Icons } from '@vcmap/ui';
19
+
20
+ export default {
21
+ name: 'AllIconsComponent',
22
+ computed: {
23
+ icons() {
24
+ return Object.keys(Icons).map(n => `$${n}`);
25
+ },
26
+ },
27
+ };
28
+ </script>
29
+
30
+ <style scoped>
31
+ .icons-window {
32
+ max-height: 600px;
33
+ }
34
+ </style>
@@ -19,7 +19,7 @@
19
19
 
20
20
  <script>
21
21
  import { ref, inject } from '@vue/composition-api';
22
- import { VcsButton } from '@vcsuite/ui-components';
22
+ import { VcsButton } from '@vcmap/ui';
23
23
  import { Context } from '@vcmap/core';
24
24
 
25
25
  const contextId = 'foo';
@@ -4,6 +4,7 @@ import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
4
4
  import { toolboxData } from './toolbox-data.js';
5
5
  import editor from './editor.vue';
6
6
  import windowManagerExample from './windowManagerExample.vue';
7
+ import AllIconsComponent from './allIconsComponent.vue';
7
8
 
8
9
  let source;
9
10
 
@@ -58,7 +59,21 @@ export default async function () {
58
59
  app.windowManager,
59
60
  '@vcmap/test',
60
61
  );
61
- this._destroyActions = [destroyConfigEditorAction, destroyWindowAction];
62
+ const { action: iconAction, destroy: destroyIconAction } = createToggleAction(
63
+ {
64
+ name: 'Icons',
65
+ },
66
+ {
67
+ id: 'allIcons',
68
+ state: {
69
+ headerTitle: 'All Icons',
70
+ },
71
+ component: AllIconsComponent,
72
+ },
73
+ app.windowManager,
74
+ '@vcmap/test',
75
+ );
76
+ this._destroyActions = [destroyConfigEditorAction, destroyWindowAction, destroyIconAction];
62
77
  const alertAction = {
63
78
  name: 'VC Systems',
64
79
  callback() {
@@ -66,22 +81,30 @@ export default async function () {
66
81
  window.alert(`there are ${getSource().getFeatures().length} features ${app.maps.activeMap.name}`);
67
82
  },
68
83
  };
69
- app.navbarManager.add({
70
- id: 'config-editor',
71
- location: ButtonLocation.TOOL,
72
- action: configEditorAction,
73
- }, '@vcmap/test');
74
- app.navbarManager.add({
75
- id: 'windowManagerExample',
76
- location: ButtonLocation.TOOL,
77
- action: windowAction,
78
- }, '@vcmap/test');
79
- app.navbarManager.add({
80
- id: 'alert',
81
- location: ButtonLocation.TOOL,
82
- action: alertAction,
83
- }, '@vcmap/test');
84
- // toolboxData.forEach(([group, id]) => app.toolboxManager.addToolboxGroup(group, id));
84
+ app.navbarManager.add(
85
+ { id: 'config-editor', action: configEditorAction },
86
+ '@vcmap/test',
87
+ ButtonLocation.TOOL,
88
+ );
89
+ app.navbarManager.add(
90
+ { id: 'windowManagerExample', action: windowAction },
91
+ '@vcmap/test',
92
+ ButtonLocation.TOOL,
93
+ );
94
+ app.navbarManager.add(
95
+ { id: 'allIcons', action: iconAction },
96
+ '@vcmap/test',
97
+ ButtonLocation.TOOL,
98
+ );
99
+ app.navbarManager.add(
100
+ { id: 'alert', action: alertAction },
101
+ '@vcmap/test',
102
+ ButtonLocation.TOOL,
103
+ );
104
+ toolboxData.forEach(([{ id, icon, title, buttonComponents }, owner]) => {
105
+ const group = app.toolboxManager.requestGroup(id, icon, title);
106
+ buttonComponents.forEach(c => group.buttonManager.add(c, owner));
107
+ });
85
108
  },
86
109
  destroy() {
87
110
  if (this._destroyActions) {