@trimble-oss/modus-docs-hugo-theme 1.0.0-alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -0
  3. package/assets/js/auto-complete.min.js +1 -0
  4. package/assets/js/loglevel-plugin-remote.min.js +1 -0
  5. package/assets/js/loglevel.min.js +2 -0
  6. package/assets/js/lunr.min.js +7 -0
  7. package/assets/js/scroll-to-top.js +33 -0
  8. package/assets/js/search.min.js +1 -0
  9. package/assets/js/tdcafLogger.min.js +1 -0
  10. package/assets/js/theme-toggle.js +48 -0
  11. package/assets/js/was-this-page-helpful.js +15 -0
  12. package/assets/styles/_article.scss +110 -0
  13. package/assets/styles/_autocomplete.scss +63 -0
  14. package/assets/styles/_cards.scss +25 -0
  15. package/assets/styles/_codefences-dark.scss +16 -0
  16. package/assets/styles/_codefences.scss +243 -0
  17. package/assets/styles/_col-sidebar.scss +3 -0
  18. package/assets/styles/_font-open-sans.scss +69 -0
  19. package/assets/styles/_footer.scss +4 -0
  20. package/assets/styles/_javascript-disabled.scss +21 -0
  21. package/assets/styles/_list-js.scss +27 -0
  22. package/assets/styles/_menu-right.scss +55 -0
  23. package/assets/styles/_mobile.scss +52 -0
  24. package/assets/styles/_navbar-search.scss +53 -0
  25. package/assets/styles/_navbar.scss +5 -0
  26. package/assets/styles/_news.scss +6 -0
  27. package/assets/styles/_onetrust-cookie-banner.scss +166 -0
  28. package/assets/styles/_posts.scss +17 -0
  29. package/assets/styles/_print.scss +5 -0
  30. package/assets/styles/_scroll-to-top-btn.scss +17 -0
  31. package/assets/styles/_sidebar.scss +65 -0
  32. package/assets/styles/_skippy.scss +15 -0
  33. package/assets/styles/_tables.scss +5 -0
  34. package/assets/styles/_theme-dark.scss +10 -0
  35. package/assets/styles/_theme-light.scss +5 -0
  36. package/assets/styles/_theme-toggle.scss +83 -0
  37. package/assets/styles/_utilities.scss +9 -0
  38. package/assets/styles/_was-this-page-helpful.scss +28 -0
  39. package/assets/styles/_xxl.scss +18 -0
  40. package/assets/styles/styles.scss +66 -0
  41. package/data/menu.yml +19 -0
  42. package/data/navbar_apps.yml +15 -0
  43. package/layouts/_default/_markup/render-heading.html +23 -0
  44. package/layouts/_default/_markup/render-image.html +4 -0
  45. package/layouts/_default/_markup/render-link.html +4 -0
  46. package/layouts/_default/baseof.html +65 -0
  47. package/layouts/_default/home.html +31 -0
  48. package/layouts/_default/list.html +41 -0
  49. package/layouts/_default/redirect.html +19 -0
  50. package/layouts/_default/single.html +113 -0
  51. package/layouts/index.json +18 -0
  52. package/layouts/index.rss.xml +49 -0
  53. package/layouts/partials/analytics.html +9 -0
  54. package/layouts/partials/blog-brief.html +34 -0
  55. package/layouts/partials/blog-share.html +58 -0
  56. package/layouts/partials/btn-theme-toggle.html +20 -0
  57. package/layouts/partials/card-component.html +29 -0
  58. package/layouts/partials/col-sidebar-menu.html +74 -0
  59. package/layouts/partials/col-sidebar.html +25 -0
  60. package/layouts/partials/custom-footer.html +1 -0
  61. package/layouts/partials/custom-header.html +1 -0
  62. package/layouts/partials/footer.html +13 -0
  63. package/layouts/partials/header.html +14 -0
  64. package/layouts/partials/icons/brands/codepen.svg +2 -0
  65. package/layouts/partials/icons/brands/facebook-square.svg +2 -0
  66. package/layouts/partials/icons/brands/github-alt.svg +1 -0
  67. package/layouts/partials/icons/brands/github.svg +2 -0
  68. package/layouts/partials/icons/brands/linkedin.svg +1 -0
  69. package/layouts/partials/icons/brands/square-x-twitter.svg +2 -0
  70. package/layouts/partials/icons/brands/vimeo-square.svg +2 -0
  71. package/layouts/partials/icons/modus-outlined/accessibility-circle.svg +3 -0
  72. package/layouts/partials/icons/modus-outlined/arrow-up.svg +3 -0
  73. package/layouts/partials/icons/modus-outlined/bar-graph-square.svg +3 -0
  74. package/layouts/partials/icons/modus-outlined/launch.svg +3 -0
  75. package/layouts/partials/icons/modus-outlined/menu.svg +3 -0
  76. package/layouts/partials/icons/modus-outlined/more-vertical.svg +3 -0
  77. package/layouts/partials/icons/modus-outlined/person-account.svg +3 -0
  78. package/layouts/partials/icons/modus-outlined/search.svg +3 -0
  79. package/layouts/partials/icons/modus-outlined/sync.svg +3 -0
  80. package/layouts/partials/icons/modus-outlined/thumbs-down.svg +3 -0
  81. package/layouts/partials/icons/modus-outlined/thumbs-up.svg +3 -0
  82. package/layouts/partials/icons/modus-outlined/web.svg +3 -0
  83. package/layouts/partials/icons/modus-solid/email.svg +3 -0
  84. package/layouts/partials/icons/modus-solid/palette.svg +3 -0
  85. package/layouts/partials/icons/navbar-toggler-icon.svg +1 -0
  86. package/layouts/partials/icons/transportation/truck.svg +3 -0
  87. package/layouts/partials/icons/trimble-logo.svg +1 -0
  88. package/layouts/partials/index/list-blog-brief.html +17 -0
  89. package/layouts/partials/logos/trimble.svg +1 -0
  90. package/layouts/partials/menu-right.html +24 -0
  91. package/layouts/partials/meta.html +81 -0
  92. package/layouts/partials/navbar-dropdown.html +21 -0
  93. package/layouts/partials/navbar-search.html +19 -0
  94. package/layouts/partials/navbar.html +31 -0
  95. package/layouts/partials/related-content.html +50 -0
  96. package/layouts/partials/skippy.html +11 -0
  97. package/layouts/partials/trimble-logo.html +47 -0
  98. package/layouts/partials/was-this-page-helpful.html +19 -0
  99. package/layouts/shortcodes/alert.html +18 -0
  100. package/layouts/shortcodes/blocks/cover.html +50 -0
  101. package/layouts/shortcodes/blocks/feature.html +17 -0
  102. package/layouts/shortcodes/blocks/link-down.html +7 -0
  103. package/layouts/shortcodes/blocks/section.html +13 -0
  104. package/layouts/shortcodes/checklist.html +7 -0
  105. package/layouts/shortcodes/cloakemail.html +38 -0
  106. package/layouts/shortcodes/date-today.html +1 -0
  107. package/layouts/shortcodes/example.html +50 -0
  108. package/layouts/shortcodes/iframe.html +24 -0
  109. package/layouts/shortcodes/img.html +10 -0
  110. package/layouts/shortcodes/markdown.html +1 -0
  111. package/layouts/shortcodes/message.html +7 -0
  112. package/layouts/shortcodes/partial.html +1 -0
  113. package/layouts/shortcodes/tab.html +55 -0
  114. package/layouts/shortcodes/table.html +9 -0
  115. package/layouts/shortcodes/tabpane.html +172 -0
  116. package/layouts/sitemap.xml +8 -0
  117. package/package.json +47 -0
  118. package/static/favicon.ico +0 -0
  119. package/static/favicon.svg +1 -0
  120. package/static/fonts/open-sans-v27-latin-300.woff +0 -0
  121. package/static/fonts/open-sans-v27-latin-300.woff2 +0 -0
  122. package/static/fonts/open-sans-v27-latin-300italic.woff +0 -0
  123. package/static/fonts/open-sans-v27-latin-300italic.woff2 +0 -0
  124. package/static/fonts/open-sans-v27-latin-600.woff +0 -0
  125. package/static/fonts/open-sans-v27-latin-600.woff2 +0 -0
  126. package/static/fonts/open-sans-v27-latin-700.woff +0 -0
  127. package/static/fonts/open-sans-v27-latin-700.woff2 +0 -0
  128. package/static/fonts/open-sans-v27-latin-800.woff +0 -0
  129. package/static/fonts/open-sans-v27-latin-800.woff2 +0 -0
  130. package/static/fonts/open-sans-v27-latin-italic.woff +0 -0
  131. package/static/fonts/open-sans-v27-latin-italic.woff2 +0 -0
  132. package/static/fonts/open-sans-v27-latin-regular.woff +0 -0
  133. package/static/fonts/open-sans-v27-latin-regular.woff2 +0 -0
  134. package/static/img/trimble-logo.svg +1 -0
  135. package/static/js/instant-page.min.js +2 -0
  136. package/static/js/theme-toggle.js +48 -0
  137. package/static/staticwebapp.config.json +24 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Trimble Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # Modus Docs Hugo Theme (Experimental)
2
+
3
+ A documentation theme for Hugo.
4
+
5
+ Status: Alpha. This theme is currently under development and is not yet ready for production use.
6
+
7
+ ## Installation
8
+
9
+ 1. Add this repo to your package.json as follows:
10
+
11
+ ```json
12
+ {
13
+ "dependencies": {
14
+ "modus-docs-hugo-theme": "git+github.com:trimble-oss/modus-docs-hugo-theme.git"
15
+ }
16
+ }
17
+ ```
18
+
19
+ 2. Add the following mounts to your Hugo config:
20
+
21
+ ```yml
22
+ module:
23
+ mounts:
24
+ - source: node_modules/@trimble-oss/modus-docs-hugo-theme/assets/
25
+ target: assets
26
+ # The main theme CSS and JavaScript
27
+
28
+ - source: node_modules/@trimble-oss/modus-docs-hugo-theme/layouts/
29
+ target: layouts
30
+ # The main theme templates
31
+
32
+ - source: node_modules/@trimble-oss/modus-docs-hugo-theme/static/
33
+ target: static
34
+ # Includes Trimble favicon and JS for theme toggle and search
35
+
36
+ - source: node_modules/@trimble-oss/modus-icons/dist/modus-solid/sprites/modus-icons.svg
37
+ target: static/modus-solid-icons.svg
38
+ # Modus Icons Solid will be available as an SVG sprite
39
+
40
+ - source: node_modules/@trimble-oss/modus-icons/dist/modus-outlined/fonts/
41
+ target: static/fonts/
42
+ # Modus Icons Outlined will be available as webfont
43
+ ```
@@ -0,0 +1 @@
1
+ var autoComplete=function(){function e(e){function t(e,t){return e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className)}function o(e,t,o){e.attachEvent?e.attachEvent("on"+t,o):e.addEventListener(t,o)}function s(e,t,o){e.detachEvent?e.detachEvent("on"+t,o):e.removeEventListener(t,o)}function n(e,s,n,l){o(l||document,s,function(o){for(var s,l=o.target||o.srcElement;l&&!(s=t(l,e));)l=l.parentElement;s&&n.call(l,o)})}if(document.querySelector){var l={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:"",renderItem:function(e,t){t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var o=new RegExp("("+t.split(" ").join("|")+")","gi");return'<div class="autocomplete-suggestion" data-val="'+e+'">'+e.replace(o,"<b>$1</b>")+"</div>"},onSelect:function(){}};for(var c in e)e.hasOwnProperty(c)&&(l[c]=e[c]);for(var a="object"==typeof l.selector?[l.selector]:document.querySelectorAll(l.selector),u=0;u<a.length;u++){var i=a[u];i.sc=document.createElement("div"),i.sc.className="autocomplete-suggestions "+l.menuClass,i.autocompleteAttr=i.getAttribute("autocomplete"),i.setAttribute("autocomplete","off"),i.cache={},i.last_val="",i.updateSC=function(e,t){var o=i.getBoundingClientRect();if(i.sc.style.left=Math.round(o.left+(window.pageXOffset||document.documentElement.scrollLeft)+l.offsetLeft)+"px",i.sc.style.top=Math.round(o.bottom+(window.pageYOffset||document.documentElement.scrollTop)+l.offsetTop)+"px",i.sc.style.width=Math.round(o.right-o.left)+"px",!e&&(i.sc.style.display="block",i.sc.maxHeight||(i.sc.maxHeight=parseInt((window.getComputedStyle?getComputedStyle(i.sc,null):i.sc.currentStyle).maxHeight)),i.sc.suggestionHeight||(i.sc.suggestionHeight=i.sc.querySelector(".autocomplete-suggestion").offsetHeight),i.sc.suggestionHeight))if(t){var s=i.sc.scrollTop,n=t.getBoundingClientRect().top-i.sc.getBoundingClientRect().top;n+i.sc.suggestionHeight-i.sc.maxHeight>0?i.sc.scrollTop=n+i.sc.suggestionHeight+s-i.sc.maxHeight:0>n&&(i.sc.scrollTop=n+s)}else i.sc.scrollTop=0},o(window,"resize",i.updateSC),document.body.appendChild(i.sc),n("autocomplete-suggestion","mouseleave",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&setTimeout(function(){e.className=e.className.replace("selected","")},20)},i.sc),n("autocomplete-suggestion","mouseover",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&(e.className=e.className.replace("selected","")),this.className+=" selected"},i.sc),n("autocomplete-suggestion","mousedown",function(e){if(t(this,"autocomplete-suggestion")){var o=this.getAttribute("data-val");i.value=o,l.onSelect(e,o,this),i.sc.style.display="none"}},i.sc),i.blurHandler=function(){try{var e=document.querySelector(".autocomplete-suggestions:hover")}catch(t){var e=0}e?i!==document.activeElement&&setTimeout(function(){i.focus()},20):(i.last_val=i.value,i.sc.style.display="none",setTimeout(function(){i.sc.style.display="none"},350))},o(i,"blur",i.blurHandler);var r=function(e){var t=i.value;if(i.cache[t]=e,e.length&&t.length>=l.minChars){for(var o="",s=0;s<e.length;s++)o+=l.renderItem(e[s],t);i.sc.innerHTML=o,i.updateSC(0)}else i.sc.style.display="none"};i.keydownHandler=function(e){var t=window.event?e.keyCode:e.which;if((40==t||38==t)&&i.sc.innerHTML){var o,s=i.sc.querySelector(".autocomplete-suggestion.selected");return s?(o=40==t?s.nextSibling:s.previousSibling,o?(s.className=s.className.replace("selected",""),o.className+=" selected",i.value=o.getAttribute("data-val")):(s.className=s.className.replace("selected",""),i.value=i.last_val,o=0)):(o=40==t?i.sc.querySelector(".autocomplete-suggestion"):i.sc.childNodes[i.sc.childNodes.length-1],o.className+=" selected",console.log(o),i.value=o.getAttribute("data-val")),i.updateSC(0,o),!1}if(27==t)i.value=i.last_val,i.sc.style.display="none";else if(13==t||9==t){var s=i.sc.querySelector(".autocomplete-suggestion.selected");s&&"none"!=i.sc.style.display&&(l.onSelect(e,s.getAttribute("data-val"),s),setTimeout(function(){i.sc.style.display="none"},20))}},o(i,"keydown",i.keydownHandler),i.keyupHandler=function(e){var t=window.event?e.keyCode:e.which;if(!t||(35>t||t>40)&&13!=t&&27!=t){var o=i.value;if(o.length>=l.minChars){if(o!=i.last_val){if(i.last_val=o,clearTimeout(i.timer),l.cache){if(o in i.cache)return void r(i.cache[o]);for(var s=1;s<o.length-l.minChars;s++){var n=o.slice(0,o.length-s);if(n in i.cache&&!i.cache[n].length)return void r([])}}i.timer=setTimeout(function(){l.source(o,r)},l.delay)}}else i.last_val=o,i.sc.style.display="none"}},o(i,"keyup",i.keyupHandler),i.focusHandler=function(e){i.last_val="\n",i.keyupHandler(e)},l.minChars||o(i,"focus",i.focusHandler)}this.destroy=function(){for(var e=0;e<a.length;e++){var t=a[e];s(window,"resize",t.updateSC),s(t,"blur",t.blurHandler),s(t,"focus",t.focusHandler),s(t,"keydown",t.keydownHandler),s(t,"keyup",t.keyupHandler),t.autocompleteAttr?t.setAttribute("autocomplete",t.autocompleteAttr):t.removeAttribute("autocomplete"),document.body.removeChild(t.sc),t=null}}}}return e}();!function(){"function"==typeof define&&define.amd?define("autoComplete",function(){return autoComplete}):"undefined"!=typeof module&&module.exports?module.exports=autoComplete:window.autoComplete=autoComplete}();
@@ -0,0 +1 @@
1
+ !function(e,t){if("function"==typeof define&&define.amd)define(["module","exports"],t);else if("undefined"!=typeof exports)t(module,exports);else{var r={exports:{}};t(r,r.exports),e.remote=r.exports}}(this,function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=window,b=null;if(!f)throw new Error("Plugin for browser usage only");var r=void 0;function s(e){try{return JSON.stringify(e)}catch(e){if(!r)try{var t={};t.a=t,JSON.stringify(t)}catch(e){r=e.message}if(e.message===r)return"[Circular]";throw e}}function w(c){var e="",l=0;return 1<c.length&&"string"==typeof c[0]&&(e=(e=c[0].replace(/(%?)(%([sdjo]))/g,function(e,t,r,n){if(t)return e;var o=c[l+=1],i="";switch(n){case"s":i+=o;break;case"d":i+=+o;break;case"j":i=s(o);break;case"o":var a=s(o);"{"!==a[0]&&"["!==a[0]&&(a="<"+a+">"),i=function(e){if(!Object.getOwnPropertyDescriptor||!Object.getPrototypeOf)return Object.prototype.toString.call(e).slice(8,-1);for(;e;){var t=Object.getOwnPropertyDescriptor(e,"constructor");if(void 0!==t&&"function"==typeof t.value&&""!==t.value.name)return t.value.name;e=Object.getPrototypeOf(e)}return""}(o)+a}return i})).replace(/%{2,2}/g,"%"),l+=1),c.length>l&&(e&&(e+=" "),e+=c.slice(l).join(" ")),e}var p=Object.prototype.hasOwnProperty;function k(){try{throw new Error}catch(e){return e.stack}}function n(t){var r=this,n=[],o=[];this.length=function(){return n.length},this.sent=function(){return o.length},this.push=function(e){n.push(e),n.length>t&&n.shift()},this.send=function(){return o.length||(o=n,n=[]),o},this.confirm=function(){o=[],r.content=""},this.fail=function(){var e=1+n.length+o.length-t;0<e&&(o.splice(0,e),n=o.concat(n),r.confirm())}}var o=!!k(),j=void 0,a=void 0,v=void 0;function c(e){return"["+e.timestamp+"] "+e.level.label.toUpperCase()+(e.logger?" ("+e.logger+")":"")+": "+e.message+(e.stacktrace?"\n"+e.stacktrace:"")}function l(){throw new Error("You can't set token for a not appled plugin")}var u=f.remote,g={url:"/logger",method:"POST",headers:{},token:"",onUnauthorized:function(){},timeout:0,interval:1e3,level:"trace",backoff:{multiplier:2,jitter:.1,limit:3e4},capacity:0,stacktrace:{levels:["trace","warn","error"],depth:3,excess:0},timestamp:function(){return(new Date).toISOString()},format:c},remote={noConflict:function(){return f.remote===remote&&(f.remote=u),remote},plain:c,json:function(e){return e.level=e.level.label,e},apply:function(e,t){if(!e||!e.getLogger)throw new TypeError("Argument is not a root loglevel object");if(j)throw new Error("You can assign a plugin only one time");if(!f.XMLHttpRequest)return e;j=e;var d=function e(){for(var t={},r=0;r<arguments.length;r+=1){var n=Object(arguments[r]);for(var o in n)p.call(n,o)&&(t[o]="object"!==i(n[o])||Array.isArray(n[o])?n[o]:e(t[o],n[o]))}return t}(g,t);d.capacity=d.capacity||500;var r=d.backoff,c="object"===(void 0===r?"undefined":i(r))?function(e){var t=e*r.multiplier;return t>r.limit&&(t=r.limit),t+=t*r.jitter*Math.random()}:r,l=d.interval,h=void 0,m=void 0,s=!1,u=!1;function y(){if(!u&&!s&&void 0!==d.token){if(!b.sent()){if(!b.length())return;var e=b.send();b.content=m?'{"logs":['+e.join(",")+"]}":e.join("\n")}s=!0;var t=new f.XMLHttpRequest;t.open(d.method,d.url,!0),t.setRequestHeader("Content-Type",h),d.token&&t.setRequestHeader("Authorization","Bearer "+d.token);var r=d.headers;for(var n in r)if(p.call(r,n)){var o=r[n];o&&t.setRequestHeader(n,o)}var i=void 0;d.timeout&&(i=f.setTimeout(function(){s=!1,t.abort(),a()},d.timeout)),t.onreadystatechange=function(){if(4===t.readyState)if(s=!1,f.clearTimeout(i),200===t.status)l=d.interval,b.confirm(),a(!0);else{if(401===t.status){var e=d.token;d.token=void 0,d.onUnauthorized(e)}a()}},t.send(b.content)}function a(e){e||(l=c(l||1),b.fail()),u=!0,f.setTimeout(function(){u=!1,y()},l)}}return b=new n(d.capacity),a=e.methodFactory,v=function(s,e,u){var f=a(s,e,u),p=o&&d.stacktrace.levels.some(function(e){return e===s}),v=j.levels[s.toUpperCase()],g=v>=j.levels[d.level.toUpperCase()];return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];if(g){var n=d.timestamp(),o=p?k():"";if(o){var i=o.split("\n");i.splice(0,d.stacktrace.excess+3);var a=d.stacktrace.depth;if(a&&i.length!==a+1)o=i.splice(0,a).join("\n"),i.length&&(o+="\n and "+i.length+" more");else o=i.join("\n")}var c=d.format({message:w(t),level:{label:s,value:v},logger:u||"",timestamp:n,stacktrace:o});void 0===m&&(h=(m="string"!=typeof c)?"application/json":"text/plain");var l="";if(m)try{l+=JSON.stringify(c)}catch(e){return f.apply(void 0,t),void j.getLogger("logger").error(e)}else l+=c;b.push(l),y()}f.apply(void 0,t)}},e.methodFactory=v,e.setLevel(e.getLevel()),remote.setToken=function(e){d.token=e,y()},e},disable:function(){if(!j)throw new Error("You can't disable a not appled plugin");if(v!==j.methodFactory)throw new Error("You can't disable a plugin after appling another plugin");j.methodFactory=a,j.setLevel(j.getLevel()),j=void 0,remote.setToken=l},setToken:l,getQueueContent:function(){return b.send()}};t.default=remote,e.exports=t.default});
@@ -0,0 +1,2 @@
1
+ /*! loglevel - v1.8.1 - https://github.com/pimterry/loglevel - (c) 2022 Tim Perry - licensed MIT */
2
+ !function(a,b){"use strict";"function"==typeof define&&define.amd?define(b):"object"==typeof module&&module.exports?module.exports=b():a.log=b()}(this,function(){"use strict";function a(a,b){var c=a[b];if("function"==typeof c.bind)return c.bind(a);try{return Function.prototype.bind.call(c,a)}catch(b){return function(){return Function.prototype.apply.apply(c,[a,arguments])}}}function b(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(c){return"debug"===c&&(c="log"),typeof console!==i&&("trace"===c&&j?b:void 0!==console[c]?a(console,c):void 0!==console.log?a(console,"log"):h)}function d(a,b){for(var c=0;c<k.length;c++){var d=k[c];this[d]=c<a?h:this.methodFactory(d,a,b)}this.log=this.debug}function e(a,b,c){return function(){typeof console!==i&&(d.call(this,b,c),this[a].apply(this,arguments))}}function f(a,b,d){return c(a)||e.apply(this,arguments)}function g(a,b,c){function e(a){var b=(k[a]||"silent").toUpperCase();if(typeof window!==i&&m){try{return void(window.localStorage[m]=b)}catch(a){}try{window.document.cookie=encodeURIComponent(m)+"="+b+";"}catch(a){}}}function g(){var a;if(typeof window!==i&&m){try{a=window.localStorage[m]}catch(a){}if(typeof a===i)try{var b=window.document.cookie,c=b.indexOf(encodeURIComponent(m)+"=");-1!==c&&(a=/^([^;]+)/.exec(b.slice(c))[1])}catch(a){}return void 0===l.levels[a]&&(a=void 0),a}}function h(){if(typeof window!==i&&m){try{return void window.localStorage.removeItem(m)}catch(a){}try{window.document.cookie=encodeURIComponent(m)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(a){}}}var j,l=this;b=null==b?"WARN":b;var m="loglevel";"string"==typeof a?m+=":"+a:"symbol"==typeof a&&(m=void 0),l.name=a,l.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},l.methodFactory=c||f,l.getLevel=function(){return j},l.setLevel=function(b,c){if("string"==typeof b&&void 0!==l.levels[b.toUpperCase()]&&(b=l.levels[b.toUpperCase()]),!("number"==typeof b&&b>=0&&b<=l.levels.SILENT))throw"log.setLevel() called with invalid level: "+b;if(j=b,!1!==c&&e(b),d.call(l,b,a),typeof console===i&&b<l.levels.SILENT)return"No console available for logging"},l.setDefaultLevel=function(a){b=a,g()||l.setLevel(a,!1)},l.resetLevel=function(){l.setLevel(b,!1),h()},l.enableAll=function(a){l.setLevel(l.levels.TRACE,a)},l.disableAll=function(a){l.setLevel(l.levels.SILENT,a)};var n=g();null==n&&(n=b),l.setLevel(n,!1)}var h=function(){},i="undefined",j=typeof window!==i&&typeof window.navigator!==i&&/Trident\/|MSIE /.test(window.navigator.userAgent),k=["trace","debug","info","warn","error"],l=new g,m={};l.getLogger=function(a){if("symbol"!=typeof a&&"string"!=typeof a||""===a)throw new TypeError("You must supply a name when creating a logger.");var b=m[a];return b||(b=m[a]=new g(a,l.getLevel(),l.methodFactory)),b};var n=typeof window!==i?window.log:void 0;return l.noConflict=function(){return typeof window!==i&&window.log===l&&(window.log=n),l},l.getLoggers=function(){return m},l.default=l,l});
@@ -0,0 +1,7 @@
1
+ /**
2
+ * lunr - https://lunrjs.com - A bit like Solr, but much smaller and not as bright
3
+ * https://cdn.jsdelivr.net/npm/lunr@2.3.9/lunr.min.js
4
+ * (C) 2020 Oliver Nightingale
5
+ * @license MIT
6
+ */
7
+ !function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var n=r[i],s=e[n];if(Array.isArray(s))t[n]=s.slice();else{if("string"!=typeof s&&"number"!=typeof s&&"boolean"!=typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[n]=s}}return t},e.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},e.FieldRef.joiner="/",e.FieldRef.fromString=function(t){var r=t.indexOf(e.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var i=t.slice(0,r),n=t.slice(r+1);return new e.FieldRef(n,i,t)},e.FieldRef.prototype.toString=function(){return void 0==this._stringValue&&(this._stringValue=this.fieldName+e.FieldRef.joiner+this.docRef),this._stringValue},e.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},e.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},e.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},e.Set.prototype.contains=function(e){return!!this.elements[e]},e.Set.prototype.intersect=function(t){var r,i,n,s=[];if(t===e.Set.complete)return this;if(t===e.Set.empty)return t;this.length<t.length?(r=this,i=t):(r=t,i=this),n=Object.keys(r.elements);for(var o=0;o<n.length;o++){var a=n[o];a in i.elements&&s.push(a)}return new e.Set(s)},e.Set.prototype.union=function(t){return t===e.Set.complete?e.Set.complete:t===e.Set.empty?this:new e.Set(Object.keys(this.elements).concat(Object.keys(t.elements)))},e.idf=function(e,t){var r=0;for(var i in e)"_index"!=i&&(r+=Object.keys(e[i]).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},e.Token=function(e,t){this.str=e||"",this.metadata=t||{}},e.Token.prototype.toString=function(){return this.str},e.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},e.Token.prototype.clone=function(t){return t=t||function(e){return e},new e.Token(t(this.str,this.metadata),this.metadata)},e.tokenizer=function(t,r){if(null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return new e.Token(e.utils.asString(t).toLowerCase(),e.utils.clone(r))});for(var i=t.toString().toLowerCase(),n=i.length,s=[],o=0,a=0;o<=n;o++){var u=i.charAt(o),l=o-a;if(u.match(e.tokenizer.separator)||o==n){if(l>0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var i=this._stack[r],n=[],s=0;s<e.length;s++){var o=i(e[s],s,e);if(null!==o&&void 0!==o&&""!==o)if(Array.isArray(o))for(var a=0;a<o.length;a++)n.push(o[a]);else n.push(o)}e=n}return e},e.Pipeline.prototype.runString=function(t,r){var i=new e.Token(t,r);return this.run([i]).map(function(e){return e.toString()})},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},e.Vector=function(e){this._magnitude=0,this.elements=e||[]},e.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];i>1&&(s<e&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:s<e?2*(n+1):void 0},e.Vector.prototype.insert=function(e,t){this.upsert(e,t,function(){throw"duplicate index"})},e.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},e.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;u<n&&l<s;)o=r[u],a=i[l],o<a?u+=2:o>a?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},e.Vector.prototype.toJSON=function(){return this.elements},e.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",n=r+"[^aeiouy]*",s=i+"[aeiou]*",o="^("+n+")?"+s+n,a="^("+n+")?"+s+n+"("+s+")?$",u="^("+n+")?"+s+n+s+n,l="^("+n+")?"+i,c=new RegExp(o),h=new RegExp(u),d=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,x=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),Q=new RegExp("^"+n+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,S=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,L=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,b=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,T=/ll$/,O=new RegExp("^"+n+i+"[^aeiouwxy]$"),I=function(r){var i,n,s,o,a,u,l;if(r.length<3)return r;if(s=r.substr(0,1),"y"==s&&(r=s.toUpperCase()+r.substr(1)),o=p,a=y,o.test(r)?r=r.replace(o,"$1$2"):a.test(r)&&(r=r.replace(a,"$1$2")),o=m,a=v,o.test(r)){var I=o.exec(r);o=c,o.test(I[1])&&(o=g,r=r.replace(o,""))}else if(a.test(r)){var I=a.exec(r);i=I[1],a=f,a.test(i)&&(r=i,a=x,u=w,l=Q,a.test(r)?r+="e":u.test(r)?(o=g,r=r.replace(o,"")):l.test(r)&&(r+="e"))}if(o=k,o.test(r)){var I=o.exec(r);i=I[1],r=i+"i"}if(o=S,o.test(r)){var I=o.exec(r);i=I[1],n=I[2],o=c,o.test(i)&&(r=i+e[n])}if(o=E,o.test(r)){var I=o.exec(r);i=I[1],n=I[2],o=c,o.test(i)&&(r=i+t[n])}if(o=L,a=b,o.test(r)){var I=o.exec(r);i=I[1],o=h,o.test(i)&&(r=i)}else if(a.test(r)){var I=a.exec(r);i=I[1]+I[2],a=h,a.test(i)&&(r=i)}if(o=P,o.test(r)){var I=o.exec(r);i=I[1],o=h,a=d,u=O,(o.test(i)||a.test(i)&&!u.test(i))&&(r=i)}return o=T,a=h,o.test(r)&&a.test(r)&&(o=g,r=r.replace(o,"")),"y"==s&&(r=s.toLowerCase()+r.substr(1)),r};return function(e){return e.update(I)}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),e.generateStopWordFilter=function(e){var t=e.reduce(function(e,t){return e[t]=t,e},{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},e.stopWordFilter=e.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),e.trimmer=function(e){return e.update(function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")})},e.Pipeline.registerFunction(e.trimmer,"trimmer"),e.TokenSet=function(){this["final"]=!1,this.edges={},this.id=e.TokenSet._nextId,e.TokenSet._nextId+=1},e.TokenSet._nextId=1,e.TokenSet.fromArray=function(t){for(var r=new e.TokenSet.Builder,i=0,n=t.length;i<n;i++)r.insert(t[i]);return r.finish(),r.root},e.TokenSet.fromClause=function(t){return"editDistance"in t?e.TokenSet.fromFuzzyString(t.term,t.editDistance):e.TokenSet.fromString(t.term)},e.TokenSet.fromFuzzyString=function(t,r){for(var i=new e.TokenSet,n=[{node:i,editsRemaining:r,str:t}];n.length;){var s=n.pop();if(s.str.length>0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n<s;n++){var o=t[n],a=n==s-1;if("*"==o)r.edges[o]=r,r["final"]=a;else{var u=new e.TokenSet;u["final"]=a,r.edges[o]=u,r=u}}return i},e.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node["final"]&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<n;s++){var o=i[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},e.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this["final"]?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,i=0;i<r;i++){var n=t[i],s=this.edges[n];e=e+n+s.id}return e},e.TokenSet.prototype.intersect=function(t){for(var r=new e.TokenSet,i=void 0,n=[{qNode:t,output:r,node:this}];n.length;){i=n.pop();for(var s=Object.keys(i.qNode.edges),o=s.length,a=Object.keys(i.node.edges),u=a.length,l=0;l<o;l++)for(var c=s[l],h=0;h<u;h++){var d=a[h];if(d==c||"*"==c){var f=i.node.edges[d],p=i.qNode.edges[c],y=f["final"]&&p["final"],m=void 0;d in i.output.edges?(m=i.output.edges[d],m["final"]=m["final"]||y):(m=new e.TokenSet,m["final"]=y,i.output.edges[d]=m),n.push({qNode:p,output:m,node:f})}}}return r},e.TokenSet.Builder=function(){this.previousWord="",this.root=new e.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},e.TokenSet.Builder.prototype.insert=function(t){var r,i=0;if(t<this.previousWord)throw new Error("Out of order word insertion");for(var n=0;n<t.length&&n<this.previousWord.length&&t[n]==this.previousWord[n];n++)i++;this.minimize(i),r=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var n=i;n<t.length;n++){var s=new e.TokenSet,o=t[n];r.edges[o]=s,this.uncheckedNodes.push({parent:r,"char":o,child:s}),r=s}r["final"]=!0,this.previousWord=t},e.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},e.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)n[this.fields[u]]=new e.Vector;t.call(r,r);for(var u=0;u<r.clauses.length;u++){var l=r.clauses[u],c=null,h=e.Set.empty;c=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<c.length;d++){var f=c[d];l.term=f;var p=e.TokenSet.fromClause(l),y=this.tokenSet.intersect(p).toArray();if(0===y.length&&l.presence===e.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var v=l.fields[m];o[v]=e.Set.empty}break}for(var g=0;g<y.length;g++)for(var x=y[g],w=this.invertedIndex[x],Q=w._index,m=0;m<l.fields.length;m++){var v=l.fields[m],k=w[v],S=Object.keys(k),E=x+"/"+v,L=new e.Set(S);if(l.presence==e.Query.presence.REQUIRED&&(h=h.union(L),void 0===o[v]&&(o[v]=e.Set.complete)),l.presence!=e.Query.presence.PROHIBITED){if(n[v].upsert(Q,l.boost,function(e,t){return e+t}),!s[E]){for(var b=0;b<S.length;b++){var P,T=S[b],O=new e.FieldRef(T,v),I=k[T];void 0===(P=i[O])?i[O]=new e.MatchData(x,v,I):P.add(x,v,I)}s[E]=!0}}else void 0===a[v]&&(a[v]=e.Set.empty),a[v]=a[v].union(L)}}if(l.presence===e.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var v=l.fields[m];o[v]=o[v].intersect(h)}}for(var R=e.Set.complete,F=e.Set.empty,u=0;u<this.fields.length;u++){var v=this.fields[u];o[v]&&(R=R.intersect(o[v])),a[v]&&(F=F.union(a[v]))}var C=Object.keys(i),N=[],_=Object.create(null);if(r.isNegated()){C=Object.keys(this.fieldVectors);for(var u=0;u<C.length;u++){var O=C[u],j=e.FieldRef.fromString(O);i[O]=new e.MatchData}}for(var u=0;u<C.length;u++){var j=e.FieldRef.fromString(C[u]),D=j.docRef;if(R.contains(D)&&!F.contains(D)){var A,B=this.fieldVectors[j],V=n[j.fieldName].similarity(B);if(void 0!==(A=_[D]))A.score+=V,A.matchData.combine(i[j]);else{var z={ref:D,score:V,matchData:i[j]};_[D]=z,N.push(z)}}}return N.sort(function(e,t){return t.score-e.score})},e.Index.prototype.toJSON=function(){var t=Object.keys(this.invertedIndex).sort().map(function(e){return[e,this.invertedIndex[e]]},this),r=Object.keys(this.fieldVectors).map(function(e){return[e,this.fieldVectors[e].toJSON()]},this);return{version:e.version,fields:this.fields,fieldVectors:r,invertedIndex:t,pipeline:this.pipeline.toJSON()}},e.Index.load=function(t){var r={},i={},n=t.fieldVectors,s=Object.create(null),o=t.invertedIndex,a=new e.TokenSet.Builder,u=e.Pipeline.load(t.pipeline);t.version!=e.version&&e.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+e.version+"' does not match serialized index '"+t.version+"'");for(var l=0;l<n.length;l++){var c=n[l],h=c[0],d=c[1];i[h]=new e.Vector(d)}for(var l=0;l<o.length;l++){var c=o[l],f=c[0],p=c[1];a.insert(f),s[f]=p}return a.finish(),r.fields=t.fields,r.fieldVectors=i,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=u,new e.Index(r)},e.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=e.tokenizer,this.pipeline=new e.Pipeline,this.searchPipeline=new e.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},e.Builder.prototype.ref=function(e){this._ref=e},e.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},e.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s<n.length;s++){var o=n[s],a=this._fields[o].extractor,u=a?a(t):t[o],l=this.tokenizer(u,{fields:[o]}),c=this.pipeline.run(l),h=new e.FieldRef(i,o),d=Object.create(null);this.fieldTermFrequencies[h]=d,this.fieldLengths[h]=0,this.fieldLengths[h]+=c.length;for(var f=0;f<c.length;f++){var p=c[f];if(void 0==d[p]&&(d[p]=0),d[p]+=1,void 0==this.invertedIndex[p]){var y=Object.create(null);y._index=this.termIndex,this.termIndex+=1;for(var m=0;m<n.length;m++)y[n[m]]=Object.create(null);this.invertedIndex[p]=y}void 0==this.invertedIndex[p][o][i]&&(this.invertedIndex[p][o][i]=Object.create(null));for(var v=0;v<this.metadataWhitelist.length;v++){var g=this.metadataWhitelist[v],x=p.metadata[g];void 0==this.invertedIndex[p][o][i][g]&&(this.invertedIndex[p][o][i][g]=[]),this.invertedIndex[p][o][i][g].push(x)}}}},e.Builder.prototype.calculateAverageFieldLengths=function(){for(var t=Object.keys(this.fieldLengths),r=t.length,i={},n={},s=0;s<r;s++){var o=e.FieldRef.fromString(t[s]),a=o.fieldName;n[a]||(n[a]=0),n[a]+=1,i[a]||(i[a]=0),i[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];i[l]=i[l]/n[l]}this.averageFieldLength=i},e.Builder.prototype.createFieldVectors=function(){for(var t={},r=Object.keys(this.fieldTermFrequencies),i=r.length,n=Object.create(null),s=0;s<i;s++){for(var o=e.FieldRef.fromString(r[s]),a=o.fieldName,u=this.fieldLengths[o],l=new e.Vector,c=this.fieldTermFrequencies[o],h=Object.keys(c),d=h.length,f=this._fields[a].boost||1,p=this._documents[o.docRef].boost||1,y=0;y<d;y++){var m,v,g,x=h[y],w=c[x],Q=this.invertedIndex[x]._index;void 0===n[x]?(m=e.idf(this.invertedIndex[x],this.documentCount),n[x]=m):m=n[x],v=m*((this._k1+1)*w)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+w),v*=f,v*=p,g=Math.round(1e3*v)/1e3,l.insert(Q,g)}t[o]=l}this.fieldVectors=t},e.Builder.prototype.createTokenSet=function(){this.tokenSet=e.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},e.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new e.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},e.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},e.MatchData=function(e,t,r){for(var i=Object.create(null),n=Object.keys(r||{}),s=0;s<n.length;s++){var o=n[s];i[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=i)},e.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var i=t[r],n=Object.keys(e.metadata[i]);void 0==this.metadata[i]&&(this.metadata[i]=Object.create(null));for(var s=0;s<n.length;s++){var o=n[s],a=Object.keys(e.metadata[i][o]);void 0==this.metadata[i][o]&&(this.metadata[i][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];void 0==this.metadata[i][o][l]?this.metadata[i][o][l]=e.metadata[i][o][l]:this.metadata[i][o][l]=this.metadata[i][o][l].concat(e.metadata[i][o][l])}}}},e.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(!(t in this.metadata[e]))return void(this.metadata[e][t]=r);for(var i=Object.keys(r),n=0;n<i.length;n++){var s=i[n];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}},e.Query=function(e){this.clauses=[],this.allFields=e},e.Query.wildcard=new String("*"),e.Query.wildcard.NONE=0,e.Query.wildcard.LEADING=1,e.Query.wildcard.TRAILING=2,e.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},e.Query.prototype.clause=function(t){return"fields"in t||(t.fields=this.allFields),"boost"in t||(t.boost=1),"usePipeline"in t||(t.usePipeline=!0),"wildcard"in t||(t.wildcard=e.Query.wildcard.NONE),t.wildcard&e.Query.wildcard.LEADING&&t.term.charAt(0)!=e.Query.wildcard&&(t.term="*"+t.term),t.wildcard&e.Query.wildcard.TRAILING&&t.term.slice(-1)!=e.Query.wildcard&&(t.term=""+t.term+"*"),"presence"in t||(t.presence=e.Query.presence.OPTIONAL),this.clauses.push(t),this},e.Query.prototype.isNegated=function(){for(var t=0;t<this.clauses.length;t++)if(this.clauses[t].presence!=e.Query.presence.PROHIBITED)return!1;return!0},e.Query.prototype.term=function(t,r){if(Array.isArray(t))return t.forEach(function(t){this.term(t,e.utils.clone(r))},this),this;var i=r||{};return i.term=t.toString(),this.clause(i),this},e.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r},e.QueryParseError.prototype=new Error,e.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},e.QueryLexer.prototype.run=function(){for(var t=e.QueryLexer.lexText;t;)t=t(this)},e.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},e.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},e.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},e.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos<this.length},e.QueryLexer.EOS="EOS",e.QueryLexer.FIELD="FIELD",e.QueryLexer.TERM="TERM",e.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",e.QueryLexer.BOOST="BOOST",e.QueryLexer.PRESENCE="PRESENCE",e.QueryLexer.lexField=function(t){return t.backup(),t.emit(e.QueryLexer.FIELD),t.ignore(),e.QueryLexer.lexText},e.QueryLexer.lexTerm=function(t){if(t.width()>1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Scroll to top widget
3
+ * Copyright (C) 2022 Trimble Inc.
4
+ * Licensed under MIT
5
+ */
6
+
7
+ let target = document.querySelector('footer');
8
+
9
+ let scrollToTopBtn = document.querySelector('.btn-to-top');
10
+ let rootElement = document.documentElement;
11
+
12
+ function callback(entries, observer) {
13
+ entries.forEach((entry) => {
14
+ window.onscroll = function (e) {
15
+ if (entry.isIntersecting) {
16
+ scrollToTopBtn.classList.add('btn-to-top-show');
17
+ } else {
18
+ scrollToTopBtn.classList.remove('btn-to-top-show');
19
+ }
20
+ };
21
+ });
22
+ }
23
+
24
+ function scrollToTop() {
25
+ rootElement.scrollTo({
26
+ top: 0,
27
+ behavior: 'smooth',
28
+ });
29
+ }
30
+ scrollToTopBtn.addEventListener('click', scrollToTop);
31
+
32
+ const observer = new IntersectionObserver(callback);
33
+ observer.observe(target);
@@ -0,0 +1 @@
1
+ var lunrIndex,pagesIndex;function endsWith(a,b){return-1!==a.indexOf(b,a.length-b.length)}function initLunr(){endsWith(baseurl,"/")||(baseurl+="/");jQuery.getJSON(baseurl+"index.json").done(function(a){pagesIndex=a,lunrIndex=lunr(function(){this.ref("uri"),this.field("title",{boost:15}),this.field("tags",{boost:10}),this.field("content",{boost:5}),this.pipeline.remove(lunr.stemmer),this.searchPipeline.remove(lunr.stemmer),pagesIndex.forEach(function(a){this.add(a)},this)})}).fail(function(a,b,c){console.error("Error getting Hugo index file:",b+", "+c)})}function search(a){return lunrIndex.search(a+"^100 "+a+"*^10 *"+a+"^10 "+a+"~2^1").map(function(a){return pagesIndex.filter(function(b){return b.uri===a.ref})[0]})}initLunr(),jQuery(document).ready(function(){new autoComplete({selector:jQuery("#search-by").get(0),source:function(a,b){b(search(a))},renderItem:function(a,b){var c=a.content.match("(?:\\s?(?:[\\w]+)\\s?){0,2}"+b+"(?:\\s?(?:[\\w]+)\\s?){0,"+2+"}");return a.context=c,"<div class=\"autocomplete-suggestion\" data-term=\""+b+"\" data-title=\""+a.title+"\" data-uri=\""+a.uri+"?q="+b+"#"+b+"\" data-context=\""+a.context+"\">\xBB "+a.title+"<div class=\"context\">"+(a.context||"")+"</div></div>"},onSelect:function(a,b,c){location.href=c.getAttribute("data-uri")}})});
@@ -0,0 +1 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.tdcafLogger=e():t.tdcafLogger=e()}(window,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e),n.d(e,"sendEvent",(function(){return dt})),n.d(e,"init",(function(){return ft})),n.d(e,"getSessionId",(function(){return ht})),n.d(e,"setGlobalAttributes",(function(){return gt})),n.d(e,"trackEvents",(function(){return mt})),n.d(e,"logNPSScore",(function(){return vt})),n.d(e,"toggleNPSWindow",(function(){return yt})),n.d(e,"toggleRuleBasedNPSWindow",(function(){return wt})),n.d(e,"getUsersEventCount",(function(){return _t})),n.d(e,"setUserIdForSession",(function(){return bt})),n.d(e,"DisplayDialogEvent",(function(){return h})),n.d(e,"CloseDialogEvent",(function(){return g})),n.d(e,"BaseEvent",(function(){return c})),n.d(e,"ClickEvent",(function(){return s})),n.d(e,"DeviceInfoEvent",(function(){return Y})),n.d(e,"PageViewEvent",(function(){return M})),n.d(e,"SessionEndEvent",(function(){return J})),n.d(e,"SessionStartEvent",(function(){return U}));var o={};function r(t){o={...o,...t}}var i,a=function(){return(a=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},c=function(){function t(t,e,n){this.event=t,this.group=e,this.props=n,this.sessionId=ot(),this.timestamp=+new Date}return t.prototype.toString=function(){return JSON.stringify(a({event:this.event,group:this.group,sessionId:this.sessionId,timestamp:this.timestamp},this.props))},t.prototype.toLoggableObject=function(){return a({event:this.event,group:this.group,sessionId:this.sessionId,timestamp:this.timestamp},this.props)},t}(),u=(i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=function(t){function e(e){var n=t.call(this,"CLICK","USER_ACTIVITY",e)||this;return n.props=e,n}return u(e,t),e}(c),l=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),p=function(t){function e(e){var n=t.call(this,"USER_RESPONSE","NPS_SURVEY",e)||this;return n.props=e,n}return l(e,t),e}(c),d=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),f=function(t){function e(e){var n=t.call(this,"USER_FEEDBACK","NPS_SURVEY",e)||this;return n.props=e,n}return d(e,t),e}(c),h=function(){},g=function(){},m=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),v=function(t){function e(e){var n=t.call(this,"NPS_DIALOG_DISPLAY","NPS_SURVEY",e)||this;return n.props=e,n}return m(e,t),e}(c),y=function(t){function e(e){var n=t.call(this,"NPS_DIALOG_CLOSE","NPS_SURVEY",e)||this;return n.props=e,n}return m(e,t),e}(c),w=function(){function t(){}return t.prototype.displayDialog=function(t){return T(new v({feature:t.feature,eventCount:t.eventCount}))},t.prototype.closeDialog=function(t){return T(new y({feature:t.feature}))},t}();const _="https://api-insights.trimble.com";var b="";function E(){return b}var S="",O={},x=new Map,I=new Map,P=new w;function j(){let t=document.getElementById("modal_id");t&&t.remove();let e=new g;e.feature=S,P.closeDialog(e)}function L(t,e){return T(new p({npsSurveyScore:t,...e}))}function N(t,e,n,o){S=o;var r=document.createElement("link");(r.rel = "stylesheet"), (r.href = "https://modus.trimble.com/css/modus.min.css"), document.getElementsByTagName("head")[0].appendChild(r);var i=document.createElement("style");i.type="text/css",i.innerHTML='.modal-container { position: absolute;\n background: rgb(rgb(151, 149, 149), green, blue);\n padding: 20px;\n bottom: 0;\n right: 0;\n z-index: 10040;\n overflow: auto;\n overflow-y: auto;\n box-shadow: gray 10px 10px 10px 10px; }\n .mostLikely {\n margin-top: "4px";\n float: right;\n }\n .notLikely {\n margin-top: "4px";\n float: left;\n }\n .hideDiv {\n display:none\n }\n .showDiv {\n display: block\n }\n .feedbackBox {\n height: 70px;\n width: 400px;\n }\n .submitButton {\n margin-top: 4px;\n }\n ',document.getElementsByTagName("head")[0].appendChild(i);var a=document.getElementById("root"),c=document.createElement("div");c.classList.add("modal"),c.classList.add("d-block"),c.setAttribute("role","dialog"),c.setAttribute("id","modal_id");var u=document.createElement("div");u.classList.add("modal-container");var s=document.createElement("button");s.type="button",s.innerHTML="x",s.classList.add("close"),s.setAttribute("data-dismiss","modal"),s.onclick=j,u.append(s);var l=document.createElement("div"),p=document.createElement("p");p.textContent+=t||"How likely are you to recommend us to a friend or colleague?",l.append(p);var d=document.createElement("div");d.classList.add("hideDiv");var g=document.createElement("p");g.textContent+="Any other suggestions?",d.append(g);var m=document.createElement("input");m.type="text",m.id="feedbackInput",m.classList.add("feedbackBox"),d.append(m);var v=document.createElement("div"),y=document.createElement("button");y.classList.add("submitButton"),y.type="button",y.innerText="Submit",y.classList.add("btn"),y.classList.add("btn-primary"),y.onclick=function(t){!function(t,e){T(new f({npsSurveyFeedback:t,...e}))}(document.getElementById("feedbackInput").value,{feature:o}),j()},v.append(y),d.append(v);for(let t=1;t<=10;t++){let e=document.createElement("button");e.type="button",e.id="button"+t,e.classList.add("btn"),e.classList.add("btn-primary"),e.classList.add("btn-sm"),e.classList.add("m-1"),e.innerText=t,e.onclick=function(t){l.classList.add("hideDiv"),d.classList.add("showDiv"),L(t.target.innerText,{feature:o})},l.append(e)}let w=document.createElement("div");var _=document.createElement("p");_.textContent+=e||"Not likely",_.classList.add("notLikely"),w.append(_);var b=document.createElement("p");b.textContent+=n||"Most likely",b.classList.add("mostLikely"),w.append(b),l.appendChild(w),u.append(l),u.append(d),c.appendChild(u),a.appendChild(c);let E=new h;E.feature=o,E.eventCount=x.get(o),P.displayDialog(E)}function k(t,e,n){let o=e-t%e;return x.get(n)-t>=o}function C(t){O=t.nps;for(const[t,e]of Object.entries(O)){let t=x.get(e.eventName);t?x.set(e.eventName,t+parseInt(e.eventCount)):x.set(e.eventName,parseInt(e.eventCount)),D()}}function D(){let t={};for(const[e,n]of Object.entries(O)){let o=x.get(n.eventName)?x.get(n.eventName):n.eventCount;if("once every"===n.ruleCondition)if("count"==n.ruleType)o%n.triggerPoint==0||k(n.survey.displayedAt,n.triggerPoint,e)?t.showNPSDialog=!0:t.showNPSDialog=!1;else if("duration"==n.ruleType){const e=new Date(n.survey.lastDisplayed),o=new Date,r=Math.abs(o-e),i=Math.ceil(r/864e5);let a=n.triggerPoint.split("D")[0];t.showNPSDialog=i>=a}I.set(n.eventName,t.showNPSDialog)}}async function A(){try{C(await async function(){try{let t=E();if(t){let e="/configuration?config=nps&uid="+t,n=await fetch(_+e,{keepalive:!0,method:"GET",headers:{"x-api-key":st(),"x-app-name":lt()}});return await n.json()}return console.log("Global uid is not set"),null}catch(t){console.log("Error occured while fetching user event count",t)}}())}catch(t){console.log("Error occured while fetching user event count",t)}}var T=function(t){ut(t.toLoggableObject()),pt()&&function(t){if(x){let e=1;x.has(t)&&(e=parseInt(x.get(t))+1),x.set(t,e)}}(t.event)},V=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),U=function(t){function e(e){var n=t.call(this,"SESSION_START","SESSION",e)||this;return n.props=e,n}return V(e,t),e}(c),B={url:_+"/datalogger",method:"POST",headers:{},timeout:0,interval:12e4,isNPSEnabled:!1,level:"trace",backoff:{multiplier:2,jitter:.1,limit:3e4},capacity:2e3,stacktrace:{levels:["trace","warn","error"],depth:3,excess:0},timestamp:()=>(new Date).toISOString(),format:remote.json},R=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),M=function(t){function e(e){var n=t.call(this,"PAGE_VISIT","USER_ACTIVITY",e)||this;return n.props=e,n}return R(e,t),e}(c),G=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),Y=function(t){function e(e){var n=t.call(this,"DEVICE_INFO","DEVICE",e)||this;return n.props=e,n}return G(e,t),e}(c),F=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),J=function(t){function e(e){var n=t.call(this,"SESSION_END","SESSION",e)||this;return n.props=e,n}return F(e,t),e}(c),H=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),K=function(t){function e(e){var n=t.call(this,"USER_LOCATION","USER",e)||this;return n.props=e,n}return H(e,t),e}(c),W={pageVisits:!0,location:!0,deviceInfo:!0,clicks:!0};function q(){var t;tt(),pt()&&A().then(()=>{console.log("evaluation of nps snapshot done")}),W.pageVisits&&T(new M({pageVisited:window.location.pathname})),W.location&&(console.log("add location"),fetch(_+"/deviceinfo",{keepalive:!0,method:"GET",headers:{"x-api-key":st()}}).then((function(t){t.json().then((function(t){T(new K({ip_address:t.body.clientIp}))}))})).catch((function(t){return console.log("err during location fetch:",t)}))),window.addEventListener("unload",z),W.clicks&&(document.onreadystatechange=()=>{"complete"===document.readyState&&X()}),W.pageVisits&&(history.pushState=(t=history.pushState,function(){var e=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),e}),window.addEventListener("popstate",()=>{window.dispatchEvent(new Event("locationchange"))}),window.addEventListener("locationchange",(function(){T(new M({pageVisited:window.location.pathname})),setTimeout((function(){W.clicks&&X()}),100)})))}function z(t){if(!nt)return;let e=+new Date,n=remote.getQueueContent()||[],o=[];if(n.forEach(t=>{o=[...o,JSON.parse(t)]}),W.deviceInfo){let t={message:new Y({width:window.screen.width,height:window.screen.height,platform:window.navigator.platform,userAgent:window.navigator.userAgent,sessionId:ot(),timestamp:e}).toString()};o=[...o,t]}let r={message:(new J).toString()};o=[...o,r];const i=fetch(B.url,{keepalive:!0,method:"POST",headers:{"Content-Type":"application/json",...B.headers},body:JSON.stringify({logs:o})}).then(t=>console.log("res :",t)).catch(t=>console.log("err :",t));console.log("request",i)}function Q(){var t,e=0;function n(){e=0}document.onclick=n,document.onmousemove=n,document.onkeypress=n,t=window.setInterval((function(){(e+=60)>=1800&&(window.clearInterval(t),z(),et=null,nt=!1)}),6e4)}function X(){Z(document.getElementsByTagName("a"),"click",$),Z(document.getElementsByTagName("button"),"click",$)}function Z(t,e,n){for(var o=0;o<t.length;o++)t[o].addEventListener(e,n)}function $(){var t={type:"click",location:window.location.href,pathname:window.location.pathname,hash:window.location.hash,referer:document.referrer,language:window.navigator.userLanguage||window.navigator.language,width:screen.width,height:screen.height,platform:window.navigator.platform,userAgent:window.navigator.userAgent,local_time:new Date};t.destination=this.getAttribute("href"),t.name=this.getAttribute("name"),t.id=this.getAttribute("id"),t.displayText=this.innerText,t.event="CLICK",t.group="USER_ACTIVITY",t.event=t.type.toUpperCase(),T(new s(t))}function tt(){!function(){nt=!0;var t=(new Date).getTime();et="xxyxxxyxxxxxxxxy".replace(/[xy]/g,(function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"==e?n:7&n|8).toString(16)}))}(),T(new U),Q()}var et=null,nt=!1;function ot(){return et||tt(),et}var rt=null,it=null,at=null,ct=!1;const ut=t=>{t.sessionId||(t.sessionId=ot()),t.timestamp||(t.timestamp=+new Date),t={...t,...o},rt.info(""+JSON.stringify(t))},st=()=>it,lt=()=>at,pt=()=>ct;function dt(t){return T(t)}function ft(t){return(t=>{console.log("Inside initLogger"),console.log(JSON.stringify(t)),B.url=t.url?t.url:B.url,B.interval=t.interval?t.interval:B.interval,B.headers=t.headers?t.headers:B.headers,ct=!!t.isNpsEnabled&&t.isNpsEnabled,remote.apply(log,B),(rt=log.getLogger(t.appName||"TDCAF")).enableAll(),it=B.headers["x-api-key"],at=B.headers["x-app-name"],Object.assign(W,t.trackEvents)})(t)}function ht(){return ot()}function gt(t){return r(t)}function mt(){return q()}function vt(t,e){return L(t,e)}function yt(t,e,n,o){return N(t,e,n,o)}function wt(t,e,n,o){return function(t,e,n,o){if(D(),pt()&&!0===I.get(o))return N(t,e,n,o)}(t,e,n,o)}function _t(){return async function(){try{let t=E();if(t){let e=await fetch(_+"/usereventcount",{keepalive:!0,method:"GET",headers:{"x-api-key":st(),"x-app-name":lt(),"x-uid":t}});return await e.json()}return console.log("Global uid is not set"),null}catch(t){console.log("Error occured while fetching user event count",t)}}()}function bt(t){return function(t){b=t;let e={};e.insightsUid=b,r(e)}(t)}}])}));
@@ -0,0 +1,48 @@
1
+ (() => {
2
+ 'use strict';
3
+
4
+ const storageKey = 'theme-preference';
5
+
6
+ const onClick = () => {
7
+ // flip current value
8
+ theme.value = theme.value === 'light' ? 'dark' : 'light';
9
+ setPreference();
10
+ };
11
+
12
+ const getColorPreference = () => {
13
+ if (localStorage.getItem(storageKey)) return localStorage.getItem(storageKey);
14
+ else return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
15
+ };
16
+
17
+ const setPreference = () => {
18
+ localStorage.setItem(storageKey, theme.value);
19
+ reflectPreference();
20
+ };
21
+
22
+ const reflectPreference = () => {
23
+ document.firstElementChild.setAttribute('data-bs-theme', theme.value);
24
+
25
+ document.querySelector('#theme-toggle')?.setAttribute('aria-label', theme.value);
26
+ };
27
+
28
+ const theme = {
29
+ value: getColorPreference(),
30
+ };
31
+
32
+ // set early so no page flashes / CSS is made aware
33
+ reflectPreference();
34
+
35
+ window.onload = () => {
36
+ // set on load so screen readers can see latest value on the button
37
+ reflectPreference();
38
+
39
+ // now this script can find and listen for clicks on the control
40
+ document.querySelector('#theme-toggle').addEventListener('click', onClick);
41
+ };
42
+
43
+ // sync with system changes
44
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', ({ matches: isDark }) => {
45
+ theme.value = isDark ? 'dark' : 'light';
46
+ setPreference();
47
+ });
48
+ })();
@@ -0,0 +1,15 @@
1
+ $(function () {
2
+ $('.feedback').fadeIn('slow').addClass('d-block').removeClass('d-none');
3
+ $('.btn-feedback').click(function () {
4
+ $('.btn-feedback').addClass('img-grayscale').attr('disabled', 'disabled');
5
+ $('.feedback-thanks').fadeIn('slow').addClass('d-block');
6
+ });
7
+ $('.btn-feedback-helpful').click(function () {
8
+ $('.feedback-helpful').fadeIn('slow').addClass('d-block');
9
+ $('.feedback-helpful').removeClass('d-none');
10
+ });
11
+ $('.btn-feedback-not-helpful').click(function () {
12
+ $('.feedback-not-helpful').fadeIn('slow').addClass('d-block');
13
+ $('.feedback-not-helpful').removeClass('d-none');
14
+ });
15
+ });
@@ -0,0 +1,110 @@
1
+ // anchors # for deep links within docs
2
+ .header-link {
3
+ opacity: 0;
4
+ pointer-events: none;
5
+ transition: 0.3s all;
6
+ }
7
+
8
+ h2:hover .header-link,
9
+ h3:hover .header-link,
10
+ h4:hover .header-link,
11
+ h5:hover .header-link {
12
+ opacity: 0.6;
13
+ pointer-events: visible;
14
+ transition: 0.3s all;
15
+ }
16
+
17
+ // title of article shouldn't have margin-top
18
+ main article h2.h1:first-of-type {
19
+ margin-top: 0 !important;
20
+ }
21
+
22
+ header {
23
+ background-image: radial-gradient(circle, rgba(131, 131, 131, 0.3) 1px, transparent 1px);
24
+ background-size: 1rem 1rem;
25
+ min-height: 230px;
26
+ }
27
+
28
+ // external links have an icon
29
+ .menu-right a[href^="http"]::after,
30
+ article a:not(.stretched-link)[href^="https"]::after {
31
+ content: "";
32
+ width: 12px;
33
+ height: 12px;
34
+ margin-left: 4px;
35
+ margin-bottom: -1px;
36
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.78 19.78H4.22V4.22h6.67c.61 0 1.11-.5 1.11-1.11C12 2.5 11.5 2 10.89 2H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-7.89c0-.61-.5-1.11-1.11-1.11-.61 0-1.11.5-1.11 1.11v6.67ZM14.22 3.11c0 .61.5 1.11 1.11 1.11h2.88L8.07 14.36c-.43.43-.43 1.13 0 1.57.43.43 1.13.43 1.57 0L19.78 5.79v2.88c0 .61.5 1.11 1.11 1.11.61 0 1.11-.5 1.11-1.11V3c0-.55-.45-1-1-1h-5.67c-.61 0-1.11.5-1.11 1.11Z'/%3E%3C/svg%3E");
37
+ background-position: bottom;
38
+ background-repeat: no-repeat;
39
+ background-size: contain;
40
+ display: inline-block;
41
+ opacity: 0.7;
42
+ }
43
+
44
+ main .sticky-offset {
45
+ top: 80px !important;
46
+ }
47
+
48
+ // offsets the anchors to adjust for the fixed navbar
49
+ article h2:target::before,
50
+ article h3:target::before {
51
+ display: block;
52
+ content: " ";
53
+ height: 80px;
54
+ margin-top: -80px;
55
+ visibility: hidden;
56
+ }
57
+
58
+ #main::before {
59
+ display: block;
60
+ content: " ";
61
+ height: 80px;
62
+ margin-top: -80px;
63
+ visibility: hidden;
64
+ top: 80px;
65
+ }
66
+
67
+ // anchors # for deep links within docs
68
+ a.header-link {
69
+ opacity: 0;
70
+ pointer-events: none;
71
+ }
72
+
73
+ a.header-link::after {
74
+ content: "#";
75
+ min-width: 20px;
76
+ display: inline-block;
77
+ }
78
+
79
+ .docs-callout {
80
+ margin-top: 1.25rem;
81
+ margin-bottom: 1.25rem;
82
+ border-left-width: 0.25rem !important;
83
+ border-radius: 0.25rem;
84
+ }
85
+
86
+ .docs-callout-danger {
87
+ border-left-color: #c81922;
88
+ }
89
+
90
+ .docs-callout-warning {
91
+ border-left-color: #ffa500 !important;
92
+ }
93
+
94
+ .docs-callout-info {
95
+ border-left-color: #cfe1ee !important;
96
+ }
97
+
98
+ // fix bug where popovers appear over the navbar
99
+ .popover {
100
+ z-index: 1020 !important;
101
+ }
102
+
103
+ kbd {
104
+ opacity: 0.7;
105
+ }
106
+
107
+ article .nav-tabs .nav-link::after {
108
+ background-image: none !important;
109
+ width: 0 !important;
110
+ }
@@ -0,0 +1,63 @@
1
+ /*! purgecss start ignore */
2
+ .autocomplete-suggestions {
3
+ cursor: default;
4
+ border: 1px solid #cbcdd6;
5
+ border-top: 0;
6
+ background-color: #fff;
7
+ box-shadow: -1px 1px 3px rgba(0, 0, 0, 0.1);
8
+ position: absolute;
9
+ display: none;
10
+ z-index: 33333; // higher than navbar
11
+ max-height: 254px;
12
+ overflow: hidden;
13
+ overflow-y: auto;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ [data-bs-theme="dark"] {
18
+ .autocomplete-suggestions {
19
+ background-color: #171c1e;
20
+ color: #f1f1f1 !important;
21
+ }
22
+
23
+ .autocomplete-suggestion {
24
+ color: #cbcdd6;
25
+ }
26
+ }
27
+
28
+ .autocomplete-suggestion {
29
+ position: relative;
30
+ cursor: pointer;
31
+ padding: 7px;
32
+ line-height: 23px;
33
+ white-space: nowrap;
34
+ overflow: hidden;
35
+ text-overflow: ellipsis;
36
+ color: #353a40;
37
+ }
38
+
39
+ .autocomplete-suggestion b {
40
+ font-weight: 400;
41
+ color: #1f8dd6;
42
+ }
43
+
44
+ .autocomplete-suggestion.selected {
45
+ background-color: #353a40;
46
+ color: #f1f1f1;
47
+ }
48
+
49
+ .autocomplete-suggestion:hover {
50
+ background-color: #464b52;
51
+ color: #f1f1f1;
52
+ }
53
+
54
+ .autocomplete-suggestion > .context {
55
+ font-size: 12px;
56
+ color: #7d808d;
57
+ }
58
+
59
+ .autocomplete-suggestion.selected > .context {
60
+ color: #b7b9c3;
61
+ }
62
+
63
+ /*! purgecss end ignore */
@@ -0,0 +1,25 @@
1
+ .card-blog-brief {
2
+ min-height: 140px;
3
+ }
4
+
5
+ .card-blog-brief:hover {
6
+ box-shadow: 0 0 8px rgba(48, 60, 68, 0.4) !important;
7
+ }
8
+
9
+ .card-blog-brief .card-header {
10
+ background-position: center;
11
+ background-repeat: no-repeat;
12
+ background-size: cover;
13
+ min-height: 129px;
14
+ }
15
+
16
+ .card-blog-brief .card-body .stretched-link {
17
+ min-height: 44px;
18
+ }
19
+
20
+ .card-post .card-header {
21
+ min-height: 89px;
22
+ background-size: cover;
23
+ background-position: center;
24
+ aspect-ratio: 4 / 1;
25
+ }
@@ -0,0 +1,16 @@
1
+ // syntax highlighting for code blocks
2
+ // https://gohugo.io/getting-started/configuration-markup#highlight
3
+
4
+ /* prettier-ignore */
5
+ /* stylelint-disable */
6
+ [data-bs-theme="dark"] {
7
+ .highlight {
8
+ background-color: black;
9
+ }
10
+ .err {
11
+ border-color: transparent;
12
+ }
13
+ .nx {
14
+ color: #ccc;
15
+ }
16
+ }